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 code-yeongyu/senpi --skill bun-1-4git clone --depth 1 https://github.com/code-yeongyu/senpiWrote 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/code-yeongyu/senpi/bun-1-4)<a href="https://agentmods.dev/skills/code-yeongyu/senpi/bun-1-4"><img src="https://agentmods.dev/badge/skills/code-yeongyu/senpi/bun-1-4.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector pass
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.00159 | $0.01447 |
| Opus 5 | $0.00079 | $0.00724 |
| Sonnet 5 | $0.00032 | $0.00289 |
| Haiku 4.5 | $0.00016 | $0.00145 |
Grade A, and why
bun-1-4 scanned grade A with 1 finding 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 4d 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
| HTTP/3 server; `fetch` protocol/compress/proxy | `http3: true`, `fetch(url, { protocol, compress, proxy })` | — | http-networking | How it starts
The opening of the file, as written. The whole thing — 45 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Bun 1.4 — Use the Builtins First
Bun 1.4 (2026) ships builtins that replace most utility npm packages. Before adding a dependency or writing a workaround, check the capability map below — if Bun ships it, use the builtin. This skill is loaded because this session's eval js kernel runs Bun >= 1.4; on other machines or pinned projects, confirm with bun --version ([v1.3.x]/[v1.4.0] tags in the references give exact minimums). Release post: https://bun.com/blog/bun-v1.4
Capability map — what you can do now
| You want to... | Use | Replaces | Ref = references/<name>.md |
|---|---|---|---|
| Resize/convert/rotate images | Bun.file(p).image().resize().webp().write() |
sharp | runtime-apis |
| Headless browser: navigate, click, screenshot, evaluate, CDP | new Bun.WebView() |
puppeteer, playwright (scraping) | runtime-apis |
| Markdown → HTML / React / ANSI | Bun.markdown.html() / .react() / .render() |
marked, react-markdown | runtime-apis |
| Schedule cron jobs | Bun.cron() |
node-cron | runtime-apis |
| Drive a PTY (bash, vim, TUIs) from JS | Bun.spawn([...], { terminal }) |
node-pty | runtime-apis |
| Run package scripts concurrently, glob-matched | bun run --parallel "build:*" |
concurrently, npm-run-all | runtime-apis |
| Parse JSON5 / JSONL / JSONC / XML / TOML; tarballs | Bun.JSON5/.JSONL/.JSONC/.XML/.TOML, Bun.Archive |
json5, ndjson, jsonc-parser, fast-xml-parser, @iarna/toml, tar | runtime-apis |
| ANSI-aware terminal text: width, slice, wrap | Bun.stringWidth(), Bun.sliceAnsi(), Bun.wrapAnsi() |
string-width, slice-ansi, wrap-ansi | runtime-apis |
| Call C libraries 3x faster, plain strings back | bun:ffi (buffer_length, cstring) |
— | runtime-apis |
| Serve a static dir (ETag/Range/304 handled) | Bun.serve({ routes: { "/x/*": { dir } } }) |
express.static, serve-static, sirv | http-networking |
HTTP/3 server; fetch protocol/compress/proxy |
http3: true, fetch(url, { protocol, compress, proxy }) |
— | http-networking |
| Tests across CPU workers / CI shards / changed files / flaky retry | bun test --parallel --shard=1/3 --changed=main --retry |
jest/vitest infra | test |
| Kill "passes alone, fails in suite" bugs | bun test --isolate |
vitest default behavior | test |
| React Compiler auto-memoization | bun build --react-compiler |
babel-plugin-react-compiler | build |
| Embed assets/dirs into a single-file executable | bun build --compile --asset ./public |
pkg hacks | build |
| Compile-time feature flags, in-memory bundling, metafile | bun:bundle feature(), files:{}, metafile: true |
esbuild define/plugins | build |
| Diff package versions, fix vulns, dedupe/prune, license audit | bun pm diff, bun audit fix, bun dedupe, bun prune, bun pm licenses |
npm-diff, npm audit fix | install |
| 7x faster CI installs (global virtual store) | linker = "isolated" in bunfig.toml |
pnpm store | install |
| Profile CPU/heap/bundle as grep-able Markdown | bun --cpu-prof-md, --heap-prof-md, bun build --metafile-md |
Chrome DevTools round-trip | dev-tooling |
| Native REPL; render Markdown in terminal | bun repl, bun ./README.md |
node repl, glow | runtime-apis |
| Run Playwright, vitest, Next.js 16, OpenTelemetry, dd-trace | they now just work | Node.js | node-compat-platforms |
What ships with it
10 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.
- references/breaking-changes.md 5.1 KB
- references/build.md 4.6 KB
- references/dev-tooling.md 1.9 KB
- references/http-networking.md 4.5 KB
- references/install.md 4.2 KB
- references/node-compat-platforms.md 2.5 KB
- references/performance.md 2.1 KB
- references/runtime-apis.md 7.5 KB
- references/security.md 3.2 KB
- references/test.md 4.2 KB
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.
- 4d ago First seen · 45 lines · 159 tokens per session scan A c62d01920c6a
bun-1-4 is a skill published in the GitHub repository code-yeongyu/senpi (420 stars, last pushed today), licensed MIT. It adds 159 tokens to every session and 1,447 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
biopython
Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use…
transformers
This skill should be used when working with pre-trained transformer models for natural language processing, computer vision, audio, or multimodal tasks. Use for text generation, classification, question answering, translation, summarization, image classification, object detection, speech recognition, and fine-tuning…
generate-image
Generate or edit images using AI models (FLUX, Gemini). Use for general-purpose image generation including photos, illustrations, artwork, visual assets, concept art, and any image that isn't a technical diagram or schematic. For flowcharts, circuits, pathways, and technical diagrams, use the scientific-schematics…
pi
Use when needing a minimal, extensible terminal AI coding agent harness in TypeScript with plugin architecture. Pi: minimalist terminal AI coding agent emphasizing simplicity and composability.
pypi-release
This skill should be used when releasing tunacode-cli to PyPI. It keeps the existing local release checks, then hands the actual PyPI upload to a GitHub Actions workflow that uses the repository's PYPIAPITOKEN secret.
segment-anything-model
Foundation model for image segmentation with zero-shot transfer. Use when you need to segment any object in images using points, boxes, or masks as prompts, or automatically generate all object masks in an image.