GitHub - adrida/hud-mode: A compact heads-up display for your coding agent. Instruments while it works, the answer when it stops. Claude Code, Codex, OpenCode. · GitHub
/" data-turbo-transient="true" />
Skip to content
Type / to search
Sign in<br>Sign upAppearance settings
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
adrida
hud-mode
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
main
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>1 Commit<br>1 Commit
bin
bin
docs
docs
skills/hud
skills/hud
tools
tools
.gitignore
.gitignore
LICENSE
LICENSE
README.md
README.md
package.json
package.json
View all files
Repository files navigation
hud
A compact heads-up display for your coding agent. Instruments while it<br>works, the answer when it stops - for<br>OpenCode,<br>Claude Code, and<br>Codex.<br>Zero dependencies.
The instruments and the activity line update in place - no scrolling wall of<br>tool calls. The prompt bar is always writable : hit enter mid-turn and<br>your message queues, firing the moment the answer lands. esc interrupts<br>without losing the session.
When it stops, the answer lands in full - markdown rendered, links<br>clickable - and you reply right there. Sending a follow-up recompacts the<br>screen back to just instruments and prompt bar.
Install
One command:
npm install -g adrida/hud-mode && hud install
hud install walks you through it: your default agent, echo setup for<br>opencode if you want it, and where /hud lives - then wires the handback<br>into all three CLIs.
Requires Node ≥ 18 and at least one of opencode, claude, codex on your<br>PATH.
Use
# resume a specific session
hud claude "fix the CI" # same deck, claude code autopilot<br>hud codex -r # same deck, codex - resume last session<br>hud default claude # make bare `hud` fly claude code from now on">hud # your default engine (opencode out of the box)<br>hud "fix the failing CI" # or start with a prompt<br>hud -r # resume the last session in this directory<br>hud -r session-id> # resume a specific session
hud claude "fix the CI" # same deck, claude code autopilot<br>hud codex -r # same deck, codex - resume last session<br>hud default claude # make bare `hud` fly claude code from now on
Launch flags: -m/--model, -e/--effort, --danger (engine-specific<br>values).
At the ❯ prompt:
command<br>effect
send - or queue it while the agent is working
tab<br>hide / show the current answer
esc<br>interrupt the running turn (session survives)
↑ ↓<br>recall previously typed messages (persisted)
/hud<br>open this session in the full CLI
/model<br>switch model - engine-specific ids · /model reset
/effort<br>reasoning effort - engine-specific levels
/mode<br>permission / sandbox mode - engine-specific
/gauges<br>choose your instruments - /gauges mdl,msg,tok,t (saved)
/open<br>print the full answer into the scrollback
/links<br>every url the agent has shared, clickable
/qr<br>show/hide a qr code to this repo - share it
/new<br>start a fresh session
/danger<br>skip approvals/sandboxing (sandboxes only)
/id<br>print the session id
/exit<br>quit
The toggle
/hud works in both directions. From the hud it opens the same session in<br>the engine's full TUI; from the full TUI you come back - same session,<br>nothing lost, terminal wiped clean:
engine<br>drive<br>resume<br>come back with
OpenCode<br>opencode run --format json<br>-s / -c<br>/hud - a custom command writes the handoff locally at expansion time (near-zero tokens)
Claude Code<br>claude -p --output-format stream-json<br>--resume<br>/hud - a UserPromptSubmit hook intercepts it before the model (zero tokens, ~150 ms)
Codex<br>codex exec --json<br>exec resume / --last<br>type hud (no slash - a global AGENTS.md rule handles it), or quit the TUI
Quitting any full TUI (ctrl+c) always returns to the hud too.
Instruments
STS status flag (NORM / PERM / INTR / FAULT) · MDL model ·<br>MODE permission/sandbox mode · EFF reasoning effort · MSG messages ·<br>T+ elapsed · TOK output tokens (reasoning included) · AGT live<br>subagents · USD session cost (where the engine reports it) · CTX<br>context size · DSK conversation size on disk (claude, codex)
The cluster flows onto a second aligned row rather than dropping gauges.
The activity line shows what the agent is doing right now (READ,<br>EDIT, EXEC, SCAN, NET, AGENT, PLAN, THINK…); the ┄ line<br>carries its own narration.
Links the agent shares go into a per-session ledger<br>(~/.claude/hud/links/), survive restarts, and - like file paths in the<br>activity line - are OSC 8 hyperlinks: cmd/ctrl-clickable in iTerm2,<br>Ghostty, WezTerm, Kitty, and friends.
/qr renders a scannable QR code (a from-scratch, zero-dependency<br>encoder, verified module-for-module against a reference implementation).
The panel is yours: /gauges mdl,msg,tok,t shows...