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 commands/albiol2004/trio-agent-loop/trio-initgit clone --depth 1 https://github.com/albiol2004/trio-agent-loopWrote 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/albiol2004/trio-agent-loop/trio-init)<a href="https://agentmods.dev/commands/albiol2004/trio-agent-loop/trio-init"><img src="https://agentmods.dev/badge/commands/albiol2004/trio-agent-loop/trio-init.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.00025 | $0.00784 |
| Opus 5 | $0.00013 | $0.00392 |
| Sonnet 5 | $0.00005 | $0.00157 |
| Haiku 4.5 | $0.00003 | $0.00078 |
Grade A, and why
trio-init 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.
What it actually says
Set up the trio-loop mailbox in the current project.
Mailbox directory: default loop/. If $ARGUMENTS starts with dir=<path> (e.g. /trio-init dir=loop-authz add rate limiting…), use that directory instead — every loop/ reference below then means that directory. One mailbox per loop is a hard rule: two loops (or two sessions) sharing a mailbox corrupt each other's state.
- If the mailbox's
STATE.mdalready exists, show its current status and LOG.md tail, then ask the user to choose: (a) reset — archive the old mailbox toloop-archive-<date>/and start fresh; (b) abort; or (c) keep it and initialize this new loop in a sibling directory (loop-<slug>/from the new goal) — the right choice when the existing loop may still be running in another session. If STATE.md saysstatus: runningand LOG.md's last entry is recent, recommend (c) — never hijack a possibly-live mailbox. - Create the mailbox directory with these files:
loop/GOAL.md — from $ARGUMENTS. If arguments are empty or vaguer than one sentence of substance, interview the user briefly (what does done look like, hard constraints, what must NOT change) before writing it. Decide the profile: software (default) or data — choose data when the goal is pipelines, ETL/ELT, SQL models, notebooks, finance/reporting datasets. Structure:
# Goal
profile: software | data
<the mission, in the user's words, sharpened>
## Definition of done
<objectively checkable statements>
## Constraints
<stack, style, things that must not break, budget notes>
For profile: data, the Definition of done MUST include data ground truth, so interview for it if missing: source(s) of truth to reconcile against, tolerated row-count/aggregate deltas, key uniqueness expectations, and whether re-runs must be idempotent. Vague data goals ("clean the dataset") are the #1 cause of runaway loops — pin numbers down.
loop/STATE.md (the mission: line is the first sentence of GOAL.md's mission, verbatim — the /trio orchestrator halts if it ever stops matching GOAL.md, which catches another session repurposing the mailbox):
schema: 1
iteration: 0
max_iterations: 10
status: ready
mission: <first sentence of the goal, verbatim>
## Approaches tried and rejected
(append-only; the Lead adds one line per dead end, with why)
## Key decisions and rationale
(append-only)
loop/LOG.md with a # Trio loop log header line, and empty loop/PLAN.md, loop/REPORT.md, loop/VERDICT.md.
- If the project is a git repo, ask the user whether
loop/should be gitignored (ephemeral) or committed (auditable history). Default suggestion: commit it. - Confirm setup and print next steps:
/triofor a single supervised iteration (recommended first), then/trio autoto run autonomously — if the mailbox is notloop/, say to pass it:/trio dir=<path>and/trio auto dir=<path>. Mention Esc stops the loop, and GOAL.md +max_iterationsin STATE.md are the two human control knobs while it runs.
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 · 43 lines · 25 tokens per session scan A dc28b2385c0b
trio-init is a command published in the GitHub repository albiol2004/trio-agent-loop (2 stars, last pushed 12d ago), licensed MIT. It adds 25 tokens to every session and 784 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-31.
Other commands, from other repositories
differential-audit
Audit EARS↔code coherence via a bidirectional differential. With no arguments, opens a scoping conversation that interprets what the user wants audited, maps it to arrows, and captures an explicit EARS selection. With one or more EARS IDs, audits those specs directly using configured defaults. Requires docs/arrows/…
arrow-maintenance
Run an audit-and-update pass on the docs/arrows/ overlay. Dispatches on project state — audits an existing overlay, bootstraps the overlay from existing LID docs, or redirects to /map-codebase or /linked-intent-dev for projects without LID.
map-codebase
Bootstrap LID in an existing (brownfield) codebase. Reads every file in scope, proposes lens-based clusterings, walks the user through reconciliation, generates skeleton LLDs/HLD/EARS and the arrow overlay, then prompts the user to flesh out the skeletons. Token-intensive by design.
commit
智能生成 Git 提交信息并提交.
test
Run all PandaFilter verification steps in order. Stop and report on first failure. This is the required pre-commit gate.
fix-issue
!gh issue view $ARGUMENTS 2>/dev/null || echo "Could not fetch issue $ARGUMENTS".