Skip to content

t1k:statusline-full

FieldValue
Modulet1k-base
Version2.28.4
Effortlow
Tools

Keywords: 5h timer, context bar, full statusline, global statusline, install statusline globally, status line, statusline, weekly quota

/t1k:statusline-full
[--from <.claude/hooks dir>]

t1k:statusline-full — Global statusline installer

Section titled “t1k:statusline-full — Global statusline installer”

Promotes the kit’s canonical statusline (.claude/hooks/statusline.cjs) to a global install under ~/.claude/ so it renders in every Claude Code session — including projects that aren’t TheOneKit kits.

This skill does not carry its own copy of the statusline. It sources the kit’s own hooks/statusline.cjs + hooks/lib/* — single source of truth, no fork drift.

  • “Enable the full statusline globally”, “install statusline to ~/.claude”, “show the statusline in every project”.
  • NOT needed inside a t1k project — there the kit already wires the statusline per-project via hook-runner.cjs statusline. This skill is for the global case.
  • Line 1: 🤖 model [▰▰▰▱▱…] N% context ⌛ 5h usage 📅 7d weekly
  • Line 2+: 📁 dir 🌿 branch (status), agent flow, current todo, 📝 +added -removed

Usage data comes from Claude Code’s native statusline stdin (rate_limits, CC ≥ 2.1.80), with a fallback to os.tmpdir()/ck-usage-limits-cache.json. No separate usage hook is required — the canonical statusline is self-sufficient.

Run from inside a TheOneKit project (so the kit’s hooks/statusline.cjs is present):

Terminal window
bash .claude/skills/t1k-statusline-full/install.sh

Or point at any kit’s hooks directory explicitly:

Terminal window
bash .claude/skills/t1k-statusline-full/install.sh --from /path/to/.claude/hooks

It copies statusline.cjs~/.claude/statusline.cjs, the 3 required libs (colors, transcript-parser, git-info-cache) → ~/.claude/lib/, and wires ~/.claude/settings.json:

{ "statusLine": { "type": "command", "command": "node \"$HOME/.claude/statusline.cjs\"", "padding": 0 } }

Restart Claude Code to pick it up.

The statusline reads T1K_STATUSLINE_MODE (default full): full | compact | minimal. Export the env var in your shell/profile to change it globally.

  • Writes only under ~/.claude/ (statusline.cjs, lib/*.cjs, settings.json). It does not touch any project’s .claude/ or the kit’s per-project wiring.
  • Reads the session JSON Claude Code pipes on stdin to render; it does not read secrets and does not transmit anything off-machine. Usage numbers come from CC’s own stdin or the local cache file.
  • Re-running is idempotent: it overwrites the three files with the current canonical versions and re-wires statusLine.
  • “canonical statusline not found” → you’re not inside a t1k project and didn’t pass --from. Run it from a project where .claude/hooks/statusline.cjs exists, or pass --from <…/.claude/hooks>.
  • Global vs project conflict → if a project has its own .claude/settings.json statusLine pointing at hook-runner.cjs statusline, that project-level wiring wins there (correct — the kit manages it). The global install only affects sessions without a project override. This skill intentionally never edits project settings.
  • Chips /📅 blank → on a fresh session before the first prompt, CC may not have populated rate_limits yet and the cache may be empty; they fill in once usage data is available. Requires Claude Code ≥ 2.1.80 for native stdin rate limits.
  • Stale global copy → the global ~/.claude/statusline.cjs is a snapshot. After a t1k update bumps the kit statusline, re-run this installer to refresh the global copy. (Project installs update automatically via the kit; the global one does not.)
  • Windows → uses bash + node; run under Git Bash / WSL. Node must be on PATH.