Skip to content

whatl3y/frites

Repository files navigation

french fries, nothing better, full stop

frites

frites AI: a coordinating ensemble proxy for Claude Code & Codex.

Point your Claude Code / Codex at frites and every prompt is answered by a council of agents instead of one: frites fans the prompt out to multiple models, has them work independently, then synthesizes a single vetted answer, using the subscriptions you're already logged into (no API keys). It decides per-prompt whether fanning out is even worth the spend. The bet is that a cross-checked council yields better output than any single agent; the cost is latency and metered spend (see the tradeoff).

Two ways to use it:

  • Gateway mode (transparent proxy), zero friction: run it once and every prompt goes through the council. Handles Q&A, reasoning, and code edits (it emits the tool calls your host runs). ← start here
  • MCP worktree mode: for when you want N competing full implementations run in isolated git worktrees, with your test suite picking the winner → one vetted diff to apply.

📖 Full documentation: docs/ · table of contents


Install

Prereqs: claude and/or codex installed + logged in; Node >= 22; macOS or a major Linux distribution with systemd user services.

npm install -g @frites/cli
frites install

That starts the transparent-proxy gateway on http://127.0.0.1:6767 as an always-on background service (launchd on macOS, systemd --user on Linux). It auto-starts on login, restarts on crash, and idle costs nothing. Full walkthrough: Installation.

Point your host at the gateway, then open a new session:

Claude Code: add to ~/.claude/settings.json:

{ "env": { "ANTHROPIC_BASE_URL": "http://127.0.0.1:6767", "ANTHROPIC_AUTH_TOKEN": "frites" } }

Codex: add to ~/.codex/config.toml, then export FRITES_KEY=frites:

model_provider = "frites"
[model_providers.frites]
base_url = "http://127.0.0.1:6767/v1"
wire_api = "responses"
env_key = "FRITES_KEY"

See Configure Claude Code and Configure Codex for details.

Common commands

frites install             # install/start the gateway service
frites status              # installed? loaded? reachable?
frites logs -f             # follow gateway logs live
frites restart             # restart after config changes or upgrades
frites stop                # remove the background service
frites "implement X" --repo /path/to/repo --n 2 --agents claude,codex --apply

Full command + flag reference: CLI. Configuration keys: Configuration.

Status

126/126 unit tests passing; the gateway (both surfaces, SSE streaming, fan-out + synthesis, cost telemetry), the launchd/systemd service, and the MCP worktree path are working and verified against a real claude client. Remaining: the fan-out quality value-gate and Codex tool-call emission on /v1/responses. Details: Current status. First value-gate data is in Benchmarks (solo vs. fusion on Aider polyglot — on the gateway answer path, fusion shows no reliable quality lift yet).

Learn more

Development

Contributions welcome — see CONTRIBUTING.md for the full guide. frites is a pnpm monorepo (apps/* + packages/*) targeting Node >= 22, with pnpm pinned via the root packageManager field.

pnpm install        # install workspace deps
pnpm build          # compile all packages (core → agents → isolation → gateway → cli)
pnpm test           # run the unit suite (vitest)
pnpm typecheck      # type-check without emitting
pnpm frites ...     # run the CLI from source via tsx (no build needed)

Deeper guides live in docs/development/:

Releasing

The @frites/* packages are published to npm together (fixed / lockstep versioning) using Changesets. In the PR that makes a user-facing change:

pnpm changeset      # pick the bump (patch / minor / major) + write a summary, then commit it

On merge to main, CI opens a "Version Packages" PR; merging that PR builds and publishes every package to npm in dependency order. To publish by hand from a clean checkout, run pnpm version:packages then pnpm release (pnpm release:dry previews exactly what would ship). The full flow — how packages are packed and published, and the npm authentication it needs (OIDC in CI, or an OTP locally) — is in Release & packaging.

License

frites is licensed under the Apache License 2.0.

Unless required by applicable law or agreed to in writing, frites is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

About

Subscription supporting coordinating ensemble proxy for AI agents to result in better outcomes.

Resources

License

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors