A terminal UI for your Claude Code fleet
Every agent.
One den.
Den finds the Claude Code sessions already running on your machine and shows who each one is and what it is doing. Every prompt that needs you lands in one inbox, and you answer with a key. Den runs on your own machine.
- Binary 1 One Go binary on your own machine.
- Views 4 Overview, Fleet, Inbox, Review.
- Approve ^Y One key allows. ^N denies.
- Cloud 0 No hosted service. State stays on your disk.
Demo — 4 min 18 s
One sentence in. A website out.
The site you are reading was built by five agents from one mission typed into Den: a product manager on Opus, who started a designer, a developer, a copywriter and an SEO specialist in their own terminals. This is the recording, twenty-three minutes cut to four.
01 — Inbox
Answer every prompt from one place
Permission prompts, plan reviews, questions and finished turns from every session land in one stream. Each prompt is shown in full: the command, the diff, what the agent means to do. Press ^Y to allow or ^N to deny, without leaving the screen you are on.
- Permissions, plans and questions in one stream.
- Answered with ^Y and ^N.
/alwaysallows it again this session. - If you are at the agent's terminal, the normal dialog appears instead.
- Prompts from sub-agents say who sent them:
via orchestrator › …
02 — Agent badge
One face per agent, in every window.
Each Claude Code session gets a badge above its prompt: a 16×16 pixel critter and a name, both drawn from the session id, with the agent's role, its current task and what it worked on before. Den shows the same critter and name in the Fleet, the inbox and the orchestrator chat, and gives every live agent its own colour, which the badge reads. When the inbox says Plucky Capybara is waiting, the terminal with Plucky Capybara on it is the one.
fleet · inbox · chat cards · map · review stripes
- Ships inside Den.
den install-modsputs it into Claude Code. - A resumed session keeps its critter, its name and its earlier tasks.
- Older agents keep their colour. A newcomer never takes one in use.
- An image in kitty and Ghostty, text in other terminals.
Role and task come from a small Haiku call in that session, billed like any other Claude Code usage.
03 — Who directs whom
Hand work down a chain of command
Agents hand work to each other, so the fleet is a tree, not a list. Den learns who directs whom from the traffic it already sees, and draws it: guides between parent and child, directs n on every parent, and what the branch needs rolled up. Press ^T for the map, one column per level, from you to the leaves.
- The orchestrator's tree comes first, then agents nobody directs.
- The details pane shows the chain:
you › orchestrator › Mossy Lemur. - Fold a branch with ←, unfold with →.
- Edges survive a restart.
^T swaps the pane for a map: you › level 1 › level 2 › level 3.
04 — Missions
State a goal. Den staffs it.
A mission is a purpose in one sentence, the constraints that ride on every dispatch, and what done looks like. Type the goal. The orchestrator answers with a proposal: the team it means to start, the model it picked for each role, and the shape of the run. ^Y starts it.
- Four shapes: once, loop, fan-out, schedule.
- Models by task: haiku for small work, sonnet for building, opus for judgment and leading.
- A lead starts its own people. Den draws the team as a tree.
/pause,/resumeand/stop. A stopped mission keeps its history.
- once
- loop
- fan-out
- schedule
Your call
Nothing runs before ^Y
The orchestrator proposes. You decide. It can relay a message, answer a question about the fleet and start an agent, but it cannot approve anything. A mission waits for ^Y. A permission waits for ^Y. If you do nothing, nothing happens.
05 — Review
See what changed and who wrote it.
The Review tab shows what your agents changed, as git sees it on disk: commits, staged and unstaged edits and new files, against the branch the work started from. Den splits it into one entry per agent and puts a stripe in the agent's colour beside every line it wrote, so two agents in one file stay apart. Select lines and type to leave a comment.
- One entry per agent: repo · branch, +added −removed, how long ago.
- Lines no agent wrote stay grey: your own edits, or a fix by hand.
- ⇧↑ ⇧↓ or a drag selects lines. Type, then Enter, to comment.
- Follows the project picked on Overview. Comments survive a restart.
The stripe is the author: every changed line carries the colour of the agent that wrote it.
06 — Install
Open source, MIT
Den is open source under the MIT license. Build it from source, or download a release binary and check it against the published checksums.
From source
git clone --recurse-submodules https://github.com/GlacierHubAB/den
cd den
make install # builds ~/.local/bin/den
den install-hooks # once; backs up ~/.claude/settings.json
Needs Go 1.26 or later. --recurse-submodules is required: the bundled agent-badge mod is a submodule. make build writes ./den instead.
Release binaries
sha256sum -c --ignore-missing SHA256SUMS
chmod +x den_linux_amd64
mv den_linux_amd64 ~/.local/bin/den
den version
Each release on GitHub carries den_linux_amd64, den_linux_arm64 and SHA256SUMS. Download the binary for your machine and the checksum file into one folder first.
Requirements
- OS
- Linux
- Claude Code
- 2.1.289 or later
- Window placement
- Hyprland or Omarchy to focus and place agent terminals
- Terminal
- Any
Den reads the state Claude Code already writes. Hooks apply to sessions started after they are installed.
On Omarchy, spawned agents open through uwsm-app and xdg-terminal-exec on the workspace you are on, and the colours follow the Omarchy theme. Elsewhere on Linux, everything works except window placement.