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/coltonbearden/carrelWrote 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/coltonbearden/carrel/meta)<a href="https://agentmods.dev/commands/coltonbearden/carrel/meta"><img src="https://agentmods.dev/badge/commands/coltonbearden/carrel/meta/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/coltonbearden/carrel/meta"><img src="https://agentmods.dev/badge/commands/coltonbearden/carrel/meta.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.00034 | $0.01438 |
| Opus 5.5 | $0.00014 | $0.00575 |
| Sonnet 5.5 | $0.00007 | $0.00288 |
| Haiku 4.5 | $0.00003 | $0.00144 |
Grade A, and why
meta 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 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.
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 — 119 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Handle this file-metadata request: $ARGUMENTS
Run the carrel CLI via Bash. carrel meta is a group; map the user's request onto the real subcommands and flags in the --help blocks below (regenerated from the CLI by scripts/sync_plugins.py; if the installed carrel meta --help differs, trust the installed version — never invent flags). Fields live in the desk db (.carrel/carrel.db under the global --root, default cwd), next to tags and notes:
Usage: carrel meta [OPTIONS] COMMAND [ARGS]...
Typed key/value fields on desk files (.carrel/carrel.db under --root).
Options:
--json Machine-readable JSON output.
--help Show this message and exit.
Commands:
export Export every file's fields as a table: one row per file, one column per key.
find List files whose fields satisfy every CONDITION (paths relative to the desk root).
get Print one field of PATH (its value alone in human mode; null when absent).
ls List PATH's fields with kind/source, or (without PATH) every key with its file count.
rm Remove KEY...
set Set KEY=VALUE...
Usage: carrel meta export [OPTIONS]
Export every file's fields as a table: one row per file, one column per key.
Without -o the table goes to stdout as CSV (or as JSON rows with --json); with -o a summary is
printed instead. Rows are sorted by path, columns by key (or as given with --key); a missing field
is empty. Exit 4 when no desk db exists under --root.
Options:
--key KEY Only these columns, in this order (repeatable).
-o, --out FILE Write to FILE (.json → JSON rows, anything else → CSV) instead of stdout.
--force Overwrite an existing --out file.
--json Machine-readable JSON output.
--help Show this message and exit.
Usage: carrel meta find [OPTIONS] CONDITION...
List files whose fields satisfy every CONDITION (paths relative to the desk root).
A condition is KEY OP VALUE with OP one of = != > >= < <= ~ (contains), or KEY? (has the field):
`vendor=acme`, `total>1000`, `due<2026-11` (ISO dates compare chronologically, so a year-month
prefix works), `invoice_no~2026`, `paid?`. Numbers compare numerically, text case-insensitively.
JSON: [{path, meta: {key: value}}].
Options:
--json Machine-readable JSON output.
--help Show this message and exit.
Usage: carrel meta get [OPTIONS] PATH KEY
Print one field of PATH (its value alone in human mode; null when absent).
Options:
--fail-empty Exit 5 when PATH has no such field.
--json Machine-readable JSON output.
--help Show this message and exit.
Usage: carrel meta ls [OPTIONS] [PATH]
List PATH's fields with kind/source, or (without PATH) every key with its file count.
Options:
--json Machine-readable JSON output.
--help Show this message and exit.
Usage: carrel meta rm [OPTIONS] PATH KEYS...
Remove KEY... from PATH (unknown keys/files are a quiet no-op).
Options:
--json Machine-readable JSON output.
--help Show this message and exit.
Usage: carrel meta set [OPTIONS] PATH KEY=VALUE...
Set KEY=VALUE... on PATH (registers the file in the desk db if needed).
Options:
--kind [str|num|date|bool] Force the kind of every field in this call (default: inferred —
true/false → bool, 1234.5 → num, an ISO YYYY-MM-DD date → date, else
str; digits with a leading zero such as 02134 stay str).
--source TEXT Who is writing the field (automation should pass its own name).
[default: user]
--json Machine-readable JSON output.
--help Show this message and exit.
- Choose the subcommand from intent: "record that X is from Acme and totals 1,234.50" →
set X vendor="Acme" total=1234.50; "what's the due date on X" →get X due; "which files are over 1000 / unpaid / due before November" →find total>1000,find paid=false,find due<2026-11-01; "give me a spreadsheet of these fields" →export -o fields.csv. - Kinds are inferred (
1234.5→ num,2026-10-01→ date,true→ bool) sofindcompares numbers numerically and dates chronologically; use--kind strto keep a zip code's leading zero. findconditions AND together:=,!=,>,>=,<,<=,~(contains),KEY?(has the field)./carrel-finance:refs --tagwritesref:<kind>:<value>tags (not fields); fields and tags combine in/carrel-inspect:search --tag ... --meta ..../carrel-agent:catalogexports and imports fields together with tags and notes.- If the user's desk is elsewhere, put
--root DIRbeforemeta(carrel --root DIR meta 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 · 119 lines · 34 tokens per session scan A 1506d3e22f52
meta is a command published in the GitHub repository coltonbearden/carrel (2 stars, last pushed yesterday), licensed MIT. It adds 34 tokens to every session and 1,438 once invoked, about $0.0001 per session on Opus 5.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-09-11.
Other commands, from other repositories
document-app
Reverse-engineer an AI-built codebase into the system documents reviewers and auditors need — a core set (architecture, flows, permissions, variables) plus conditional docs (emails, cron, SEO, automation) when they apply. check mode writes nothing and reports where the existing docs and the code disagree.
csv-to-numbers
Convert a CSV into a formatted Numbers workbook.
sheet-report
Analyze a Numbers or Excel file and generate a report with charts.
numbers-to-excel
Convert a Numbers document to Excel.
add-skill
Add a new Skill to the current plugin with proper structure.
hello
Greet the user with a friendly, personalized message.