Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/kensaurus/cursor-kenji/statuslinenpx skills add kensaurus/cursor-kenji --skill statuslinegit clone --depth 1 https://github.com/kensaurus/cursor-kenjiWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kensaurus/cursor-kenji/statusline)<a href="https://agentmods.dev/skills/kensaurus/cursor-kenji/statusline"><img src="https://agentmods.dev/badge/skills/kensaurus/cursor-kenji/statusline.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00044 | $0.01867 |
| Opus 5 | $0.00022 | $0.00933 |
| Sonnet 5 | $0.00009 | $0.00373 |
| Haiku 4.5 | $0.00004 | $0.00187 |
Grade A, and why
statusline scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
The command is spawned with `child_process.spawn` (no shell on Unix, `shell: true` on Windows for .cmd/.bat compatibility). Updates are debounced at the configured interval. If a new update triggers while a script is run This is a copy
95% identical to statusline — 8 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 193 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLI Status Line
The CLI supports a user-configurable status line rendered above the prompt. A command is spawned on each conversation update, receives a JSON payload on stdin describing the session, and its stdout is displayed as the status line. The spec is aligned with Claude Code's status line.
Configuration
Add a statusLine entry to ~/.cursor/cli-config.json:
{
"statusLine": {
"type": "command",
"command": "~/.cursor/statusline.sh",
"padding": 2
}
}
The command field supports full paths, ~ expansion, and shell-style argument splitting. You can point it at a script file or use an inline command like jq -r '...'.
| Field | Required | Default | Description |
|---|---|---|---|
type |
yes | — | Must be "command" |
command |
yes | — | Path to an executable or inline command. ~ is expanded. |
padding |
no | 0 |
Horizontal inset (in characters) for the status line container. |
updateIntervalMs |
no | 300 |
Minimum interval between invocations. Clamped to >= 300ms. |
timeoutMs |
no | 2000 |
Maximum time the command may run before it is killed. |
Stdin payload
The command receives a JSON object on stdin. The TypeScript interface is StatusLinePayload in packages/agent-cli/src/hooks/use-status-line.ts.
Full JSON schema
{
"session_id": "abc123",
"session_name": "my session",
"transcript_path": "/path/to/transcript.jsonl",
"render_width_chars": 120,
"cwd": "/Users/me/project",
"model": {
"id": "claude-4-opus",
"display_name": "Claude 4 Opus",
"param_summary": "(Thinking)",
"max_mode": true
},
"workspace": {
"current_dir": "/Users/me/project",
"project_dir": "/Users/me/project/.cursor/transcripts",
"added_dirs": []
},
"version": "1.2.3",
"output_style": {
"name": "default"
},
"context_window": {
"total_input_tokens": 15234,
"total_output_tokens": null,
"context_window_size": 200000,
"used_percentage": 34.5,
"remaining_percentage": 65.5,
"current_usage": null
},
"vim": {
"mode": "NORMAL"
},
"worktree": {
"name": "my-feature",
"path": "/Users/me/.cursor/worktrees/repo/my-feature"
}
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 193 lines · 44 tokens per session scan A 2ce905220601
statusline is a skill published in the GitHub repository kensaurus/cursor-kenji (9 stars, last pushed 7d ago), licensed MIT. It adds 44 tokens to every session and 1,867 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 1 finding (runs shell commands). It is 95% identical to statusline, differing in 8 lines, and is treated as a copy.
Other skills, from other repositories
linkedin-job-scraper
Scrapes LinkedIn job postings using the JobSpy library (python-jobspy). Use this skill whenever the user wants to find jobs on LinkedIn, search for open roles, pull job listings, build a job pipeline, source job targets for GTM research, or monitor hiring signals. Even if the user just says "find me some jobs" or…
job-search
Search for jobs matching your skills, experience, and preferences.
send-sms-textbelt
Send SMS text messages to phone numbers. Use when the user asks to send a text, send an SMS, text someone, message a phone number, or send a notification via text message.
give-me-tips
Explains any senpi tip in depth, including Tip: lines in the TUI. Use when the user asks about a tip, what a tipped feature does, or which tips they can see.
042-planning-openspec
Use when creating or updating OpenSpec artifacts from an issue, plan, approved design, ADRs, existing OpenSpec, or a valid combination. The workflow assesses reviewable scope, records source authority and derivation, handles conflicts, and prevents silent synchronization. Triggers include Create OpenSpec from an…
043-planning-github-issues
Use when you need GitHub CLI (gh) installation/authentication guidance and an operator-only GitHub issue inventory workflow. The agent does not ingest GitHub issue, milestone, body, comment, title, label, or summary text; requirements analysis must use repository-owned planning artifacts, with issue numbers only for…