fusionkit
Reference

Package map

What each product workspace package owns and where to start reading.

FusionKit is a pnpm + TypeScript workspace plus a uv + Python workspace. The packages below are the product surface used by the shipped fusionkit journey. Legacy governance packages live under legacy/ and are outside the public user path.

Product TypeScript packages

Source directoryPublished packageResponsibility
packages/routekit-cli@velum-labs/routekitIndependent routekit executable for provider/catalog/account management, gateway serving, and coding-tool launch.
packages/routekit-config@velum-labs/routekit-configRouterConfig discovery, layered loading, validation, atomic writes, and live-model selection/check helpers.
packages/routekit-router@velum-labs/routekit-routerReusable embedded router composition and lifecycle.
packages/fusion-config@fusionkit/configFusion-only v4 schema, namespaced-model ensembles, prompt loading, and atomic writes.
packages/cli@fusionkit/cliFusion-only command line. It composes RouteKit SDKs but never depends on @velum-labs/routekit; release tarballs also contain the staged Scope server.
packages/model-gateway@velum-labs/routekit-gatewayProduct-neutral HTTP gateway, wire dialects, live provider catalogs, namespaced dispatch, and single-call provenance.
packages/accounts@velum-labs/routekit-accountsSupported subscription credentials, multi-account pools, eligibility, and quota-aware relays, plus retained connector internals that are non-contractual RouteKit implementation details.
packages/fusion-gateway@fusionkit/gatewayFusion front-door orchestration, sessions, aggregate cost accounting, trajectories, and managed local-model lifecycle.
packages/ensemble@fusionkit/ensemblePanel orchestration, worktrees, runtime-kernel workflows, judge adapters, and advanced harness tooling.
packages/runtime-utils@velum-labs/routekit-runtimeProcess/environment/URL safety, cleanup, atomic files, ports, and optional portless service lifecycle.
packages/harness-core@velum-labs/routekit-harness-coreDriver/session contracts, events, errors, approvals, status caching, common driver factories, and a ./testing subpath.
packages/tools@velum-labs/routekit-toolsProduct-neutral launcher contracts, capability registry, launch contexts, and disposer lifecycle.
packages/tool-registry@velum-labs/routekit-tool-registryCanonical product-neutral registry consumed by both the RouteKit and FusionKit CLIs.
packages/tool-*@velum-labs/routekit-tool-codex, @velum-labs/routekit-tool-claude, @velum-labs/routekit-tool-cursor, @velum-labs/routekit-tool-opencodeCanonical launcher and driver for each coding tool.
packages/protocol@fusionkit/protocolModel-fusion contracts, schemas, OpenAPI bindings, trace records, and generated SDK bindings.
packages/workspace@fusionkit/workspaceGit capture, worktree materialization, output collection, and divergence-safe pull helpers.
packages/adapter-ai-sdk@fusionkit/adapter-ai-sdkManaged MLX server and AI SDK model adapters used by local-model paths.
packages/kernel@fusionkit/kernelRuntime-kernel graph, scheduling, budget, streaming, and outcome primitives.

Python packages

Source directoryPublished packageResponsibility
python/fusionkit-clifusionkitInternal PyPI runtime that installs only fusionkit-sidecar; the Node package owns the user-facing fusionkit executable.
python/fusionkit-corefusionkit-coreProvider-neutral fusion engine, RouteKit client, sidecar config, judge, run manager, artifacts, and metrics.
python/fusionkit-serverfusionkit-serverInternal FastAPI sidecar with health, trajectory-fusion, and native-run routes; it has no public chat/model front door.
python/fusionkit-mlxfusionkit-mlxOptional MLX launcher utilities.
python/fusionkit-evalsfusionkit-evalsSeparately installed fusionkit-bench, public reports, prompt tuning, Pareto analysis, and hill climbing.
python/fusionkit-testkitfusionkit-testkit (unpublished)RouteKit-upstream simulator and sidecar process fixtures.

Legacy archive

The Warrant plane, runner, SDK, handoff SDK, compute adapter, and session backends are preserved under legacy/. They are not part of the normal fusionkit codex / fusionkit serve product path.

Adding a new tool

Each coding tool is its own workspace package implementing a ToolIntegration:

  1. Create packages/tool-<name>/ from an adjacent tool package.
  2. Export a ToolIntegration with a launch(ctx) implementation.
  3. Add it to toolIntegrations in @velum-labs/routekit-tool-registry.

That one canonical entry wires the tool into both CLIs and internal harness composition through a neutral ToolLaunchSpec; consumers do not keep parallel imports or lists. The existing integrations are documented under Tools.