Install
$ agentstack add skill-dwmkerr-claude-toolkit-claude-code-statusline-development ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Claude Code Statusline Development
Create custom status lines that display contextual information at the bottom of Claude Code.
Quick Reference
You MUST read the reference files for detailed schemas and examples:
- [JSON Schema](./references/json-schema.md) - Complete input structure documentation
- [Example: Simple](./references/example-simple.md) - Basic bash statusline
- [Example: Git-Aware](./references/example-git-aware.md) - Git branch and status
- [Example: Context Usage](./references/example-context-usage.md) - Context window percentage
- [Example: Cost Tracking](./references/example-cost-tracking.md) - Session costs and tokens
Configuration
Add to .claude/settings.json:
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh",
"padding": 0
}
}
How It Works
- Status line updates when conversation messages change
- Updates run at most every 300ms
- First line of stdout becomes the status line text
- ANSI color codes supported
- JSON context passed via stdin
JSON Input (Quick Reference)
| Field | Description | |-------|-------------| | model.display_name | Model name (e.g., "Opus") | | workspace.current_dir | Current working directory | | workspace.project_dir | Original project directory | | cost.total_cost_usd | Session cost in USD | | cost.total_lines_added | Lines added this session | | cost.total_lines_removed | Lines removed this session | | context_window.context_window_size | Max context tokens | | context_window.current_usage | Current token usage object |
See [JSON Schema](./references/json-schema.md) for complete structure.
Script Template
#!/bin/bash
input=$(cat)
# Extract values using jq
model=$(echo "$input" | jq -r '.model.display_name')
dir=$(echo "$input" | jq -r '.workspace.current_dir')
# Colors via tput
blue=$(tput setaf 4)
reset=$(tput sgr0)
echo "${blue}[$model]${reset} ${dir##*/}"
Make executable:
chmod +x ~/.claude/statusline.sh
Tips
- Keep output concise - single line only
- Use
tputfor portable ANSI colors - Test with mock JSON:
echo '{"model":{"display_name":"Test"}}' | ./statusline.sh - Cache expensive operations (git status) if needed
Important
After creating or modifying statuslines, inform the user:
> No restart needed. Statusline changes take effect immediately - Claude Code reads settings fresh on each update.
Attribution
Based on Claude Code Status Line Configuration.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: dwmkerr
- Source: dwmkerr/claude-toolkit
- License: MIT
- Homepage: https://www.skills.sh/dwmkerr/claude-toolkit
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.