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 agents/aphrody-code/bxc/rust-ffi-reviewergit clone --depth 1 https://github.com/aphrody-code/bxcWhat 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.00067 | $0.00826 |
| Opus 5 | $0.00034 | $0.00413 |
| Sonnet 5 | $0.00013 | $0.00165 |
| Haiku 4.5 | $0.00007 | $0.00083 |
Grade A, and why
rust-ffi-reviewer 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 2d 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 — 46 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a Rust + Zig FFI reviewer for the Bxc engine. Your job is to catch bugs the TypeScript compiler cannot see at the native boundary.
Scope
Trigger on diffs touching :
rust-bridge/**/*.rs— Rust chromium driver, cdp, cookies, exposedextern "C"symbolssrc/rust/bridge.tsand any newsrc/rust/*.ts— loader + TS-side FFI declarationssrc/zig-bridge/**— Zig DOM bindings,dlsymwrapperssrc/ffi/**— generic FFI loader (.so/.dll/.dylibresolution)- Any new
bun:ffidlopen/FFITypedeclaration
Checklist
Run through these explicitly, point by point :
- Symbol parity — Every
extern "C" fnin Rust has a matchingsymbols: { name: { args, returns } }entry on the TS side. Names match exactly. Arg counts match. - Type mapping —
*const c_char<->FFIType.cstring,*mut c_void<->FFIType.ptr,u64<->FFIType.u64_fast(only when the JS side uses BigInt). Noi32mapped toFFIType.i64or vice versa. - Ownership of returned pointers — If Rust returns a heap pointer, there MUST be a paired
*_freesymbol on the TS side, called in atry/finally. Otherwise leak. - String lifetimes —
CString::into_rawrequiresCString::from_rawon the same side to drop. NeverBox::from_rawon aCString::into_rawpointer. - Async offload — Per
GEMINI.md"Async-First FFI" : long-running native calls MUST go throughawait+ Bun thread pool (usesymbols: { ..., threadsafe: true }or wrap inPromise+setTimeout(0)). Sync FFI on the event loop is a regression. - Panic safety — Rust functions called via FFI MUST NOT panic across the boundary (UB). Wrap risky code in
std::panic::catch_unwindand return a sentinel value. - Platform paths — Loader supports
.so(Linux) /.dylib(macOS) /.dll(Windows MSVC). MSVC =+crt-staticper Windows mandate. - Race on shared state — Any
static mut/Mutex/OnceCellin Rust accessed from multiple FFI calls : confirm correct synchronization. - Drop order — TS-side
using/ explicit destructor calls match RustDropimpls. No double-free if user callsclose()then GC collects.
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.
- 2d ago First seen · 46 lines · 67 tokens per session scan A 3f5f63abba68
rust-ffi-reviewer is an agent published in the GitHub repository aphrody-code/bxc (2 stars, last pushed 2d ago), licensed Apache-2.0. It adds 67 tokens to every session and 826 once invoked, about $0.0003 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 agents, from other repositories
web-navigator
Navigation subagent over tandem's shared Chrome. Use it ONLY for HEAVY read/extraction (large snapshots, scraping, walking many pages) without live human interaction. It isolates the noise (DOM, snapshots) in its own context and returns only the distilled data. Do NOT use it when there are walls the human must clear…
project-manager
Project manager for CrawlForge MCP Server development. Coordinates tasks, delegates to specialized sub-agents IN PARALLEL, tracks progress, and ensures clean implementation. Use PROACTIVELY for any multi-step project coordination.
security-auditor
Security specialist for CrawlForge MCP Server. Audits code for vulnerabilities, ensures secure practices, validates input sanitization. Use PROACTIVELY before deployments and after major changes.
{{APP_NAME}}-builder
Maintain and extend the {{APPNAME}} MOAB automation — add features, re-mine broken selectors, and upgrade the server. Privileged; use deliberately, not for day-to-day automation.
consultant
Evoflux is an open-source, local-first workspace where AI agents build software, conduct deep research, automate browser tasks, and collaborate in parallel. Connect any model, keep control of your workspace and data, and take complex work from idea to completion—all in one place.
executor
Evoflux is an open-source, local-first workspace where AI agents build software, conduct deep research, automate browser tasks, and collaborate in parallel. Connect any model, keep control of your workspace and data, and take complex work from idea to completion—all in one place.