arkhq
v1.0.0
Published
Local command-centre for Claude Code projects — Bridge, Deck, Crew.
Maintainers
Readme
ARK
Your AI OS — every Claude Code project under one deck.
ARK is a local command-centre for every Claude Code project on your machine. One browser tab. Six views. No more juggling terminals to remember which agent is doing what in which folder.
npx arkhqThat's it. ARK spins up on http://localhost:3000 and opens it in your browser.
Private alpha. ARK is currently gated behind a license key. Ask Luke in the Build with Luke community for one, or set
ARK_LICENSE_DEV=1for local dev. See License below.
What's inside
Six views, switched by the top bar (or ⌘1 – ⌘6):
- 🧭 Captain — split-pane command centre. AI terminal on the left, project overview cards on the right. Quick-action pills for scan, IT Guy, new project, start all apps, workflows, and tasks.
- 🖥 Deck — embedded browser with tabbed iframes showing your running apps inline. Auto-populates when apps start, auto-removes when they stop. IT Guy button always visible.
- 👥 Crew — persistent
claudeCLI sessions per agent, rendered live in xterm.js. HTML preview pane for artifacts. Rail sorted by online status, then alphabetical, grouped by project. - ⚡ Workflows — multi-step automations + scheduled cron jobs (sub-tabs: Pipelines / Schedules). Chain app starts, crew prompts, waits, and other workflows. Ask the Pilot in plain English or build manually.
- 📋 Tasks — shared to-do list. Crew can flag tasks
--needs-humanand they bubble to the top. - 📜 Logbook — daily memory journal. Each day is a tab; entries grouped by project. Auto-summarised at midnight by the Logger.
Plus ⌘K to open the command palette, and 🔔 notifications for agent completions, task flags, cron fires, and workflow status.
Captains
Built-in role-slot agents, auto-created on first boot. Each one has an ARK-aware system prompt and a focus area:
| Captain | Owns | Job | |------------------|------------|--------------------------------------------------------------| | 👑 Captain | Captain | Cross-cutting fixes, architecture, "ARK feels slow" diagnoses | | ⚓ Mate | Deck | App tiles, port detection, run commands | | 🐚 Crew Chief | Crew | Agent rail, popovers, session lifecycle | | 🧭 Pilot | Workflows | Translates plain-English into multi-step automations + schedules | | 📋 Planner | Tasks | Manages the shared to-do list | | 📜 Logger | Logbook | Writes daily summaries from your real chat history |
Captains aren't just labels — they take real actions through arkctl, the local CLI that hits ARK's HTTP API. Tell the Planner "add a task to refactor the auth middleware, flag it as needing my input" and they'll run arkctl add-task --title "..." --needs-human.
arkctl
A small CLI for captains (and you) to talk to a running ARK server.
arkctl list-apps
arkctl start-app --id <appId>
arkctl send-crew --id <agentId> --text "Run the migration and report back"
arkctl add-task --title "Refactor auth" --priority high --needs-human \
--project ~/Documents/myapp
arkctl list-tasks
arkctl complete-task --id <taskId>
arkctl add-memory --summary "Shipped the new logbook redesign" --project ark
arkctl search-memory --q "migration"
arkctl list-workflows
arkctl add-workflow --name "Morning standup" --steps '[...]'
arkctl run-workflow --id <wfId>
arkctl scan # diagnostic scan
arkctl fix # IT-Guy auto-fix (background)Run arkctl help for the full list.
Tasks routing
Every task can be tied to a project folder. When you set the project, the assignee auto-defaults to a crew member who lives in that folder. Hit the ▶ Start button on a task and ARK will:
- Spawn the assigned crew member if they're not running
- Pipe a structured prompt into their session ("New task: …, run
arkctl complete-taskwhen done") - Mark the task
in-progress - Open the captain popover so you can watch them work
Workflows
Create multi-step automations from the Workflows tab:
- Ask the Pilot — describe what you want in plain English and the Pilot builds the workflow
- Manual — step editor with drag-to-reorder, supports: start/stop/restart app, prompt crew, wait, run another workflow
- Schedule — trigger workflows on a cron via the Timetable
- Notifications — get notified when workflows start, complete, or fail
Logbook automation
ARK auto-creates a midnight cron (0 5 * * *) on first boot that prompts the Logger to:
- Scan
~/.claude/projects/*/*.jsonl(Claude Code's actual conversation transcripts) - Pull out what was shipped per project for the day
- Write a one-line bullet entry per project via
arkctl add-memory
You can also fire it manually any time from the Logbook view: ✨ Summarise today.
Where state lives
| Path | What |
|--------------------------------------------|-----------------------------------------------------|
| ~/.arkrc.json | Apps, agents, workspaces, tasks, memories, crons, workflows |
| ~/.ark/history/<agentId>.log | Per-crew terminal scrollback (with session markers) |
| ~/.ark/crew/<agentId>/CLAUDE.md | Per-crew system prompt overrides |
| ~/.ark/PORT_REGISTRY.md | Auto-generated port map (IT Guy keeps it current) |
| ~/.ark/CREW.md | Auto-generated crew roster (who's doing what) |
| ~/.ark/screens/<appId>.png | Per-app preview screenshots |
| ~/.ark/license.json | Activated license key |
| ~/.claude/CLAUDE.md | Global Claude profile (ARK seeds this on first scan)|
Delete ~/.arkrc.json to start fresh — captains will be re-created on next boot.
Install
# One-shot
npx arkhq
# Or globally
npm install -g arkhq
arkhqFlags
arkhq # default: localhost:3000, opens browser
arkhq --port 4000 # custom port
arkhq --no-open # don't auto-open browser
arkhq --activate <key> # save a license key and exit
arkhq --mint # generate a fresh license key (requires the secret)Env vars
ARK_LICENSE_KEY=arkhq-XXXXXXXX-YYYY # alternative to --activate / file
ARK_LICENSE_DEV=1 # bypass license gate (local dev)
ARK_CLAUDE_BIN=/path/to/claude # override claude binary detection
ARK_PORT=3000 # arkctl default portThemes
Two built-in themes — switch from the ⚙ menu in the topbar:
- Dark — deep black, blue accent, Inter font
- Light — clean white, blue accent, Inter font
Requirements
- Node 18+
- The
claudeCLI on yourPATH(ARK uses a fallback chain to find it across nvm / Homebrew /~/.local/bin) - macOS arm64 is the primary target. Intel Mac and Linux work but
node-ptymay neednpm rebuild node-pty. Windows is untested.
License
MIT — Luke Byrne, getark.app
Access keys are HMAC self-validating. They're not real cryptographic security — anyone with the source can mint their own keys — but they gate the casual install during the alpha.
