AgentDock is a local control panel for Codex, Claude Code, and OpenCode. It turns CLI agents into manageable tasks with a Kanban board, live execution trace, follow-up prompts, and workspace selection.
AgentDock is designed for people who run several CLI agents at once and want a cleaner way to track what each task is doing. Instead of treating every session as a black box, AgentDock keeps the task visible from start to finish:
- create a task
- choose a provider and workspace
- watch it run
- inspect output and session history
- ask follow-up questions
- move it through the board
Everything runs locally.
- Create Codex, Claude Code, or OpenCode tasks from the dashboard
- Choose a local workspace directory before launching a task
- Set title, description, provider, model, and priority
- Start, complete, cancel, reopen, or resume a task
- Keep task history in local storage
- Inspect the current command, workspace, provider, model, and session ID
- View runtime status, start time, finish time, and exit code
- Read live output as the agent runs
- Keep a conversation-style history for each follow-up turn
- Render agent responses as Markdown
- Collapse “thinking” text when it is explicitly marked
- Organize tasks into
Backlog,In Progress,Needs Input, andComplete - Drag and drop tasks between columns
- See status changes update immediately in the UI
- Keep the board readable with compact cards and clear status badges
- Dark glassmorphism interface
- Smooth motion and hover feedback
- Chinese / English UI toggle
- Local-only state refresh with SSE and polling fallback
AgentDock was built for a specific pain point: when multiple Codex, Claude Code, or OpenCode sessions are running, it is easy to lose track of which one is active, which one is blocked, and which one needs a follow-up. This project makes those sessions feel more like manageable tasks than opaque terminals.
- Backend: Python
- Frontend: Next.js + React + Tailwind CSS
- Drag and drop:
dnd-kit - Animation:
framer-motion
Use the root launcher for both services:
./start.shIf you prefer manual startup:
python3 server.py
cd frontend && npm run devOpen the dashboard at http://localhost:3000.
Backend API:
http://127.0.0.1:8765
- Tasks are persisted in
data/state.json - The frontend talks to the Python backend through
/api - Codex, Claude Code, and OpenCode tasks are launched locally and streamed back into the timeline
- Follow-up prompts resume the previous session instead of starting over
server.py: Python API server and task runtimefrontend/: Next.js dashboarddata/: local state storage
GET /api/state: full snapshot of tasks and sessionsGET /api/tasks: task list onlyPOST /api/tasks: create a taskPOST /api/tasks/:id/start: queue or start a taskPOST /api/tasks/:id/stop: stop a taskPOST /api/tasks/:id/complete: mark a task completePOST /api/tasks/:id/block: mark a task blockedPOST /api/tasks/:id/restart: restart a taskPOST /api/tasks/:id/prompt: send a follow-up prompt
- The Python backend no longer serves the UI
- If you change backend code, restart
python3 server.py - If you change frontend code, restart
npm run dev - The repo currently targets local usage only
- More provider integrations
- Better session timeline visualization
- Task templates and presets
- More granular runtime telemetry
MIT License. See LICENSE.
