{"id":49745750,"url":"https://github.com/vilmire/adhdev","last_synced_at":"2026-05-26T18:00:54.124Z","repository":{"id":347820633,"uuid":"1184511583","full_name":"vilmire/adhdev","owner":"vilmire","description":"🦦 ADHDev — Agent Dashboard Hub. Monitor \u0026 control AI coding agents from a single dashboard. Self-hosted, open-source.","archived":false,"fork":false,"pushed_at":"2026-05-26T03:51:57.000Z","size":9505,"stargazers_count":33,"open_issues_count":2,"forks_count":8,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-26T04:14:58.791Z","etag":null,"topics":["acp","adhdev","agent","cli","dashboard","development","hub","ide","open-source","remote-control"],"latest_commit_sha":null,"homepage":"https://adhf.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vilmire.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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":"CLA.md"}},"created_at":"2026-03-17T16:55:03.000Z","updated_at":"2026-05-26T02:31:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vilmire/adhdev","commit_stats":null,"previous_names":["vilmire/adhdev"],"tags_count":243,"template":false,"template_full_name":null,"purl":"pkg:github/vilmire/adhdev","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilmire%2Fadhdev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilmire%2Fadhdev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilmire%2Fadhdev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilmire%2Fadhdev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vilmire","download_url":"https://codeload.github.com/vilmire/adhdev/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilmire%2Fadhdev/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33528109,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"ssl_error","status_checked_at":"2026-05-26T15:22:15.568Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["acp","adhdev","agent","cli","dashboard","development","hub","ide","open-source","remote-control"],"created_at":"2026-05-10T04:00:29.360Z","updated_at":"2026-05-26T18:00:54.118Z","avatar_url":"https://github.com/vilmire.png","language":"TypeScript","funding_links":[],"categories":["AI Tools \u0026 Agent Orchestration"],"sub_categories":[],"readme":"# ADHDev Self-Hosted\n\n[![npm](https://img.shields.io/npm/v/@adhdev/daemon-standalone?label=npm)](https://www.npmjs.com/package/@adhdev/daemon-standalone)\n[![CI](https://github.com/vilmire/adhdev/actions/workflows/ci.yml/badge.svg)](https://github.com/vilmire/adhdev/actions)\n[![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](LICENSE)\n\nADHDev Self-Hosted is a self-hosted control plane for AI coding agent sessions. As agents become long-running background workers, ADHDev gives you one local dashboard to see which session is still running, waiting for approval, finished, stuck, or ready for the next instruction.\n\nIt is not trying to replace the underlying IDEs or agents. The goal is to give them a dedicated control surface: inspect active sessions, review chat and terminal state, approve or interrupt work, reopen the right history, and send the next instruction from one place.\n\nFor the standalone path, everything runs on your machine as a local daemon with an embedded web dashboard. No cloud account or hosted control plane is required.\n\nWebsite: https://adhf.dev\nDocs: https://docs.adhf.dev\n\nThis repo contains the open-source, self-hosted edition:\n\n- the standalone local server and dashboard\n- the shared daemon/runtime packages used by both standalone and cloud\n- the session-host and terminal-mux stack for hosted CLI runtimes\n\nHosted cloud operations are not part of this repository.\n\n## Currently Working / Tested\n\nThese are the integrations currently working or explicitly tested enough to call out near the top:\n\n- IDEs: Cursor, Google Antigravity, VS Code, Kiro\n- IDE extension integrations: Codex, Claude Code\n- CLI agents: Hermes Agent, Codex CLI, Claude Code CLI\n\nOther providers and adapters exist in the shipped inventory, but many are still incomplete, experimental, or not yet verified enough to present as fully supported. For the current support policy and caveats, see:\n\n- [Supported Providers](https://docs.adhf.dev/reference/supported-providers)\n- [Supported IDEs](https://docs.adhf.dev/reference/supported-ides)\n- [Compatibility \u0026 Caveats](https://docs.adhf.dev/guide/compatibility)\n\n## Screenshots\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/readme/landing-command-center-demo-poster.jpg\" alt=\"ADHDev desktop dashboard switching between chat and terminal views, floating a panel, and splitting the workspace\" width=\"100%\" /\u003e\n\u003c/p\u003e\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"50%\" align=\"center\" valign=\"top\"\u003e\n      \u003cimg src=\"docs/assets/readme/landing-desktop-detail.jpg\" alt=\"ADHDev desktop session detail view showing chat, code, and terminal state together\" width=\"100%\" /\u003e\n    \u003c/td\u003e\n    \u003ctd width=\"50%\" align=\"center\" valign=\"top\"\u003e\n      \u003cimg src=\"docs/assets/readme/landing-mobile-notification-demo-poster.jpg\" alt=\"ADHDev completion notification demo showing when to come back to a running session\" width=\"100%\" /\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/readme/landing-mobile-resume-demo-poster.jpg\" alt=\"ADHDev mobile resume flow reopening a saved session from a phone\" width=\"320\" /\u003e\n\u003c/p\u003e\n\n## What It Runs\n\nADHDev Self-Hosted is built around three local layers:\n\n1. `daemon-standalone` exposes a local HTTP/WebSocket server and serves the web UI.\n2. `daemon-core` manages IDE, CLI, extension, and ACP integrations.\n3. `session-host-daemon` (`adhdev-sessiond`) owns long-lived PTY runtimes so CLI sessions can survive daemon restarts.\n\nEverything runs on your machine by default. There is no cloud account requirement for the standalone path.\n\n## Quick Start\n\nRecommended path:\n\n```bash\nnpm install -g adhdev\nadhdev standalone\n```\n\nDirect standalone package:\n\n```bash\nnpm install -g @adhdev/daemon-standalone\nadhdev-standalone\n```\n\nOpen `http://localhost:3847`.\n\nUseful flags:\n\n```bash\nadhdev standalone --host\nadhdev standalone --port 8080\nadhdev standalone --token mysecret\nadhdev standalone --no-open\nadhdev standalone --dev\n```\n\nWhat those choices mean in practice:\n\n- plain `adhdev standalone` = localhost-only dashboard on this machine\n- `--host` = other devices on the same LAN can open it too\n- `--token` = best for scripts, curl, and operator-style access\n- dashboard password = best for normal browser users who should see a login prompt\n- `--host` with no token and no password = warning-first LAN exposure, not a hard block\n\nStandalone stays localhost-only by default. If you bind to `0.0.0.0` for LAN access, the dashboard warns when neither token auth nor a dashboard password is configured.\n\nThe standalone UI already includes both settings surfaces:\n\n- `Settings` → `Dashboard Security`\n  - enable password\n  - update/change password\n  - disable password\n- `Settings` → `Network Access`\n  - save default localhost-only vs all-interfaces bind mode for future launches\n- `Settings` → `Appearance` → `Fonts`\n  - standalone-only overrides for chat text, markdown/code blocks, and terminal/tool rows\n  - saved alongside standalone network preferences under `~/.adhdev/standalone-network.json`\n\nCurrent standalone UX defaults:\n\n- ordinary CLI and ACP launches start fresh by default\n- use `Open saved history` when you want continuity in the same provider conversation\n- hosted runtime recovery is a separate interruption flow, not part of the ordinary new-session CTA\n- if the local dashboard drops its websocket connection, the banner now exposes `Reconnect now`\n\nCanonical self-hosted docs:\n\n- [Self-hosted setup](docs/self-hosted/setup.md)\n- [Self-hosted configuration](docs/self-hosted/configuration.md)\n- [Self-hosted local API](docs/self-hosted/local-api.md)\n\nWindows note:\n\n- Windows + Node.js 24+ is currently blocked for normal startup/install paths.\n- Use Node.js 22.x, or use the PowerShell installer path described in the docs.\n\n## Repository Layout\n\n| Path | Purpose |\n| --- | --- |\n| `packages/daemon-core` | Shared engine: providers, CDP, command routing, session/runtime state |\n| `packages/daemon-standalone` | Local HTTP/WS server and bundled standalone UI |\n| `packages/web-core` | Shared React pages, components, hooks, and transport abstractions |\n| `packages/web-standalone` | Standalone dashboard app |\n| `packages/web-devconsole` | Provider/dev diagnostics UI |\n| `packages/session-host-core` | Session-host protocol, client, registry, ring buffer, labels |\n| `packages/session-host-daemon` | Long-lived PTY runtime owner process |\n| `packages/terminal-mux-*` | Local terminal mux stack |\n| `packages/terminal-render-web` | Browser-side terminal rendering support |\n| `packages/ghostty-vt-node` | Ghostty VT bindings used by runtime/mux layers |\n\n## Provider Inventory\n\nADHDev ships a broad built-in inventory of IDE, extension, CLI, and ACP integrations, including 35 ACP adapters.\n\nImportant distinction:\n\n- built-in means the integration exists in the shipped inventory\n- verified means it has explicit validation evidence\n\nDo not treat inventory presence as blanket support. Current verification policy lives here:\n\n- [Supported Providers](https://docs.adhf.dev/reference/supported-providers)\n- [Supported IDEs](https://docs.adhf.dev/reference/supported-ides)\n- [Compatibility \u0026 Caveats](https://docs.adhf.dev/guide/compatibility)\n\n## Standalone API Surface\n\nThe standalone server currently exposes:\n\n- `GET /api/v1/status`\n- `POST /api/v1/command`\n- `GET /api/v1/runtime/:sessionId/snapshot`\n- `GET /api/v1/runtime/:sessionId/events`\n- `GET /api/v1/mux/:workspace/state`\n- `GET /api/v1/mux/:workspace/socket-info`\n- `POST /api/v1/mux/:workspace/control`\n- `GET /api/v1/mux/:workspace/events`\n- `ws://localhost:3847/ws`\n\nCanonical runtime contract:\n\n- `GET /api/v1/status` and its `sessions[]` array are the source of truth\n- runtime targeting should use raw `targetSessionId`\n- older per-surface projections should be treated as convenience views, not the canonical model\n\nReference:\n\n- [docs/openapi.yml](docs/openapi.yml)\n- [Self-hosted API docs](docs/self-hosted/local-api.md)\n\n## Session Host\n\nHosted CLI runtimes are managed through `adhdev-sessiond`.\n\nKey properties of the current design:\n\n- PTY ownership is separated from the main daemon process\n- CLI sessions can reconnect after daemon restarts\n- write ownership is explicit and single-owner\n- diagnostics and recovery actions are exposed through the daemon control plane and standalone UI\n\nSee:\n\n- [Self-hosted setup](docs/self-hosted/setup.md)\n- [Self-hosted local API](docs/self-hosted/local-api.md)\n- [Self-hosted session host](docs/self-hosted/session-host.md)\n- [Compatibility \u0026 caveats](https://docs.adhf.dev/guide/compatibility)\n\n## Development\n\nFrom source:\n\n```bash\ngit clone https://github.com/vilmire/adhdev.git\ncd adhdev\nnpm install\nnpm run build\nnpm run dev\n```\n\nUseful workspace scripts:\n\n```bash\nnpm run dev:daemon\nnpm run dev:web\nnpm run dev -w packages/web-devconsole\n```\n\n## Documentation\n\n- [Self-hosted setup](docs/self-hosted/setup.md)\n- [Self-hosted local API](docs/self-hosted/local-api.md)\n- [Supported providers](https://docs.adhf.dev/reference/supported-providers)\n- [Contributing](CONTRIBUTING.md)\n- [Changelog](CHANGELOG.md)\n\n## Cloud Comparison\n\n| Feature | OSS | Cloud |\n| --- | :--: | :--: |\n| Local-only dashboard | ✅ | ✅ |\n| Remote access outside LAN | ❌ | ✅ |\n| Multi-machine management | ❌ | ✅ |\n| API keys and hosted webhooks | ❌ | ✅ |\n| OAuth / account system | ❌ | ✅ |\n| Push notifications | ❌ | ✅ |\n| Team / sharing features | ❌ | ✅ |\n\n## License\n\nAGPL-3.0-or-later. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvilmire%2Fadhdev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvilmire%2Fadhdev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvilmire%2Fadhdev/lists"}