Modular status line for Claude Code. Displays path, context tokens, git info, battery, memory, API usage, and session cost. Supports configurable profiles (minimal, standard, developer, full, classic) and individual module toggles. Use when setting up or customizing the Claude Code status line.
Displays customizable real-time session information including path, context tokens, git status, system metrics, and API usage.
npx claudepluginhub leobrival/topographic-plugins-officialThis skill is limited to using the following tools:
scripts/statusline/biome.jsonscripts/statusline/bun.lockbscripts/statusline/config/default.jsonscripts/statusline/config/profiles/classic.jsonscripts/statusline/config/profiles/developer.jsonscripts/statusline/config/profiles/full.jsonscripts/statusline/config/profiles/minimal.jsonscripts/statusline/config/profiles/standard.jsonscripts/statusline/package.jsonscripts/statusline/src/cli.tsscripts/statusline/src/index.tsscripts/statusline/src/lib/config-manager.tsscripts/statusline/src/lib/context.tsscripts/statusline/src/lib/formatters.tsscripts/statusline/src/lib/modules/base.tsscripts/statusline/src/lib/modules/battery.tsscripts/statusline/src/lib/modules/context.tsscripts/statusline/src/lib/modules/cost.tsscripts/statusline/src/lib/modules/git.tsscripts/statusline/src/lib/modules/memory.tsModular status line system for Claude Code with configurable profiles and 7 display modules.
This skill provides a customizable status line that displays real-time information during Claude Code sessions.
| Module | Information | Default |
|---|---|---|
path | Current working directory (full/relative/short) | On |
context | Token count and context window usage % | On |
git | Branch name, changed files, additions/deletions | Off |
battery | Battery percentage and charging state (macOS) | On |
memory | RAM usage percentage and pressure level (macOS) | On |
usage | API usage with progress bar (OAuth + Anthropic API) | On |
cost | Session cost in USD and duration | Off |
scripts/statusline/
├── src/
│ ├── index.ts # Main entry point (reads stdin HookInput)
│ ├── cli.ts # CLI argument parser
│ └── lib/
│ ├── types.ts # HookInput interface, type definitions
│ ├── config-manager.ts # Profile loading, deep merge, config resolution
│ ├── context.ts # Standalone context token counter
│ ├── formatters.ts # ANSI colors, progress bars, path formatting
│ ├── usage-limits.ts # OAuth token retrieval, Anthropic API usage
│ └── modules/
│ ├── base.ts # BaseStatusModule abstract class
│ ├── path.ts # PathModule
│ ├── context.ts # ContextModule (transcript parsing)
│ ├── git.ts # GitModule (branch, changes, diff stats)
│ ├── battery.ts # BatteryModule (pmset, macOS)
│ ├── memory.ts # MemoryModule (vm_stat, macOS)
│ ├── usage.ts # UsageModule (API usage bars)
│ └── cost.ts # CostModule (session cost + duration)
├── config/
│ ├── default.json # Default module configuration
│ └── profiles/
│ ├── minimal.json # Path + context only
│ ├── standard.json # Balanced with usage
│ ├── developer.json # All modules including git + cost
│ ├── full.json # Everything enabled
│ └── classic.json # Block-style progress bars
├── statusline.config.ts # Legacy config interface
├── package.json
├── tsconfig.json
└── biome.json
cd ~/.claude/plugins/marketplaces/topographic-plugins-official/plugins/dev/skills/statusline/scripts/statusline
bun install
Add or update the statusLine entry in ~/.claude/settings.json:
{
"statusLine": {
"type": "command",
"command": "bun ~/.claude/plugins/marketplaces/topographic-plugins-official/plugins/dev/skills/statusline/scripts/statusline/src/index.ts",
"padding": 0
}
}
Restart Claude Code. The status line should appear at the bottom of the terminal.
To test manually:
echo '{"session_id":"test","transcript_path":"/tmp/test","cwd":"/tmp","model":"claude-sonnet-4-20250514"}' | bun ~/.claude/plugins/marketplaces/topographic-plugins-official/plugins/dev/skills/statusline/scripts/statusline/src/index.ts
Switch profiles via CLI argument or by editing config/default.json.
| Profile | Modules Enabled | Use Case |
|---|---|---|
minimal | path, context | Low distraction |
standard | path, context, battery, memory, usage | Balanced (default) |
developer | path, context, git, battery, memory, usage, cost | Full dev info |
full | All modules, all features | Maximum information |
classic | Same as standard, block-style bars | Retro look |
Edit the statusLine command in settings.json to pass --profile:
{
"statusLine": {
"type": "command",
"command": "bun ~/.claude/plugins/marketplaces/topographic-plugins-official/plugins/dev/skills/statusline/scripts/statusline/src/index.ts --profile developer",
"padding": 0
}
}
| Flag | Description |
|---|---|
--profile <name> | Load a profile (minimal, standard, developer, full, classic) |
--modules <list> | Comma-separated list of modules to enable |
--separator <char> | Custom separator between modules (default: •) |
--no-progress-bar | Disable progress bars |
--debug | Enable debug output |
--list-profiles | List available profiles |
--help | Show help |
Edit config/default.json to customize individual modules:
{
"modules": {
"path": { "enabled": true, "mode": "full" },
"git": { "enabled": true, "showBranch": true, "showChanges": true },
"usage": { "enabled": true, "progressBarStyle": "braille" }
}
}
Add a JSON file in config/profiles/:
{
"modules": {
"path": { "enabled": true, "mode": "short" },
"context": { "enabled": true },
"git": { "enabled": true }
},
"separator": " | "
}
The battery and memory modules use macOS-specific commands:
pmset -g batt (power management)vm_stat (virtual memory statistics)These modules gracefully degrade on non-macOS systems (disabled or show fallback).
settings.json points to the correct locationbun is in PATH--debug flag to the commandThe usage module requires OAuth authentication with Anthropic. It reads the token from macOS Keychain (security find-generic-password). If not authenticated, the module shows no data.
Check config/default.json — modules must have "enabled": true to appear.
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.