{"id":45724947,"url":"https://github.com/shadowhusky/tron","last_synced_at":"2026-05-14T21:00:58.133Z","repository":{"id":340066297,"uuid":"1159147340","full_name":"Shadowhusky/Tron","owner":"Shadowhusky","description":"Self-hosted AI-powered terminal. Run shells, use local or cloud LLMs (Ollama, OpenAI, Claude), and get agent-assisted commands from your desktop.","archived":false,"fork":false,"pushed_at":"2026-03-09T21:39:58.000Z","size":41294,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-09T23:22:42.366Z","etag":null,"topics":["electron","frontend","javascript","terminal","typescript"],"latest_commit_sha":null,"homepage":"https://tronai.dev/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Shadowhusky.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-16T11:26:49.000Z","updated_at":"2026-03-09T21:40:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Shadowhusky/Tron","commit_stats":null,"previous_names":["shadowhusky/tron"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/Shadowhusky/Tron","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shadowhusky%2FTron","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shadowhusky%2FTron/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shadowhusky%2FTron/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shadowhusky%2FTron/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Shadowhusky","download_url":"https://codeload.github.com/Shadowhusky/Tron/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shadowhusky%2FTron/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30415041,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T00:40:14.898Z","status":"online","status_checked_at":"2026-03-12T02:00:07.260Z","response_time":114,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["electron","frontend","javascript","terminal","typescript"],"created_at":"2026-02-25T07:56:08.678Z","updated_at":"2026-05-14T21:00:58.125Z","avatar_url":"https://github.com/Shadowhusky.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":" \u003ch1 align=\"center\"\u003eTron — Vibe Code Anywhere\u003c/h1\u003e  \n\u003cimg width=\"2032\" height=\"1167\" alt=\"Screenshot 2026-02-26 at 20 37 54\" src=\"https://github.com/user-attachments/assets/a21ea28c-c7f4-4496-92b2-d161e3961604\" /\u003e\n\n\u003ch3 align=\"center\"\u003eOpen-source AI terminal with a built-in web server.\u003cbr/\u003eOpen the app, and your AI coding environment is instantly available from any browser — phone, tablet, or another machine.\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Shadowhusky/Tron/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/Shadowhusky/Tron?style=flat\u0026color=yellow\" alt=\"Stars\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Shadowhusky/Tron/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/Shadowhusky/Tron?style=flat\" alt=\"License\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://discord.gg/EeTCS7A6\"\u003e\u003cimg src=\"https://img.shields.io/badge/Discord-Join-5865F2?style=flat\u0026logo=discord\u0026logoColor=white\" alt=\"Discord\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Shadowhusky/Tron/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/Shadowhusky/Tron?style=flat\u0026color=blue\" alt=\"Release\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://tronai.dev\"\u003e\u003cstrong\u003eWebsite\u003c/strong\u003e\u003c/a\u003e · \u003ca href=\"https://github.com/Shadowhusky/Tron/releases\"\u003eDownload\u003c/a\u003e · \u003ca href=\"https://discord.gg/EeTCS7A6\"\u003eDiscord\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cem\u003eVibe code from your phone — sessions persist even if you close the browser\u003c/em\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/mobile-web.jpg\" width=\"280\" /\u003e\n\u003c/p\u003e\n\n## Why Tron?\n\n**Your data never leaves your machine.** Tron runs locally — the AI agent, terminal, and web server all live on your computer. No cloud relay, no third-party servers. Add [Tailscale](https://tailscale.com) for encrypted remote access from anywhere, without exposing a single port.\n\n- **Vibe code everywhere** — built-in web server starts automatically; open any browser on your phone, tablet, or another PC and you're in\n- **Sessions never die** — close the browser, reopen it hours later, everything is exactly where you left it: terminal output, agent threads, scroll position\n- **AI agent in your real shell** — the agent executes multi-step plans directly in your terminal with live output and permission controls\n- **Any model** — Ollama, LM Studio, OpenAI, Anthropic, Gemini, DeepSeek, Kimi, Qwen, GLM, MiniMax, or any compatible API\n- **SSH remote** — connect to remote servers; terminal, agent, and all features work identically over SSH\n- **Private \u0026 secure** — everything runs on your machine, dangerous command detection, permission prompts, loop guards\n- **Cross-platform** — macOS, Windows, Linux. Desktop (Electron) or browser\n\n \n\nhttps://github.com/user-attachments/assets/3f83279e-21ea-4b1e-b5a2-786d14d637e5\n\n\n\n## Demo\n\n| Terminal \u0026 Split Panes | AI Agent |\n|:---:|:---:|\n| ![Terminal](screenshots/demo-terminal.gif) | ![Agent](screenshots/demo-agent.gif) |\n\n| Agent View | Input Modes |\n|:---:|:---:|\n| ![Agent View](screenshots/demo-agent-view.gif) | ![Modes](screenshots/demo-modes.gif) |\n\n| Themes | SSH |\n|:---:|:---:|\n| ![Themes](screenshots/demo-themes.gif) | ![SSH](screenshots/demo-ssh.gif) |\n\n| Web Server |\n|:---:|\n| ![Web Server](screenshots/demo-web-server.gif) |\n\n## Getting Started\n\n**Prerequisites:** Node.js 18+. Optionally [Ollama](https://ollama.ai) for free local AI.\n\n```bash\ngit clone https://github.com/Shadowhusky/Tron.git\ncd tron \u0026\u0026 npm install\n\n# Desktop app\nnpm run dev\n\n# Web app (self-hosted)\nnpm run dev:web\n```\n\nOn first launch, the setup wizard walks you through theme selection and AI provider configuration.\n\n## Deployment Modes\n\n| Mode | How | Use Case |\n|------|-----|----------|\n| **Desktop** | `npm run dev` | Local Electron app |\n| **Built-in web server** | Settings \u003e Web Server | Access from any browser on your network |\n| **Standalone web** | `npm run start:web` | Headless server deployment |\n| **Gateway** | `TRON_MODE=gateway npm run start:web` | SSH-only relay for cloud |\n\nThe **built-in web server** is the easiest way to access Tron from another device — toggle it on in Settings, and it shows your local IPs and port. For headless servers without a desktop, use the standalone web mode. Gateway mode restricts access to SSH connections only, making it safe for multi-user cloud deployments.\n\n### Remote Access with Tailscale (2 minutes setup)\n\nWant to code from your phone on the bus, or SSH into your home machine from a coffee shop? [Tailscale](https://tailscale.com) makes this ridiculously easy — no port forwarding, no dynamic DNS, no firewall rules. It just works.\n\n1. **Install Tailscale** on your computer (the one running Tron) and your phone/tablet — [tailscale.com/download](https://tailscale.com/download)\n2. **Sign in** with the same account on both devices (Google, GitHub, etc.)\n3. **Find your computer's Tailscale IP** — it looks like `100.x.y.z`, shown in the Tailscale app\n4. **Open Tron** on your phone's browser: `http://100.x.y.z:3888`\n\nThat's it. Encrypted, peer-to-peer, works from anywhere in the world. Free for personal use (up to 100 devices).\n\n\u003e **Tip:** Tailscale IPs are stable — bookmark it once and it works forever, even if your home network changes.\n\n### Docker\n\nRun the web server as a persistent Docker service with auto-restart:\n\n```bash\n# Quick start\ndocker compose up -d\n\n# Rebuild after pulling updates\ndocker compose build \u0026\u0026 docker compose up -d\n\n# View logs\ndocker compose logs -f\n\n# Stop\ndocker compose down\n```\n\nThe container runs on port **3888** and auto-restarts on crash or system reboot. Configuration is loaded from your `.env` file.\n\n**What's included:**\n- Full terminal access inside the container (bash, git, curl, vim)\n- Host filesystem mounted at `/host` (read-write)\n- Docker socket access for container management\n- `host.docker.internal` resolves to the host machine\n\n**Connecting to host AI providers (e.g. LM Studio, Ollama):**\n\nUse `host.docker.internal` instead of `localhost` for the base URL in Settings:\n```\nhttp://host.docker.internal:1234   # LM Studio\nhttp://host.docker.internal:11434  # Ollama\n```\n\n**Gateway mode** (SSH-only, no local terminal):\n```yaml\n# In docker-compose.yml, uncomment:\nenvironment:\n  - TRON_MODE=gateway\n  - TRON_SSH_ONLY=true\n```\n\n## Features\n\n### Terminal\n- Tabbed interface with split panes (vertical/horizontal, recursive nesting)\n- Smart input bar with shell completions, AI ghost text, and command history\n- Three themes — Dark, Light, Modern (frosty glass) + system auto-detect\n- Persistent history — terminal output survives app restarts\n\n### AI Agent\n- Autonomous multi-step execution with live terminal output\n- **Agent View** — full-height, chat-focused AI-first interface\n- Tools: `execute_command`, `run_in_terminal`, `write_file`, `read_file`, `edit_file`, `send_text`, `read_terminal`\n- Permission system with dangerous command detection and double-confirm\n- Auto-execute mode, thinking mode, streaming overlay with diff previews\n- Context management with usage ring, summarization, and `/log` export\n\n### Input Modes\n| Mode | Description |\n|------|-------------|\n| **Auto** | Detects command vs. natural language |\n| **Command** | Direct shell with Tab completion |\n| **Advice** | AI suggests a single command with explanation |\n| **Agent** | Multi-step autonomous execution |\n\n### SSH\n- Password, private key, and SSH agent authentication\n- Saved profiles with optional credential persistence\n- AI agent works fully over SSH (commands, file ops, system inspection)\n\n### Built-in Web Server\n- Toggle on in Settings \u003e Web Server — no separate server process needed\n- Shows local IP addresses and configurable port\n- Access your full terminal from any browser on the network\n- Pair with [Tailscale](https://tailscale.com) for secure remote access\n\n### Session Persistence\n- Terminal output survives app restarts — reopen and see your full history\n- Save tabs to disk and restore them anytime (right-click tab → Save)\n- Use your preferred coding agent (Claude Code, Codex, etc.) inside Tron and resume seamlessly even if the page closes\n- Agent threads, overlay state, and scroll position are all preserved\n\n### Providers\nOllama, LM Studio, OpenAI, Anthropic, Gemini, DeepSeek, Kimi, Qwen, GLM, MiniMax, OpenAI Compatible, Anthropic Compatible.\n\n### Model Recommendations\n\nTron's agent is designed for **everyday terminal tasks** — running commands, editing files, managing servers, light automation. You don't need the most powerful model for this.\n\n| Tier | Models | Best For |\n|------|--------|----------|\n| **Local (free)** | [Qwen3.5-9B](https://ollama.com/library/qwen3.5:9b) (via Ollama/LM Studio) | Surprisingly capable for a local model — multimodal, 256K context, thinking mode. Beats models 13× its size on reasoning benchmarks. Handles agent tasks, file editing, and scripting well. Runs on 8GB+ VRAM. |\n| **Budget cloud** | Kimi, GLM, MiniMax | Great balance of cost and capability. Handle most agent tasks well — command execution, file editing, debugging. Good daily drivers. |\n| **Premium cloud** | Claude, GPT, Gemini | Excellent but overkill for typical terminal agent work. Better suited for direct coding conversations. |\n\n\u003e **Context length matters for local models.** The agent sends terminal history, file contents, and tool results as context. If your model's context window is too small (e.g. 2K–4K tokens), it may fail mid-task — especially when writing or editing files. For local models, use at least **8K context** (16K+ recommended). In Ollama, you can increase context with `OLLAMA_NUM_CTX=16384` or by setting `num_ctx` in a Modelfile. LM Studio has a context length slider in model settings. Cloud models handle this automatically.\n\n\u003e **Tip for complex coding:** Rather than using a premium model through Tron's agent, run a dedicated coding agent like [Claude Code](https://docs.anthropic.com/en/docs/claude-code/overview) or [Codex](https://github.com/openai/codex) directly inside Tron's terminal. Tron's session persistence means you can start a long coding session, close the browser, and come back to it later — the agent keeps running and all output is preserved.\n\n## Keyboard Shortcuts\n\n| Action | macOS | Windows/Linux |\n|--------|-------|---------------|\n| New tab | `Cmd+T` | `Ctrl+T` |\n| Close tab | `Cmd+W` | `Ctrl+W` |\n| Split vertical | `Cmd+D` | `Ctrl+D` |\n| Split horizontal | `Cmd+Shift+D` | `Ctrl+Shift+D` |\n| Settings | `Cmd+,` | `Ctrl+,` |\n| Force agent | `Cmd+Enter` | `Ctrl+Enter` |\n| Cycle mode | `Ctrl+Shift+M` | `Ctrl+Shift+M` |\n\nAll shortcuts are customizable in Settings.\n\n## Installation FAQ\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eWindows — \"Smart App Control blocked this app\" (no \"Run anyway\" button)\u003c/strong\u003e\u003c/summary\u003e\n\nWindows 11's Smart App Control may block unsigned apps entirely, with no option to bypass.\n\n**Option A — Unblock the file:**\n\n1. Right-click the downloaded `.exe` → **Properties**\n2. At the bottom, check **\"Unblock\"** → click **Apply**\n3. Double-click the `.exe` to run it\n\n**Option B — Disable Smart App Control** (if Option A doesn't work):\n\n1. Open **Settings** → **Privacy \u0026 Security** → **Windows Security**\n2. Click **App \u0026 browser control** → **Smart App Control settings**\n3. Set it to **Off**\n\n\u003e ⚠️ This is a one-way toggle — once turned off, it can't be re-enabled without resetting Windows. This is safe for most users; Windows Defender still protects your system independently.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eWindows — \"Windows protected your PC\" (SmartScreen)\u003c/strong\u003e\u003c/summary\u003e\n\n1. Click **\"More info\"**\n2. Click **\"Run anyway\"**\n\nThis only appears on the first install. Windows remembers your choice for future launches.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003emacOS — \"app is from an unidentified developer\"\u003c/strong\u003e\u003c/summary\u003e\n\n**Right-click** the app → **Open** → click **Open** in the dialog.\n\nYou only need to do this once — macOS remembers your choice.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003emacOS — \"app is damaged and can't be opened\"\u003c/strong\u003e\u003c/summary\u003e\n\nThis happens when macOS quarantine flags the downloaded file. Remove the flag:\n\n```bash\nxattr -cr /Applications/Tron.app\n```\n\nThen open the app normally.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eLinux — \"Permission denied\" when running the AppImage\u003c/strong\u003e\u003c/summary\u003e\n\nMake the file executable first:\n\n```bash\nchmod +x Tron-*.AppImage\n./Tron-*.AppImage\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eLinux — \"FUSE not found\" / AppImage won't start\u003c/strong\u003e\u003c/summary\u003e\n\nAppImage requires FUSE to mount. Install it:\n\n```bash\n# Ubuntu/Debian\nsudo apt install libfuse2\n\n# Fedora\nsudo dnf install fuse\n\n# Arch\nsudo pacman -S fuse2\n```\n\nAlternatively, extract and run without FUSE:\n\n```bash\n./Tron-*.AppImage --appimage-extract\n./squashfs-root/AppRun\n```\n\n\u003c/details\u003e\n\n## Development\n\n```bash\nnpm run dev              # Electron + Vite dev\nnpm run dev:web          # Web mode dev\nnpm run build            # Production build\nnpm run lint             # ESLint\nnpm run test:e2e         # Playwright E2E tests\n```\n\n## Tech Stack\n\nElectron, React 19, TypeScript, Vite, xterm.js, Tailwind CSS, Framer Motion, TanStack Virtual/Query, ssh2, Playwright.\n\n## Community\n\n- [Discord](https://discord.gg/EeTCS7A6) — questions, feedback, feature requests\n- [GitHub Issues](https://github.com/Shadowhusky/Tron/issues) — bug reports\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshadowhusky%2Ftron","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshadowhusky%2Ftron","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshadowhusky%2Ftron/lists"}