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/michael-harris/devteam/devteam-logsnpx skills add michael-harris/devteam --skill devteam-logsgit clone --depth 1 https://github.com/michael-harris/devteamWhat 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.00016 | $0.01834 |
| Opus 5 | $0.00008 | $0.00917 |
| Sonnet 5 | $0.00003 | $0.00367 |
| Haiku 4.5 | $0.00002 | $0.00183 |
Grade A, and why
devteam-logs scanned grade A with 0 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 3d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 242 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Session state: !source "${CLAUDE_PLUGIN_ROOT}/scripts/state.sh" && get_current_session 2>/dev/null || echo "No active session"
Recent events: !sqlite3 .devteam/devteam.db "SELECT type, message FROM events ORDER BY created_at DESC LIMIT 10" 2>/dev/null || echo "No events"
DevTeam Logs Command
Command: /devteam:logs [options]
View execution logs, event history, and debugging information.
Usage
/devteam:logs # Show recent logs
/devteam:logs --session <id> # Show logs for specific session
/devteam:logs --agent <name> # Filter by agent
/devteam:logs --level error # Filter by log level
/devteam:logs --tail 50 # Show last 50 entries
/devteam:logs --export # Export logs to file
Options
| Option | Description |
|---|---|
--session <id> |
Filter by session ID |
--agent <name> |
Filter by agent name |
--level <level> |
Filter by level: debug, info, warn, error |
--tail <n> |
Show last N entries (default: 20) |
--since <time> |
Show logs since time (e.g., "1h", "30m") |
--export |
Export to logs/devteam-TIMESTAMP.log |
--json |
Output as JSON |
--verbose |
Show full log details |
Your Process
Step 1: Query Events Database
async function getLogs(options) {
let query = `
SELECT
e.id,
e.timestamp,
e.event_type,
e.data,
s.command as session_command,
ar.agent
FROM events e
LEFT JOIN sessions s ON e.session_id = s.id
LEFT JOIN agent_runs ar ON e.session_id = ar.session_id
WHERE 1=1
`
const params = []
if (options.session) {
query += ` AND e.session_id = ?`
params.push(options.session)
}
if (options.agent) {
query += ` AND ar.agent LIKE ?`
params.push(`%${options.agent}%`)
}
if (options.level) {
query += ` AND json_extract(e.data, '$.level') = ?`
params.push(options.level)
}
if (options.since) {
const sinceTime = parseTimeOffset(options.since)
query += ` AND e.timestamp > datetime('now', ?)`
params.push(sinceTime)
}
query += ` ORDER BY e.timestamp DESC LIMIT ?`
params.push(options.tail || 20)
return await db.all(query, params)
}
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.
- 3d ago First seen · 242 lines · 0 tokens per session scan A 75bfa0005ade
devteam-logs is a skill published in the GitHub repository michael-harris/devteam (18 stars, last pushed 6mo ago), licensed MIT. It adds 16 tokens to every session and 1,834 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
hydra
Multi-agent orchestration framework for Claude Code. Automatically delegates tasks to cheaper, faster sub-agents (Haiku, Sonnet) while maintaining Opus-level quality through verification. Use when working on any coding task — Hydra activates automatically to route file exploration, test running, documentation, code…
quality-stack
Scan a project to detect configured quality and testing tools across JVM (Gradle/Maven), Android (AGP/Compose/KMP), Node.js/TypeScript, and Python ecosystems. Cross-reference against research-backed recommendations and assist with setup. Auto-detects project type(s) including monorepos with mixed ecosystems. Use when…
lyra
Transform vague inputs into precision-optimized AI prompts for Claude, ChatGPT, Gemini, or other LLMs. Use when user mentions "optimize prompt", "improve prompt", "lyra", "prompt engineering", or needs help crafting effective AI prompts.
sync-docs
Sync official Anthropic documentation and analyze impact on project components. Runs docs/reference/update-claude-docs.sh, computes diffs, and reports impacts on the skill validator, plugins, and project documentation. Use when user mentions "sync docs", "update reference docs", "refresh docs", or "check doc changes".
deep-research
Deep research on technical topics using EXA tools with intelligent two-tier caching. Use when user asks to research a topic, investigate best practices, look up information, find patterns, or explore architectures. Also invoked by /research command. Triggers: "research", "look up", "investigate", "deep dive", "find…
sops-add-key
Add a new machine's age public key to .sops.yaml and re-encrypt all files. Use for multi-machine setups. Use when user mentions "add key", "add machine", "sops add key", "new machine", "authorize machine", "share key", "add public key", "multi machine sops".