fak — the fast local runtime for coding agents
fak is an agent runtime: one binary puts a fast, cache-accelerated boundary between your coding agent and every tool call.
In short: run coding agents locally with workflow batching and cache reuse, protected by a default-deny capability floor (blocking unauthorized actions).
Try fak
Run the offline proof with no key, model, or GPU:
go build -o fak ./cmd/fak
./fak agent --offline # -> task completed (booked)
The poisoned result and destructive operation are blocked; safe tasks complete normally.
Or wrap the agent you already run with one command. In this example, fak forwards Codex subscription credentials with no API key required and blocks tools outside the allowed policy. The capability floor stops unsafe calls without breaking the task:
fak guard -- codex
The agent keeps working inside that boundary. See the interactive showcase for the guided tour.
Latest hardware results — 2026-09-04
The front page shows one row per supported hardware family. Latest means the newest committed performance receipt for that platform, not the newest code change. A row can be historical or held when no newer quality-complete measurement exists. The table reports measured throughput, for example 2.3–2.9 decode tok/s on Mac, with claim boundaries beside each result and links to its receipt.
| Platform | Latest witnessed result | Status | Details |
|---|---|---|---|
| Mac | Qwen3.8-27B Q4_K_M on an Apple M3 Pro: 2.3–2.9 decode tok/s and 3.2–8.4 full-prefill tok/s, observed 2026-08-20. | Historical; its review window ended without a comparable replacement, so this is not a current parity claim. | Mac result |
| AMD | Qwen3.6-27B on an RX 7600: the measured pure-fak microbench reached 1.15–1.24 decode tok/s versus 0.99 for the local llama.cpp Vulkan baseline, observed 2026-06-19. | Witnessed in that narrow microbench; not a broad quality or full-model parity claim. Qwen3.8 awaits a comparable AMD receipt. | AMD result |
| NVIDIA | Native Qwen3.8-27B CUDA: the cold arm produced 5/5 exact outputs at 11.8–12.1 decode tok/s; confirmed cache hits produced 0/5 exact at about 0.2 tok/s, captured 2026-08-25. | Hold: failed cache-hit quality excludes this from parity or improvement claims. | NVIDIA result |
Read the status column before comparing rates: the held NVIDIA cache-hit path measured about 0.2 tok/s, but failed exact-output quality.
Use the benchmark index for hardware history and model-specific results. Use BENCHMARK-AUTHORITY.md for claim boundaries and canonical receipts. For newcomer Mac guidance and head-to-head Apple Silicon Metal measurements, see the Mac agent UI guide and the three-way Mac benchmark.
Open-source memory overflow landscape
Most LLM serving engines treat memory overflow as a slow host-memory fallback with multiple CPU bounce copies. fak implements hardware-native, zero-copy peer-to-peer DMA directly between NVMe storage and GPU VRAM:
| Framework | Storage / Offload DMA Path | Host DRAM Copies | Predictive Prefetching | Hybrid Attention + GDN Linear State | Target Workload |
|---|---|---|---|---|---|
| fak (native) | GPU Direct NVMe P2PDMA (BaM architecture) | 0 (strictly zero) | Yes (asynchronous pipeline) | Yes (bit-exact full + linear) | Interactive, real-time agent coding loops |
| vLLM | Host DRAM block swapping (swap_blocks) |
2–3 copies | No (reactive) | No (Transformer KV only) | High-throughput data-center batching |
| DeepSpeed ZeRO | Async CPU aio offload via pinned DRAM buffers |
2 copies | Coarse (layer-level weights) | No (static forward layers only) | Multi-node distributed training / inference |
| FlexGen | 3-tier offload (GPU ↔ CPU ↔ Disk) | 2–3 copies | Zigzag batch schedule | No (attention matrices only) | Extreme high-latency batch throughput |
| TensorRT-LLM | NVIDIA GPUDirect Storage (libcufile.so) |
0 (NVIDIA only) | Yes (NVIDIA GDS) | Partial (Transformer KV) | NVIDIA enterprise data centers only |
| llama.cpp | OS mmap demand paging & CPU fallback |
2 copies (OS cache) | No (kernel readahead) | Basic (CPU fallback layers) | Local desktop CPU/GPU inference |
Why run coding agents on fak
- Workflow batching and cache reuse: Multi-agent coding loops reuse prompt context across turns, achieving 4.1× vs tuned baselines with 86.7% cache hit rates. Instead of re-reading codebases on every turn, fak keeps shared prefixes hot and trims stale context.
- Zero-copy GPU Direct storage overflow: Run models far exceeding physical GPU VRAM without CPU memory thrashing. Built on a BaM-style accelerator storage architecture, fak maps NVMe submission queues directly in GPU VRAM and streams paged KV caches and hybrid linear attention states over peer-to-peer PCIe DMA without host DRAM bounce buffering (
StagingCopyCount == 0). See the GPU Direct overflow specification. - Local execution on your hardware: Run models directly with native inference across Apple Silicon, AMD, and NVIDIA. Cut per-token API bills and keep your code private on your own machine.
- Default-deny capability floor: Protect your workspace from unintended terminal commands or file edits. Every tool call is checked against a default-deny (block everything unless allowed) policy before it runs. Drop-in support wraps existing agents like Claude Code, Codex, Aider, and Cursor with zero rewrites.
Native inference provides direct execution on local silicon, with external engines supported as an explicit reference; see the native inference goal for details.
Default priorities & operating modes
fak is organized around a focused four-tier default priority hierarchy:
- fak all in one (serving and harness + memory — the "one touch" thing): The primary focus — a single-binary "one touch" deployment (
fak up) bundling model serving, agent harness governance, and persistent memory. - fak serving only: High-performance model inference runtime (
fak serve), disaggregated gateway, KV-cache/context MMU acceleration, and native model execution. - fak harness only: Standalone agent harness and governance substrate (
fak guard), default-deny capability floor, and tool adjudication over external models. - other things: Standalone utilities, peripheral tools, benchmarks, and off-spine extensions.
Install and configure
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/anthony-chaudhary/fak/main/install.sh | sh
# Any host with Go 1.26+
go install github.com/anthony-chaudhary/fak/cmd/fak@latest
# Inspect the shipped profiles
fak agent profiles
Tune agent execution with built-in work and output profiles that cut token waste and resist unnecessary dependencies:
fak manage --output-profile caveman:medium --work-profile ponytail:high -- codex \
"Remove the duplicate cache without adding a dependency."
Balanced defaults are ponytail:medium for work discipline and caveman:medium for concise responses. See
work profiles, response profiles, or the
harness guide to build a named agent around the same boundary.
Going deeper
| If you want to… | Start here |
|---|---|
| Check what is shipped, limited, or planned | Status · claims · feature matrix |
| Browse performance evidence | Mac · AMD · NVIDIA · all benchmarks |
| Connect another agent or model | Codex · Claude Code · all integrations |
| Understand the runtime | Architecture · capability map · CLI reference |
| Learn in prerequisite order | Start here · learning path · documentation index |
| Build on fak | Go API · harness contract · contributing |
Apache-2.0 licensed.
No comments yet
Be the first to share your take.