Skip to main content
Ikenga 3 engines Download

Engine pkgs · claude-code v0.2.1 · Apache-2.0

Claude Code, wired in

Claude Code is the default engine, fully wired. Gemini CLI and Codex CLI are pluggable adapters — install either alongside it, swap with a click.

An engine is the AI backend that drives your workspace. Ikenga leads with Claude Code: it wraps the claude CLI you already have, parses its streaming output, and wires it into the shell's session layer — persistence, resume, and the cockpit's config surface all work out of the box. Gemini CLI and Codex CLI follow the same manifest-and-adapter pattern. One workspace, your choice of backend.

The problem it removes

Most setups are engine-specific by accident. Your Claude Code skills are in ~/.claude/skills/. Your Gemini config is somewhere else. Your Codex prompts are somewhere else again. When you want to compare two backends on the same task, you're reconfiguring from scratch. When Claude releases a new model, you update one place; when you try Gemini, you rebuild.

Ikenga's engine layer removes that accident. Each engine is a manifest-declared pkg. Your skills, commands, and MCP servers install once and are available to all of them. Swapping backends for a thread is a two-click popover, not a config migration.

Claude Code is the default, fully wired

Claude Code (com.ikenga.engine-claude-code) ships as the built-in engine pkg — your Chi, the reasoning layer at the heart of every thread. It spawns your local claude binary, parses its stream-json output through a Rust translator, and produces normalized SessionUpdate envelopes on the shell's session wire. Every shell feature — session persistence, resume (claude --resume <id>), the cockpit's skills/commands/MCP manager, thinking, tool use, MCP — is exercised through this path.

No separate account required. Auth is claude login or ANTHROPIC_API_KEY — whichever you already use in the terminal.

Capabilities — Claude Code adapter

Capability Supported
Streaming
Tool use
Thinking
Artifacts
File attachments
Image input
Slash commands
Model switching
Prompt caching
Agentic tools
MCP
Session resume

Gemini and Codex as pluggable adapters

Gemini CLI (com.ikenga.engine-gemini) and Codex CLI (com.ikenga.engine-codex) follow the same manifest-and-adapter pattern. Both are separately installable engine pkgs — add them from the shell's package manager or directly via the ikenga CLI. Install one or both alongside Claude Code; remove either without touching anything else.

The Gemini adapter uses an ACP passthrough: it spawns gemini and proxies its JSON-RPC 2.0 NDJSON protocol bidirectionally. The Codex adapter uses a custom stream adapter: it parses codex exec --json output into the shell's normalized envelopes. Either way the frontend sees the same wire — one session shape, one chat UI, regardless of which engine is active.

Each adapter's manifest declares an onboarding block: which vault keys it needs (GEMINI_API_KEY, OPENAI_API_KEY), the auth command to copy, and a docs link. The first-run wizard surfaces this before you can start a thread, so auth never breaks silently.

Per-turn engine and model switching

A chat thread is created with one engine and stays pinned to it — sessions resume against the same backend they were started on. But within a thread, the composer lets you swap the engine and model per turn: a single send can route to a different backend without changing the thread. The picker is a two-level Engine → Model popover, always visible in the composer.

This is useful for comparison: start a thread with Claude Code, send the same prompt to Gemini in the next turn, see both responses in the same history. No context copy-paste, no tab-switching.

Engines are pkgs — the architecture is open

Every engine adapter is a standard Ikenga pkg. It declares a kind: "engine" manifest, a capability matrix the UI reads to enable or disable features per backend, and the onboarding metadata for the auth wizard. Installing or removing an engine is the same operation as installing or removing any other pkg.

Adding a brand-new engine today requires both a manifest pkg in ikenga-pkgs and a Rust adapter in the shell — it is not yet a pure drop-in. The Engine interface in @ikenga/contract is the direction of travel; treat it as forward-looking until the purely-pkg-side adapter path lands.

Available engines

Each engine requires its CLI binary on your $PATH. The shell resolves the binary path from a configurable setting (claude_binary, gemini_binary, codex_binary) so non-default install locations work.

Engine Pkg id Auth Default model
Claude Code com.ikenga.engine-claude-code claude login / ANTHROPIC_API_KEY claude-sonnet-4-6
Gemini CLI com.ikenga.engine-gemini gemini auth / GEMINI_API_KEY gemini-2.0-flash
Codex CLI com.ikenga.engine-codex codex login / OPENAI_API_KEY o4-mini

Install

Claude Code is the built-in engine — it is active as soon as you install the Ikenga shell. No extra step.

To add Gemini CLI or Codex CLI:

ikenga add @ikenga/pkg-engine-gemini

Requires the Ikenga shell and the gemini CLI on your $PATH. Get the shell →

ikenga add @ikenga/pkg-engine-codex

Requires the Ikenga shell and the codex CLI on your $PATH.

Apache-2.0. Read it.