fak — useful local agents, accelerated automatically
Fak is building the open runtime that makes useful local agents practical on your own machine.
Start locally, give an agent real work, and keep useful context across turns. Our first breakthrough milestone combines native inference, speculative decoding, and agentic caching into an experience whose qualified acceleration is automatic. The capability floor bounds what tools the agent may execute.
Status: this is the product milestone we are working toward. Today, automatic setup and cache reuse have specific model/backend limits; speculative decoding and physical GPU Direct paths are not universally enabled or qualified. See the local-agent milestone for the current wiring, the meaning of automatic, and the evidence required to earn the claim.
Try fak
Install with curl -fsSL https://raw.githubusercontent.com/anthony-chaudhary/fak/main/install.sh | sh (or go install github.com/anthony-chaudhary/fak/cmd/fak@latest).
Try the local workflow on a supported Apple Silicon configuration:
-
Start local inference (
fak up): Probes unified memory withmacfitto choose a model/context budget with headroom. Starts the local OpenAI-compatible endpoint on:8080and opens an interactive chat REPL. Usefak up --mockto inspect the workflow without a model or GPU; mock output is not inference performance evidence.fak up # -> [READY] fak up running on http://127.0.0.1:8080Inspect the selected model/backend and memory budget before interpreting results. Apple Metal selection is automatic when the device and build support it.
-
Run agent work (
fak opencode): In another terminal (or backgroundingfak up --headless), launch OpenCode:fak opencodeGive OpenCode a parallel multi-agent prompt:
"Using parallel subagents, audit the packages under internal/ and report their status"Compatible agents can reuse shared instructions and repository context. Inspect actual cache reuse and task outcomes; a fresh prefix still requires prefill, and reuse depends on model state, backend support, and cache identity.
-
Inspect the subagent benchmark:
fak bench subagent --concurrency=4This does not replace a real coding-task acceptance witness. Check the benchmark's engine, execution regime, and receipt before treating its output as hardware evidence; simulated output does not qualify a physical device.
[!TIP] New to subagents? Follow the Subagents Guide to launch
fak upand run parallel cohorts with shared-prefix cache reuse.
Governance for external agents (fak guard)
Already running Claude Code or Codex? Wrap the agent you already run with one command to add a default-deny capability floor. fak forwards Codex subscription credentials with no API key required and blocks tools outside the allowed policy without breaking the task:
fak guard -- codex
In-kernel policy adjudication checks every tool call in under a microsecond before execution. See the interactive showcase for a guided tour, or run fak agent --offline (# -> task completed) to inspect policy decisions with zero setup.
Latest hardware results — 2026-09-08
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 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 Apple M3 Pro: forward-owned Metal sequence prefill was 43.8% faster, 10,284.5 vs 18,304.9 ms, and used 1 command buffer instead of 192; observed 2026-09-03. | Accepted component-path result with exact greedy continuation and zero fallbacks; it is not a full-run throughput comparison. Qwen result index |
| AMD | Qwen3.6-27B on RX 7600: the pure-fak TG1 microbench measured 1.24 decode tok/s versus 0.99 for the local llama.cpp Vulkan baseline; observed 2026-06-19. | Narrow, older-model microbench. No accepted current Qwen3.8 AMD result exists. AMD receipt |
| NVIDIA | Qwen2.5-3B Q8_0 on a physical Hopper H100: fak reached 111.9 decode tok/s, 17.4% above its f32 path; observed 2026-09-05. | Native CUDA result; llama.cpp Q8_0 was 3.24× as fast at 362.7 tok/s in the same run. H100 receipt |
Read the status column before comparing rates: results compare matched envelopes against explicit baseline runtimes on identical hardware.
Use the benchmark index for hardware history and model-specific results. Use BENCHMARK-AUTHORITY.md for claim boundaries and canonical receipts. For Mac local model setup and head-to-head Apple Silicon Metal measurements, see the Mac local models guide and the three-way Mac benchmark. For agent UI workflows, see the Mac agent UI guide.
Why run coding agents on fak
- Reuse the work behind each turn: Compatible prefix/KV caching avoids rebuilding shared instructions and context. The product target is automatic reuse across turns and compatible agents, with correct invalidation and isolation.
- Accelerate generation automatically: Native kernels, memory sizing, quantization, and speculative decoding are parts of one local workflow. The milestone requires qualified defaults; current MTP decoding requires explicit selection. See the implementation snapshot.
- Real-time multi-agent visibility: Inspect live cross-agent reuse rates, per-subagent token breakdowns, and savings sparklines directly in your terminal overlay (
fak info/fak guard) to see and verify the speedup as subagents execute concurrently. - Keep reusable state close to compute: Device-resident caching and direct GPU storage paths aim to reduce paging and copy overhead on supported hardware. GPU residency and physical NVMe-to-GPU DMA are different claims. The current claim ledger and milestone explain the wiring and qualification limits; a default-valued flag alone proves neither.
- Run on your own hardware: Native backends target Apple Silicon, AMD, and NVIDIA with different support envelopes. New native-performance work prefers Qwen3.8. Choose a supported model/backend and measure the actual local workflow.
- Default-deny capability floor: Protect your workspace from unintended commands, path escapes, or tool poisoning. Every tool call is verified against a capability floor before execution. Drop-in wrappers protect existing agents like Claude Code, Codex, OpenCode, 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 is the automatic local-agent milestone: model serving, agent execution, capability-floor governance, and reusable context through one approachable runtime. Qualification requires a real task and independent acceptance evidence on a supported machine.
- fak serving only: High-performance model inference runtime (
fak serve), disaggregated gateway, KV-cache context acceleration, and native model execution. - fak harness only: Standalone agent governance (
fak guard) with a 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 guard --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 on the runtime.
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 · subagents · Mac local models · 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.