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 skills add bks-lab/open-bridge --skill object-storegit clone --depth 1 https://github.com/bks-lab/open-bridgeWrote 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/skills/bks-lab/open-bridge/object-store)<a href="https://agentmods.dev/skills/bks-lab/open-bridge/object-store"><img src="https://agentmods.dev/badge/skills/bks-lab/open-bridge/object-store/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/skills/bks-lab/open-bridge/object-store"><img src="https://agentmods.dev/badge/skills/bks-lab/open-bridge/object-store.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.00080 | $0.01827 |
| Opus 5.5 | $0.00032 | $0.00731 |
| Sonnet 5.5 | $0.00016 | $0.00365 |
| Haiku 4.5 | $0.00008 | $0.00183 |
Grade A, and why
object-store 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 19d 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 — 160 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Object store
Owns every object reference in this tree and the stores they point into. The
decision it implements is docs/object-store.md;
where this file and the ADR disagree, the ADR wins.
The engine is skills/object-store/objstore/ behind the shim
skills/object-store/object-store.sh. The grammar it parses is a copy of
infra/object-stores/_schema.yaml, and scripts/check-object-grammar.py
fails CI the day the two drift.
The principle
Git holds what is read as text, diffed and reviewed. A store holds what is read whole and moved as bytes. An entry in the tree keeps the reference, the size, the content hash and the class; the bytes stay in the store.
There is deliberately no command that prints an object. Not behind a flag,
not in a pipe. path returns a filesystem path, fetch writes a file the
caller names, stat returns size and sha256. An agent reads this output, and a
multi-gigabyte object in it would end the session that asked for it.
Arguments
skills/object-store/object-store.sh stores # the declarations here
skills/object-store/object-store.sh stat object://recordings/2026-09/a.m4a
skills/object-store/object-store.sh path object://recordings/2026-09/a.m4a --sha256 <hash>
skills/object-store/object-store.sh fetch object://exports/q3.csv --to /tmp/q3.csv
skills/object-store/object-store.sh put object://recordings/2026-09/a.m4a --from ./a.m4a
skills/object-store/object-store.sh init recordings # mark a local store's root, once
skills/object-store/object-store.sh forget --sha256 <hash> # drop a cached copy
--root <dir> names the Bridge whose infra/object-stores/ applies (default:
the current directory). path and fetch report served from: store or
served from: cache on stderr, so stdout stays a path or a line.
What a failure says
A failure prints <ref>: <outcome>: <message> on stderr and nothing on stdout.
None of these is an empty result, because an empty result is what "not there"
and "not reachable" both used to look like to a script that only checked for
output.
What ships with it
30 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- .gitignore 34 B
- object-store.sh 2.7 KB runs code
- objstore/__init__.py 376 B runs code
- objstore/backends/__init__.py 0 B runs code
- objstore/backends/base.py 607 B runs code
- objstore/backends/local.py 4.7 KB runs code
- objstore/backends/s3.py 7.8 KB runs code
- objstore/cache.py 4.7 KB runs code
- objstore/cli.py 4.8 KB runs code
- objstore/credentials.py 4.1 KB runs code
- objstore/errors.py 3.3 KB runs code
- objstore/refs.py 2.3 KB runs code
- objstore/resolver.py 8.6 KB runs code
- objstore/sigv4.py 2.9 KB runs code
- objstore/stores.py 5.1 KB runs code
- run-tests.sh 212 B runs code
- scripts/tests/mutate.py 5.8 KB runs code
- scripts/tests/run.sh 1.8 KB runs code
- scripts/tests/runner.py 3.7 KB runs code
- tests/__init__.py 0 B runs code
- tests/mutations.py 22 KB runs code
- tests/support.py 12 KB runs code
- tests/test_cache.py 5.4 KB runs code
- tests/test_cli.py 14 KB runs code
- tests/test_guard.py 1.0 KB runs code
- tests/test_local.py 3.8 KB runs code
- tests/test_refs.py 1.8 KB runs code
- tests/test_s3.py 5.0 KB runs code
- tests/test_sigv4.py 2.6 KB runs code
- tests/test_stores.py 3.0 KB runs code
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.
- 19d ago Changed · -4 lines · -65 tokens per session 20b693f36693
- 22d ago First seen · 164 lines · 145 tokens per session scan A 6b7bfe8c8c47
object-store is a skill published in the GitHub repository bks-lab/open-bridge (13 stars, last pushed today), licensed MIT. It adds 80 tokens to every session and 1,827 once invoked, about $0.0003 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-24.
Other skills, from other repositories
pdfcraft
Headless PDF work with PdfCraft, provisioned on demand by pi-craft - combine, split, extract, rotate, delete and reorder pages, read text, render a page to png, audit faux redactions, script its 163 tools. Use for "merge these two PDFs", "extract pages 1 and 3 from this PDF", "rotate page 1 and drop page 2", "what…
deck3d-from-pptx
Turn an existing .pptx into a styled deck3d 3D presentation: import, reference renders, then nine steps (fidelity … transitions), each authoring 2-4 variants, showing a contact sheet, asking the user, recording the pick, then build + compare. Use on "make a 3D deck from this pptx", "convert my PowerPoint to deck3d"…
deckcraft
Headless presentations with DeckCraft (PPTX slides, layouts, shapes, text, tables), provisioned on demand by pi-craft - build a deck from commands, export to PDF, render slides to png. Use for "make a 3-slide presentation", "add a title slide to this pptx", "export this deck to pdf", "render slide 2 as an image".
gridcraft
Headless spreadsheets with GridCraft (XLSX/CSV/TSV workbooks, formula evaluation, recalculation, PDF export), provisioned on demand by pi-craft. Use for "build a budget spreadsheet with formulas", "convert this xlsx to csv", "what does this formula evaluate to", "change a cell and recalculate the totals", "export the…
wordcraft
Headless word processing with WordCraft (DOCX/ODT/RTF, 600+ editing commands, format conversion, PDF export), provisioned on demand by pi-craft. Use for "write a report as a docx", "convert this markdown to a Word document", "turn this docx into a pdf", "append a paragraph to this docx", "extract the text of this…
document-converter
Convert documents bidirectionally via the pi-doc-engine facade: ingest PDF/DOCX/PPTX/XLSX to provenance-stamped Markdown (with OCR), and produce templated DOCX/PDF from Markdown with diagrams, TOC and round-trip merge. Use on "convert this PDF to markdown", "ingest these docs into kb", "make a DOCX from markdown with…