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.
git clone --depth 1 https://github.com/gf-labs/claude-toolboxWrote 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/commands/gf-labs/claude-toolbox/brief)<a href="https://agentmods.dev/commands/gf-labs/claude-toolbox/brief"><img src="https://agentmods.dev/badge/commands/gf-labs/claude-toolbox/brief/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/gf-labs/claude-toolbox/brief"><img src="https://agentmods.dev/badge/commands/gf-labs/claude-toolbox/brief.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00052 | $0.03309 |
| Opus 5.5 | $0.00021 | $0.01324 |
| Sonnet 5.5 | $0.00010 | $0.00662 |
| Haiku 4.5 | $0.00005 | $0.00331 |
Grade B, and why
brief scanned grade B with 2 findings 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 1mo ago.
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.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
cat .claude/status.md 2>/dev/null || echo "(no project extension)" Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
git_root = subprocess.check_output(['git', 'rev-parse', '--show-toplevel'], stderr=subprocess.DEVNULL, text=True).strip() How it starts
The opening of the file, as written. The whole thing — 328 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Collect context
Run each command below now before producing output. Store results mentally.
Scope:
python3 ${CLAUDE_TOOLBOX_ROOT}/scripts/_scope.py
Status:
python3 ${CLAUDE_TOOLBOX_ROOT}/scripts/collect-status.py
Absence duration + resume point:
python3 -c "
import os, re, sys
from datetime import datetime
from pathlib import Path
sys.path.insert(0, os.environ.get('CLAUDE_TOOLBOX_ROOT', '') + '/scripts')
from _scope import get_scope, project_key
mode, data, cwd = get_scope()
projects_dir = Path.home() / '.claude' / 'projects'
if mode == 'single':
key = data
else:
import subprocess
try:
git_root = subprocess.check_output(['git', 'rev-parse', '--show-toplevel'], stderr=subprocess.DEVNULL, text=True).strip()
key = project_key(git_root, projects_dir)
except Exception:
print('ABSENCE_DAYS: unknown')
sys.exit(0)
log = projects_dir / key / 'memory' / 'session-log.md'
if not log.exists():
print('ABSENCE_DAYS: unknown')
sys.exit(0)
text = log.read_text()
dates = re.findall(r'^## (\d{4}-\d{2}-\d{2})', text, re.MULTILINE)
if not dates:
print('ABSENCE_DAYS: unknown')
sys.exit(0)
last = max(dates)
delta = (datetime.today().date() - datetime.strptime(last, '%Y-%m-%d').date()).days
print(f'ABSENCE_DAYS: {delta}')
print(f'LAST_SESSION_DATE: {last}')
blocks = re.split(r'(?=^## \d{4}-\d{2}-\d{2})', text, flags=re.MULTILINE)
dated = [b for b in blocks if re.match(r'^## \d{4}-\d{2}-\d{2}', b)]
last_block = sorted(dated, key=lambda b: re.match(r'^## (\d{4}-\d{2}-\d{2})', b).group(1))[-1] if dated else ''
resume = re.search(r'^\*\*Resume:\*\* (.+)$', last_block, re.MULTILINE)
print(f'RESUME: {resume.group(1)}' if resume else 'RESUME: (none)')
"
Session log (metadata + recent entries — depth scales to absence):
python3 ${CLAUDE_TOOLBOX_ROOT}/scripts/collect-session-log.py
Plans (with first bullet):
python3 ${CLAUDE_TOOLBOX_ROOT}/scripts/collect-plans.py
Plan map (project associations):
python3 ${CLAUDE_TOOLBOX_ROOT}/scripts/collect-plan-map.py
Branch, changes, commits, stash, CLAUDE.md, backlog, date:
echo "BRANCH:" && (git branch -vv 2>/dev/null | grep '^\*' || echo "not a git repo")
echo "CHANGES:" && (git status --short 2>/dev/null || echo "clean")
echo "COMMITS:" && (git log --oneline -5 2>/dev/null || echo "none")
echo "STASH:" && (git stash list 2>/dev/null || echo "empty")
echo "CLAUDE_MD:" && (test -f CLAUDE.md && echo "present" || echo "MISSING")
TW_PROJECT=$(python3 ${CLAUDE_TOOLBOX_ROOT}/scripts/_slug.py)
echo "IN_PROGRESS:" && (task rc.verbose=nothing project:${TW_PROJECT} +ACTIVE list 2>/dev/null || echo "(none)")
echo "UP_NEXT:" && (task rc.verbose=nothing project:${TW_PROJECT} limit:3 list 2>/dev/null || echo "(none)")
echo "DATE:" && date +%Y-%m-%d
Current session:
python3 ${CLAUDE_TOOLBOX_ROOT}/scripts/collect-summarize.py
Recent Claude activity:
python3 ${CLAUDE_TOOLBOX_ROOT}/scripts/collect-history.py $ARGUMENTS
Ramp — nodes due today:
python3 -c "
import re
from datetime import date
from pathlib import Path
today = date.today().isoformat()
g = Path.home() / '.claude' / 'knowledge-graphs' / 'claude-code.md'
if not g.exists():
print('no graph')
else:
text = g.read_text()
due = [m for m in re.findall(r'next: (\d{4}-\d{2}-\d{2})', text) if m <= today]
level_match = re.search(r'^level: (.+)$', text, re.MULTILINE)
xp_match = re.search(r'^xp: (\d+)$', text, re.MULTILINE)
level = level_match.group(1) if level_match else '?'
xp = xp_match.group(1) if xp_match else '?'
print(f'{len(due)} nodes due | {level} | {xp} XP')
" 2>/dev/null || echo "no ramp graph"
Phase / roadmap:
python3 ${CLAUDE_TOOLBOX_ROOT}/scripts/collect-phase.py 2>/dev/null || echo "NOT_FOUND"
Toolbox env:
printenv CLAUDE_TOOLBOX_ROOT 2>/dev/null && echo "(set)" || echo "NOT SET"
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.
- 1mo ago First seen · 328 lines · 52 tokens per session scan B 4b7474d0fa00
brief is a command published in the GitHub repository gf-labs/claude-toolbox (2 stars, last pushed 1mo ago), licensed MIT. It adds 52 tokens to every session and 3,309 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it B with 2 findings (reads agent configuration directories, runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
budget
Manage the token budget for Claude Code sessions. Model-aware — picks the right effective context window and prices per model. The session's REAL model is read from the transcript by the budget hook; config.model is only the fallback. Everything from Sonnet 4.6 up is 1M; Haiku 4.5 is 200K.
orchestrate
Do this task as an orchestrator. The aim is the same result at a fraction of the cost: in a long session, every token in this conversation is re-read on each later request, while a subagent's reading is discarded when it returns. The plugin's subagents run on Haiku 5.5, about 40× cheaper per token than Opus 5.5.
scout-meta-review
Run an interactive Scout meta-review — a system-level audit that sits above the individual session types. Checks whether sessions are running, mistake audit is trending well, proposals are flowing, KB files are healthy, and data-source coverage is consistent across session types. Runs in the current conversation.
scout-work
Interactive work session — walks through today's actionable items one at a time, presents a recommended action with draft content, and executes each one only with explicit approval. Runs in the current conversation (not as a background session).
ccc-status
Turn periodic progress updates for long sessions on or off, choose the channel (Slack, Discord, email or console), interval and detail level, or send one now. Use when the user asks to be kept posted, pinged on progress, or to stop updates.
ccc-teleport
Move work between devices: pull a Claude Code on the web session into this terminal with teleport, or keep a local session controllable from the web or mobile app with Remote Control. Use when switching device, monitoring a long task from a phone, or resuming a cloud session locally.