cd /news/developer-tools/agentdock-workspace-for-managing-ageโ€ฆ ยท home โ€บ topics โ€บ developer-tools โ€บ article
[ARTICLE ยท art-117152] src=github.com โ†— pub= topic=developer-tools verified=true sentiment=ยท neutral

Agentdock - workspace for managing agents across repos and worktrees

Developer Vishal Narkhede open-sourced Agentdock, a web dashboard for managing parallel AI coding agents like Claude Code and Cursor Agent across multiple repositories via tmux sessions with git worktree isolation. The tool, built primarily for Claude Code, offers live terminal streaming, session restore, plan and changes tabs, and mobile-friendly access, aiming to address RAM-heavy Cursor usage and multi-repo workflows.

read8 min views1 publishedAug 31, 2026
Agentdock - workspace for managing agents across repos and worktrees
Image: Michielbdejong (auto-discovered)

A web dashboard for managing parallel AI coding agents across multiple repositories. Run Claude Code, Cursor Agent, or other agents side-by-side in tmux sessions with git worktree isolation โ€” all from your browser.

Create sessions, watch live terminal output, type input, switch between agents mid-conversation, and manage everything through a clean web UI or CLI โ€” including from your phone or tablet with a mobile-optimized interface.

I got tired of Cursor eating all my RAM. I'm not a terminal guy. I work on features that span multiple repos simultaneously. And sometimes I just need to keep things moving while walking the baby at 2am.

So I started building my own setup โ€” a proper web UI for running Claude Code in tmux, with git worktrees for isolation, a live terminal I can actually see from my phone, and enough structure that I can run several parallel workstreams without losing my mind. At some point it became real enough that I decided to open source it.

If any of that sounds familiar, this is for you. If you're using it and want to chat about where it goes next โ€” find me on X.

Note:This is a side project I built to make my own work life easier โ€” not a polished product. Things may not always work perfectly. If you hit a bug or something feels off, just[open an issue]and I'll get to it when I can.

Claude Code firstโ€” built and optimised for Claude Code; Cursor Agent support exists but is experimental (seeAGENTS.mdto add your own)Agent switchingโ€” Switch between agents mid-conversation with context preservation** Git worktrees**โ€” Isolate work with automatic worktree creation per session** Multi-repo sessions**โ€” Work across multiple repositories in a single grouped session** Live terminal**โ€” Stream agent output in real-time via WebSocket + xterm.js** Session restore**โ€” Restore stopped sessions with full conversation history intact** Plan tab**โ€” Agents save structured plans; send follow-up messages directly from the plan view** Changes tab**โ€” Live git diff viewer with inline commenting** Files explorer**โ€” Browse and open files from the session's repo with in-file search (Cmd+F)** Status detection**โ€” Real-time working/waiting/done status via Claude Code hooks** Prompt templates**โ€” Save and reuse common prompts across sessions** Session grouping**โ€” Organize sessions by project or team** Session pinning**โ€” Pin important sessions to the top of the list** Meta-properties**โ€” Attach custom key-value properties to sessions for context** Quick actions**โ€” Fix-me button and Slack-to-fix for one-click session creation from issues** Ngrok integration**โ€” Expose the dashboard over the internet with a single toggle** Keyboard shortcuts**โ€” MRU session switcher, fullscreen terminal, and more** Collapsible sidebar**โ€” Maximize terminal space with one click** Mobile-friendly UI**โ€” Manage agents from your phone or tablet** Browser notifications**โ€” Get notified when agents finish or need input** Password protection**โ€” Optional authentication for network access

Note:agentdock is built primarily for[Claude Code]. Cursor Agent mode exists but is not actively maintained โ€” expect rough edges.

Tool Required Purpose Install

curl -fsSL https://bun.sh/install | bash

tmuxbrew install tmux

gitNode.jsbrew install node

Claude Codenpm install -g @anthropic-ai/claude-code

gh CLIbrew install gh

Cursor AgentAfter installing Claude Code, authenticate before first use:

claude login
git clone https://github.com/vishalnarkhede/agentdock.git
cd agentdock
./setup.sh

This installs dependencies and installs the agentdock

CLI to ~/bin

.

Web dashboard:

agentdock web

Opens http://localhost:5173 with the API server on port 4800.

On first launch, the setup wizard will prompt you to:

  • Set your base path(the directory where your repos live, e.g.~/projects

) Auto-discover git repositories in that directorySelect which repos to add- Optionally set a password to protect the dashboard on your network

You can also add, remove, or scan for repos later in Settings > Repositories.

CLI:

agentdock start my-repo                # launch agent in a repo
agentdock start -r repo1 repo2         # grouped multi-repo session
agentdock start my-repo --isolated     # isolated git worktree
agentdock repos                        # list configured repos
agentdock list                         # show active sessions
agentdock stop --all                   # kill all sessions

agentdock works great from a phone โ€” the UI is designed for it. Here's how to get it running:

1. Start the server on your Mac/Linux machine as usual:

agentdock web

The server binds to all network interfaces automatically, so no extra flags needed.

2. Find your local IP address:

ipconfig getifaddr en0

hostname -I | awk '{print $1}'

3. Open Chrome on your phone and navigate to:

https://<your-ip>:5173

You'll see a "connection not private" warning because the dev server uses a self-signed certificate. Tap

Advanced โ†’ Proceedto continue. This is expected and safe on your local network.

4. Add to your home screen for a native app-like experience:

Chrome (Android): tap the three-dot menu โ†’Add to Home screenChrome (iOS): tap the Share icon โ†’Add to Home Screen

Once added, it opens full-screen without the browser chrome, just like a real app.

Outside your home network? Use the built-in ngrok integration โ€” toggle it on from the header and you'll get a public HTTPS URL you can open from anywhere.

All configuration lives in ~/.config/agentdock/

. No database required.

Repos are configured on first launch via the setup wizard, or anytime through the web UI at Settings > Repositories. From there you can:

Scan a directory to auto-discover git reposAdd repos manually by alias and pathRemove repos you no longer need

Alternatively, create ~/.config/agentdock/repos.json

directly:

[
  { "alias": "backend", "folder": "my-backend", "remote": "org/my-backend" },
  { "alias": "frontend", "folder": "my-frontend", "remote": "org/my-frontend" }
]

Repos are expected under a base directory (default: ~/projects

). Override with:

export AGENTDOCK_BASE_PATH="$HOME/code"
Config file Purpose
~/.config/agentdock/auth-password
Protect the web UI with a password

MCP servers (e.g., Linear MCP) can be added via Settings > MCP Servers in the web UI and are automatically synced to all agent configs.

Cortex adds persistent local memory to Claude Code sessions. It automatically archives context to a local SQLite database and enables cross-session recall using hybrid semantic + keyword search. Works seamlessly inside agentdock sessions โ€” install it in your Claude Code MCP config and memories will persist across session restarts, compactions, and token limit resets.

For a deep dive into the internals, see

[ARCHITECTURE.md].

Create a sessionโ€” pick repos, optionally enable worktree isolation** Agent launchesin a tmux session with appropriate permissions for file edits, git, and GitHub CLI Status is tracked**via Claude Code lifecycle hooks (PreToolUse

,Stop

,Notification

, etc.) that write to/tmp/agentdock-status/

โ€” no terminal scraping neededWatch live outputโ€” Bun attaches to tmux through a native PTY and streams raw terminal bytes over WebSocket** Type input**โ€” keystrokes, paste and resize events are forwarded directly to the PTY; selection stays with the browser, and the wheel asks tmux for its scrollbackView the planโ€” agents save structured plans to~/.config/agentdock/plans/

which appear in the Plan tab; send follow-up messages directly from thereBrowse changesโ€” the Changes tab shows a live git diff of all modified files** Restore**โ€” stopped sessions can be restored with full Claude conversation history, bypassing the interactive picker for reliabilityStopโ€” kills the tmux session and cleans up any worktrees

Shortcut Action
Ctrl+Shift+[ / Ctrl+Shift+]
Switch to previous/next session (MRU order)
Cmd+F
In-file search (when Files tab is open)
Esc
Collapse plan/changes/files panel
Fullscreen button Expand terminal to full window
agentdock/
  bin/
    agentdock             # CLI tool
    ad-agent              # Sub-agent launcher
  server/                 # Bun + Hono (port 4800)
    src/
      services/
        session-manager.ts    # Session lifecycle orchestration
        tmux.ts               # tmux command interface
        worktree.ts           # git worktree management
        status.ts             # Agent status detection (hooks + fallback)
        config.ts             # File-based configuration
        linear.ts             # Linear ticket fetching
        slack.ts              # Slack message fetching
      routes/
        sessions.ts           # Session CRUD + agent switching
        repos.ts              # Repository management
        ws.ts                 # WebSocket terminal streaming
        git.ts                # Git diff / branch / PR operations
        tickets.ts            # Ticket context fetching
        quick.ts              # Quick actions (fix-me, Slack-to-fix)
        ngrok.ts              # Ngrok tunnel management
  client/                 # React + Vite + xterm.js (port 5173)
    src/
      pages/
        Dashboard.tsx         # Split-panel: session list + terminal/plan/changes/files
        CreateSession.tsx     # New session form with repo search + templates
      components/
        TerminalView.tsx      # xterm.js + WebSocket streaming
        ChangesView.tsx       # Git diff viewer with inline commenting
        FileExplorer.tsx      # File browser with in-file search
        Header.tsx            # Quick actions, ngrok, session controls

agentdock is designed to support any CLI-based coding agent. See AGENTS.md for step-by-step instructions on adding a new agent (e.g., Codex, Aider, Copilot CLI).

Local-firstโ€” server binds tolocalhost

by defaultNo external dependenciesโ€” all data stored in local files, no database or cloud services** Optional auth**โ€” password protection via hashed tokens stored in~/.config/agentdock/auth-password

Agent isolationโ€” each session runs in its own tmux session with configurable tool permissions

For security issues, please see SECURITY.md.

Platform Status
macOS Fully supported
Linux (Ubuntu/Debian) Fully supported
Windows Via WSL only (tmux requirement)

Why tmux? tmux provides reliable process management, session persistence, and terminal capture without reinventing process supervision. It's battle-tested and available everywhere.

Why Bun? Fast startup, built-in TypeScript support, and native WebSocket handling. The server starts in under 100ms.

Why no database? Session state is ephemeral (tmux sessions) and configuration is simple (a few JSON/text files). A database would add complexity without benefit.

Can I run this on a remote server? Yes โ€” set a password in ~/.config/agentdock/auth-password

and access the UI over your network. Use the built-in ngrok integration for a quick public URL, or set up SSH tunneling / a reverse proxy with HTTPS for a permanent setup.

How does status detection work? Claude Code sessions use lifecycle hooks (PreToolUse

, Stop

, Notification

, SubagentStop

) that write status files to /tmp/agentdock-status/

. This gives accurate working/waiting/done state without parsing terminal output. Cursor Agent uses terminal pattern matching as a fallback since it doesn't support hooks.

How does session restore work? When a session is stopped (e.g. after a reboot), agentdock finds the most recent Claude conversation UUID from ~/.claude/projects/

and passes it directly to claude --resume <uuid>

, bypassing Claude's interactive session picker entirely.

Contributions are welcome! See CONTRIBUTING.md for development setup and guidelines.

MIT โ€” see LICENSE for details.

โ”€โ”€ more in #developer-tools 4 stories ยท sorted by recency
โ”€โ”€ more on @vishal narkhede 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain โ€” perfect for shipping the agent you just read about.

$git push zahid main
โ†’ Live at https://your-agent.zahid.host โœ“
Get free account โ†’ Pricing
from โ‚ฌ0/mo ยท no card required
LIVE [news/agentdock-workspace-โ€ฆ] indexed:0 read:8min 2026-08-31 ยท โ€”