{"id":41938580,"url":"https://github.com/ms2sato/agent-console","last_synced_at":"2026-01-25T18:30:41.548Z","repository":{"id":328036375,"uuid":"1111083213","full_name":"ms2sato/agent-console","owner":"ms2sato","description":"Web console for managing multiple AI coding agents across git worktrees","archived":false,"fork":false,"pushed_at":"2026-01-14T10:59:49.000Z","size":1833,"stargazers_count":2,"open_issues_count":11,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-14T14:36:56.171Z","etag":null,"topics":["ai","ai-agents","cli","webapp","worktree"],"latest_commit_sha":null,"homepage":"","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/ms2sato.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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-12-06T08:29:35.000Z","updated_at":"2026-01-14T10:59:51.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ms2sato/agent-console","commit_stats":null,"previous_names":["ms2sato/agent-console"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ms2sato/agent-console","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ms2sato%2Fagent-console","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ms2sato%2Fagent-console/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ms2sato%2Fagent-console/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ms2sato%2Fagent-console/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ms2sato","download_url":"https://codeload.github.com/ms2sato/agent-console/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ms2sato%2Fagent-console/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28756442,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T16:32:25.380Z","status":"ssl_error","status_checked_at":"2026-01-25T16:32:09.189Z","response_time":113,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["ai","ai-agents","cli","webapp","worktree"],"created_at":"2026-01-25T18:30:40.939Z","updated_at":"2026-01-25T18:30:41.538Z","avatar_url":"https://github.com/ms2sato.png","language":"TypeScript","readme":"# Agent Console\n\n\u003e **Note**: Currently only tested on macOS \u0026 Claude Code.\n\n\u003e **Security Note**: This tool is designed for **local personal use only**. It provides terminal access to your system and should not be deployed as a shared server or exposed to untrusted networks. The server binds to `localhost` by default.\n\nA web application for managing multiple AI coding agent instances running in different git worktrees. Control all your agents through a unified browser interface instead of scattered terminal windows.\n\nCurrently supports **[Claude Code](https://claude.ai/code)** as the default agent, with plans to support additional agents (Gemini CLI, Codex, etc.) in the future.\n\n## Features\n\n- **Unified Dashboard**: View and manage all repositories, worktrees, and agent sessions in one place\n- **Browser-based Terminal**: Full terminal access via [xterm.js](https://xtermjs.org) - no need for separate terminal windows\n- **Session Persistence**: Sessions continue running even when you close the browser tab (tmux-like behavior)\n- **Git Worktree Integration**: Create and delete git worktrees directly from the UI\n- **Real-time Updates**: WebSocket-based notifications for session and worktree changes\n\n## Architecture\n\n```\nBackend (Bun + Hono)               Frontend (React + Vite)\n┌──────────────────────────┐       ┌──────────────────────────┐\n│ Session Manager          │       │ Dashboard                │\n│ ├── PTY Process 1       │◄─────►│ xterm.js Terminal        │\n│ ├── PTY Process 2       │  WS   │ TanStack Router/Query    │\n│ └── PTY Process N       │       │                          │\n└──────────────────────────┘       └──────────────────────────┘\n```\n\n## Requirements\n\n- [Bun](https://bun.sh) \u003e= 1.3.0\n\n## Development\n\n### Setup\n\n```bash\n# Install dependencies\nbun install\n\n# Start development servers (frontend + backend)\nbun dev\n```\n\nThe development server runs at:\n- Frontend: http://localhost:5173\n- Backend: http://localhost:3457\n\n### Build\n\n```bash\nbun run build\n```\n\nThis creates a production bundle in the `dist/` directory:\n\n```\ndist/\n├── package.json    # Standalone package manifest\n├── index.js        # Bundled server\n└── public/         # Built frontend assets\n```\n\n### Production\n\n```bash\n# From the project root (after build)\nbun start\n```\n\nOr run directly:\n\n```bash\nNODE_ENV=production bun dist/index.js\n```\n\nThe server runs at http://localhost:3457\n\n## Standalone Distribution\n\nThe `dist/` directory can be distributed independently. Users only need to:\n\n```bash\ncd dist\nbun install   # Installs only bun-pty (~few seconds)\nbun start     # Starts the server\n```\n\n## Template Configuration\n\nWhen creating a new worktree, Agent Console can automatically copy template files into it. This is useful for setting up consistent configurations (e.g., `.claude/settings.local.json` for MCP servers) across all worktrees.\n\n### Template Locations\n\nTemplates are searched in the following order (first found wins):\n\n1. **Repository-local**: `.git-wt/` directory in the repository root\n2. **Global**: `$AGENT_CONSOLE_HOME/repositories/\u003cowner\u003e/\u003crepo\u003e/templates/`\n\nThe default `$AGENT_CONSOLE_HOME` is `~/.agent-console`.\n\n### Directory Structure\n\nPlace files in the templates directory with the same structure you want in the worktree:\n\n```\n~/.agent-console/repositories/\u003cowner\u003e/\u003crepo\u003e/templates/\n├── .claude/\n│   └── settings.local.json    # → copied to \u003cworktree\u003e/.claude/settings.local.json\n├── .env.local                  # → copied to \u003cworktree\u003e/.env.local\n└── any/\n    └── nested/\n        └── file.txt           # → copied to \u003cworktree\u003e/any/nested/file.txt\n```\n\n### Placeholders\n\nTemplate files support variable substitution using `{{VARIABLE}}` syntax:\n\n| Placeholder | Description | Example |\n|-------------|-------------|---------|\n| `{{WORKTREE_NUM}}` | Worktree index number (0, 1, 2, ...) | `1` |\n| `{{BRANCH}}` | Branch name | `feature/add-login` |\n| `{{REPO}}` | Repository name (without owner) | `agent-console` |\n| `{{WORKTREE_PATH}}` | Full path to the worktree | `/Users/me/.agent-console/.../wt-001-abc` |\n\n### Arithmetic Expressions\n\n`{{WORKTREE_NUM}}` supports arithmetic operations:\n\n| Expression | Description | Example (WORKTREE_NUM=2) |\n|------------|-------------|--------------------------|\n| `{{WORKTREE_NUM + 3000}}` | Addition | `3002` |\n| `{{WORKTREE_NUM - 1}}` | Subtraction | `1` |\n| `{{WORKTREE_NUM * 10}}` | Multiplication | `20` |\n| `{{WORKTREE_NUM / 2}}` | Division (floor) | `1` |\n\n### Example: Environment Variables\n\nTo configure different ports for each worktree's development server (`.env.local`):\n\n```bash\n# Worktree: {{BRANCH}}\nDEV_PORT={{WORKTREE_NUM + 3000}}\nAPI_PORT={{WORKTREE_NUM + 4000}}\n```\n\nWith this template, worktree 0 uses DEV_PORT=3000, worktree 1 uses DEV_PORT=3001, and so on.\n\n## Project Structure\n\n```\nagent-console/\n├── packages/\n│   ├── client/          # React frontend\n│   ├── server/          # Hono backend\n│   └── shared/          # Shared TypeScript types\n├── docs/                # Documentation\n├── scripts/             # Deployment scripts\n└── dist/                # Production build output (generated)\n```\n\n## Contributing\n\nSee `AGENTS.md` for repository guidelines, commands, and testing expectations.\n\n## Tech Stack\n\n- **Backend**: [Bun](https://bun.sh), [TypeScript](https://www.typescriptlang.org), [Hono](https://hono.dev), [bun-pty](https://github.com/sursaone/bun-pty)\n- **Frontend**: [React](https://react.dev), [TypeScript](https://www.typescriptlang.org), [Vite](https://vite.dev), [TanStack Router](https://tanstack.com/router), [TanStack Query](https://tanstack.com/query), [xterm.js](https://xtermjs.org), [Tailwind CSS](https://tailwindcss.com)\n- **Build**: [Bun bundler](https://bun.sh/docs/bundler) (server), [Vite](https://vite.dev) (frontend)\n- **Package Manager**: [Bun workspaces](https://bun.sh/docs/install/workspaces)\n\n## AI-Driven Development\n\nThis project serves as a testbed for exploring the boundaries of AI-assisted software development. The goal is to minimize human involvement throughout the entire development lifecycle:\n\n- **Code generation**: All code is written by Claude Code, not by humans\n- **Code review**: Reviews are performed by Claude subagents (code-quality-reviewer, test-reviewer, ux-architecture-reviewer)\n- **Testing**: Test code is also generated and reviewed by AI\n\nThe human role is limited to:\n- Providing high-level requirements and direction\n- Final approval of pull requests\n- Resolving issues that AI cannot handle autonomously\n\nThis approach allows us to dogfood Agent Console while simultaneously validating how far AI can go in autonomous software development. The codebase you see here is the result of this experiment.\n\n## Special Thanks\n\nThis project is built on the shoulders of amazing open-source projects:\n\n- [Claude Code](https://claude.ai/code) - The AI coding agent that wrote most of this codebase with remarkable speed and quality. This project literally couldn't exist without it.\n- [Bun](https://bun.sh) - Blazing fast runtime that makes development a joy\n- [Hono](https://hono.dev) - Ultrafast web framework with excellent DX\n- [TypeScript](https://www.typescriptlang.org) - Type safety that saves countless debugging hours\n- [xterm.js](https://xtermjs.org) - The terminal emulator that makes browser-based CLI possible\n\n### Inspiration\n\n- [Vibe Kanban](https://www.vibekanban.com/) - A fantastic project for managing AI coding agents. Exploring this project sparked the idea for Agent Console. Highly recommended!\n\nThank you to all the maintainers and contributors!\n\n## License\n\nMIT\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fms2sato%2Fagent-console","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fms2sato%2Fagent-console","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fms2sato%2Fagent-console/lists"}