ht claude
Verbs backing the Claude Code integration. Added in 0.5.0 (statusline / sessions / event) and 0.6.0 (install / uninstall / doctor).
claude statusline
Section titled “claude statusline”ht claude statuslineNot called by hand — install it as Claude Code’s statusline:
{ "statusLine": { "type": "command", "command": "ht claude statusline" } }Reads the JSON Claude Code pipes on stdin, prints a τ-mux-styled status
line (model · effort · directory · git branch · permission mode · PR ·
context bar · cost · ±lines · rate-limit warnings ≥80%), and tees the
parsed data to the app (claude.statusline) so the sidebar ticker and
session registry stay accurate. The print always happens and always
comes first — a missing or hung app never degrades the line; exit code
is always 0.
claude pane
Section titled “claude pane”ht claude pane [--cwd P] [--split] [--direction right|down] [--resume ID]Open a native Claude Code pane — the same
entry point as the command palette, scriptable. --cwd sets the session
directory (defaults to the focused pane’s), --split opens it beside the
current pane, --resume ID reopens a previous session. Mirrors
agent.create for the pi pane.
claude auto-approve
Section titled “claude auto-approve”ht claude auto-approve # statusht claude auto-approve on # accept prompts automaticallyht claude auto-approve offht claude auto-approve on --delay 300Turns automatic acceptance of Claude Code’s terminal permission prompts on or off. Applies immediately and persists — this is the same setting as Settings → Auto-approve Claude Code prompts and the command-palette toggle.
--delay sets the pause before Enter is sent (ms). The prompt is re-checked
when the delay expires, so a prompt you answered yourself never receives a
stray keystroke.
Only Claude Code’s own terminal prompt is ever answered — never the τ-mux approval modal, never the Claude Code pane. After more than eight prompts in a minute it pauses itself and notifies you, and every approval is written to that pane’s sidebar log.
claude approve
Section titled “claude approve”ht claude approve [--surface S]Accept the permission prompt Claude Code is showing in a terminal
pane by sending Enter. Without --surface it answers the
longest-waiting session. Refuses (with a reason) when nothing is
waiting, when the approval was routed to the τ-mux modal instead, or
when the session is a Claude Code pane —
see accepting terminal prompts.
claude sessions
Section titled “claude sessions”ht claude sessions # live sessionsht claude sessions --all # include recently-ended onesLists the Claude Code sessions the app has observed: short id, phase
(working / waiting-input / waiting-approval / compacting /
error), pane, title, and (model · ctx% · cost · turn N).
claude install / uninstall
Section titled “claude install / uninstall”ht claude install [--features lifecycle,tasks,statusline,approvals] [--dry-run] [--settings-path P] [--bridge-path P]ht claude uninstallManaged surgery on ~/.claude/settings.json:
- timestamped backup beside the file before every write;
- additive merge — entries you wrote yourself are never touched;
- idempotent — a second install reports
= unchangedlines; - refuses to rewrite a file it cannot parse;
- a user-defined
statusLineis kept (reported, not clobbered).
Default features: lifecycle,tasks,statusline. approvals is
opt-in — it wires the PermissionRequest hook that routes permission
prompts to a τ-mux modal + Telegram (see the
integration page
for the fail-safe contract). uninstall removes exactly the managed
entries (identified by their command path) and keeps a backup.
claude doctor
Section titled “claude doctor”ht claude doctorOne-screen health report: claude binary + version, settings file
parse state, bridge presence, hooks wired vs missing, approvals state,
statusline (ht claude statusline / user-defined / none), skill
presence, and app reachability — including the specific “reachable but
pre-0.5.0 — restart τ-mux” case.
claude event
Section titled “claude event”ht claude event --json '<bridge-event JSON>'Internal — the hook bridge’s transport into claude.event. Injects
HT_SURFACE as the surface attribution when the payload lacks one.