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/intake)<a href="https://agentmods.dev/commands/coltonbearden/carrel/intake"><img src="https://agentmods.dev/badge/commands/coltonbearden/carrel/intake/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/intake"><img src="https://agentmods.dev/badge/commands/coltonbearden/carrel/intake.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.00035 | $0.01446 |
| Opus 5.5 | $0.00014 | $0.00578 |
| Sonnet 5.5 | $0.00007 | $0.00289 |
| Haiku 4.5 | $0.00003 | $0.00145 |
Grade A, and why
intake 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 — 76 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Handle this filing request: $ARGUMENTS
Run the carrel CLI via Bash. Map the request onto the real flags in the --help block below (regenerated from the CLI by scripts/sync_plugins.py; if the installed carrel intake --help differs, trust the installed version — never invent flags):
Usage: carrel intake [OPTIONS] INBOX
File everything waiting in INBOX into --to, named after what the documents say.
Per file: read its fields (vendor, invoice number, dates, totals), find its reference numbers,
build a name from the --template, move it into --to/YYYY/MM (or FY<year>/Q<n> with --by period),
then re-index it, save the fields as desk metadata and tag it with every reference — all against
the desk under the global --root (default: --to).
Scanned PDFs are OCRed into a searchable copy which becomes the filed document; the untouched
original moves to --to/_originals. Nothing is overwritten (colliding names get -1, -2, … suffixes)
and nothing is deleted. JSON: [{src, dest, action: plan|filed|skip|error, fields, refs, tags, ocr,
reason}]. Exit 3 when a missing optional binary is the reason nothing could be read at all, 1 when
some files errored during --apply, 5 with --fail-empty when there was nothing to file.
--apply refuses (exit 2) when INBOX or --to holds files git is tracking, where a new path breaks
imports, tests and history; --allow-tracked overrides. The refusal happens before anything is
created or moved, and an untracked inbox inside a repository (the usual ~/Downloads-under-dotfiles
case) is fine.
Options:
--to DIRECTORY Where filed documents land (created if missing). [required]
--apply / --dry-run Perform the intake. Default is a dry-run that only prints the plan.
--watch Keep watching INBOX and file what arrives (implies --apply; refuses --dry-
run).
--once With --watch: stop after the first batch.
--timeout SECS With --watch: stop after SECS. [x>0]
--glob PATTERN Only take files whose name matches (e.g. '*.pdf').
--recursive Take files from subdirectories of INBOX too.
--stable SECS With --watch: wait until a file's size and mtime hold still for SECS.
[default: 2.0; x>0]
--template TEXT Name template (see `carrel rename --help` for the placeholders).
[default: {date}_{vendor}_{ref}{ext}]
--by [ym|period|flat] Folder layout under --to: ym = YYYY/MM, period = FY<year>/Q<n>, flat = no
subfolders. [default: ym]
--fiscal-start MM With --by period: the month the fiscal year starts in. [default: 1;
1<=x<=12]
--date-order [mdy|dmy] How to read an ambiguous slashed date in the document. [default: mdy]
--ocr / --no-ocr Force or forbid OCR of scanned PDFs. Default: OCR them when ocrmypdf is
installed.
--refs / --no-refs Find reference numbers and tag the filed file with them. [default: refs]
--index / --no-index Re-index the filed file in the desk under --root. [default: index]
--tag TAG Extra tag for every filed file (repeatable).
--fallback TEXT Use TEXT for a name placeholder that has no value instead of skipping the
file.
--fail-empty Exit 5 when no file was filed (or planned).
--allow-tracked File even when INBOX or --to holds files git tracks (see the description).
--force Deprecated spelling of --allow-tracked; warns when it bypasses the guard.
--json Machine-readable JSON output.
--help Show this message and exit.
- Always dry-run first (
carrel --json intake INBOX --to DEST) and show the user the plan: which files would be filed where, and everyskipwith its reason (usually a name placeholder with no value — offer--fallback). Only add--applyonce they have seen it. - One pass does the lot per file: fields (vendor, invoice number, dates, totals) → reference numbers → name from
--template(default{date}_{vendor}_{ref}{ext}) → move into--to/YYYY/MM(--by periodgivesFY<year>/Q<n>, with--fiscal-start MM) → index, save the fields as desk metadata, tag with everyref:<kind>:<value>. - Nothing is destroyed: scanned PDFs are OCRed into a searchable copy that becomes the filed document while the untouched original moves to
--to/_originals; colliding names get-1,-2, … suffixes. Without ocrmypdf the scan is filed as-is and the record saysocr: "unavailable". --applymaintains a desk at--to(or the global--root), so afterwardscarrel --root DEST search,meta find total>1000andtag find ref:invoice:...all work — say so when reporting.--watchkeeps filing what arrives (--once/--timeoutbound it for a test run;--stable SECSwaits for slow scanners and cloud sync to finish writing).
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 Changed · +1 lines 72b00fe20eaa
- 1mo ago First seen · 75 lines · 35 tokens per session scan A 88ae8b6c753e
intake is a command published in the GitHub repository coltonbearden/carrel (2 stars, last pushed 2d ago), licensed MIT. It adds 35 tokens to every session and 1,446 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
receipt
Upload and process receipt images or PDF invoices, extract line items, and match to bank transactions.
sheet-report
Analyze a Numbers or Excel file and generate a report with charts.
slides
A presentation-making command that creates slides from a topic using Manus Slides, with 24 stated visual styles. It can export the result as PPTX, PDF, or HTML files.
cabinet
Build a self-contained archive bundle for a single .eml — markdown, retained attachments, and source file in one directory.
checklist
Generate a custom checklist for the current feature based on user requirements.
clarify
Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification questions and encoding answers back into the spec.