Angel Engine is a protocol-neutral engine for driving coding-agent runtimes such as Codex, ACP-based agents, Claude, and related CLIs. The repository combines a Rust core, provider adapters, Node bindings, JS client packages, and an Electron desktop app.
crates/angel-engine/— protocol-neutral engine, state machine, reducers, and shared transport types.crates/angel-provider/—ProtocolAdapterplus adapters for codex, acp, cline, copilot, cursor behind thecursor-historyfeature, gemini, kimi, and qoder.crates/angel-engine-client/— Rust client API over the engine and provider adapters.crates/angel-engine-client-napi/— Node.js N-API binding for the Rust client.crates/angel-profiler/— runtime profiling CLI.crates/test-cli/— test support CLI.desktop/— Electron desktop application.packages/js-client/— TypeScript client/projection utilities.packages/claude-client/— Claude runtime client package.apps/website/— website package.
Vendored submodules live under vendor/agent-client-protocol/,
vendor/openai-codex/, and vendor/claude-agent-sdk-typescript/.
git submodule update --init
corepack enable
pnpm installUse Node 24.x; CI currently pins Node 24.15.0. pnpm install also installs the
Husky pre-commit hook through the root prepare script.
cargo test --workspace --all-targets
pnpm typecheck
pnpm lintExternal agent process smoke tests require installed and authenticated codex
and kimi CLIs, so they are ignored by default. Run them explicitly with:
cargo test -p angel-provider --test process_smoke -- --ignoredFormat Rust and desktop JS/TS:
cargo fmt --all
npm --prefix desktop run format