---
version: 0.17.0
date: 2026-06-18
headline: "One-line `fak-dogfood` launcher: run the local-kernel Claude Code dogfood from any directory."
themes: ["dogfood"]
highlights:
  - "New `--install` symlinks a `fak-dogfood` launcher onto PATH."
  - "Run `fak-dogfood --smoke / --probe / interactive` from anywhere."
  - "Launcher resolves its symlink back to the repo — always runs in-tree code."
  - "Cannot damage the default `claude`: child-only env, isolated config dir."
  - "Isolation verified — `~/.claude/settings.json` byte-identical after a run."
---

**TL;DR** — The local-kernel Claude Code dogfood (`fak serve` as a native Anthropic
`/v1/messages` server in front of a local model) is now a single command you can run
from any directory. `--install` drops a `fak-dogfood` launcher on PATH, and the whole
flow is provably isolated from your normal `claude`.

## One-line `fak-dogfood` launcher (#dogfood)

- **What changed** — `dogfood-claude.sh` gained an `--install` mode that symlinks a
  `fak-dogfood` command onto PATH, so the dogfood runs from any working directory.
  - *Why:* the dogfood previously required `./scripts/dogfood-claude.sh`;
    a global one-liner makes "actually use it as a product" frictionless.
  - *How:* `fak/scripts/dogfood-claude.sh` — `--install` picks the first writable of
    `~/.local/bin`, `/opt/homebrew/bin`, `/usr/local/bin` (or `$FAK_DOGFOOD_BINDIR`)
    and `ln -sf`s an absolute target there; idempotent.

- **What changed** — the script now resolves its own symlink back to the repo before
  locating `fak/`, so the launcher always executes the in-tree code (no drift).
  - *How:* a `readlink` loop on `BASH_SOURCE` ahead of `SCRIPT_DIR`/`FAK_DIR`.

- **What changed** — documented and verified that the dogfood cannot damage the
  default `claude`.
  - *Why:* the flow exports `ANTHROPIC_BASE_URL`, `CLAUDE_CONFIG_DIR`, and model-tier
    overrides — those must never leak into a real `claude` session.
  - *How:* every wiring var is exported only into the spawned child `claude`, never
    the parent shell; `CLAUDE_CONFIG_DIR` stays on the isolated `~/.claude-faklocal`
    account; no shell-rc or `settings.json` writes. A probe run left
    `~/.claude/settings.json` byte-identical and the parent shell's
    `ANTHROPIC_BASE_URL` unset.
