Show HN: HUD, an open-source minimal terminal UI for ClaudeCode, Codex, OpenCode

adam_rida1 pts0 comments

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...

session claude codex code opencode agent

Related Articles