Installation and prerequisites
Install the CLI and the tools it orchestrates.
Install the CLI
For standalone routing without the ensemble runtime, install RouteKit:
npm install -g @velum-labs/routekit
routekit config init
routekit doctorThis provides routekit and requires neither the FusionKit package nor its
Python executable. RouteKit uses explicitly configured providers and does not
download or start local models. Its singleton daemon owns
~/.config/routekit/router.yaml; routekit config init creates that canonical
document.
For model ensembles, install FusionKit:
npm install -g @fusionkit/cliPrefer not to install globally? Use npx @fusionkit/cli <command> for the same
CLI surface, for example npx @fusionkit/cli doctor.
This provides the fusionkit command. Pre-provision the Python fusion engine once
so the first real run does not wait on a uvx cold start:
fusionkit setupsetup is optional but recommended for the first machine setup. Without it,
FusionKit provisions the Python engine automatically on the first real run.
Prerequisites
fusionkit orchestrates other tools, so a few things must be available. Run
fusionkit doctor at any time for a live checklist with fix hints.
uv / uvx (required)
The synthesizer ships as the fusionkit distribution on PyPI and is run via
uvx. Installing uv
gives you uvx; no manual Python setup is needed.
A coding agent (required)
At least one of:
codex: OpenAI Codex CLI. See Codex.claude: Claude Code. See Claude Code.cursor-agent: Cursor CLI. Cursorkit ships bundled with the npm package, so no separate checkout is needed. See Cursor.opencode: OpenCode CLI through the generic driver.
You only need the agent you plan to launch. For example, fusionkit codex does
not require Claude Code or Cursor to be installed.
RouteKit providers and credentials
For FusionKit's embedded router, run fusionkit init, then edit the generated
.routekit/router.yaml to enable providers. This project file is an explicit
Fusion/SDK input, not an implicit scope for the standalone RouteKit daemon.
To use it with the singleton daemon, replace the canonical document explicitly:
routekit config import --from .routekit/router.yamlAPI providers read the registry-defined environment variable:
export OPENAI_API_KEY=...The first-launch subscription providers are claude-code and codex. Enroll
one with routekit accounts login claude-code --name <label> or routekit accounts login codex --name <label>, or use accounts add to import that
official CLI's current login. FusionKit v4 stores only live namespaced RouteKit
model IDs and never reads provider credentials. This repository's committed
router uses OPENROUTER_API_KEY. fusionkit doctor reports missing model IDs;
routekit doctor owns provider credential checks.
Before enabling a provider or subscription, review its credential, billing, egress, failover, and limitation disclosure. OpenRouter is an aggregator, while the direct API and native subscription routes have different credential and billing boundaries.
A git repository (required)
The panel fuses over the code in your current repo. Run fusionkit from inside
your project, or pass --repo <dir>.
Verify
fusionkit doctor
fusionkit setup # warms the Python engine
fusionkit --version # prints the npm CLI and pinned PyPI synthesizer versionsAfter doctor passes, run the first session from inside a git repository:
cd your-git-repo
fusionkit codex # or: fusionkit claude | fusionkit cursor | fusionkit serveOptional: stable named URLs with portless
Every service the stack starts, including the panel servers, the gateway your
agent connects to, and the observability dashboard, can be registered with
portless so it is reachable at a
stable HTTPS name (for example https://gateway.fusion.localhost) instead of a
raw port, and reused across runs.
npm install -g portless # needs Node >=24
portless service install # run the HTTPS proxy at OS startup
portless trust # add the local CA to your system trust storeWhen portless is not installed, the stack transparently falls back to loopback
ports. Pass --no-portless (or set PORTLESS=0) to force ports for a single
run, for example in CI.