Keel
Local-first macOS coding workspace that runs your agents and lets a local Laya or hosted Jev selector pick a route the host validates.
Overview
Keel is a native macOS coding workspace built in Rust with GPUI that runs the coding agents you already use, including Claude Code, Codex, Cursor, Grok, Hermes and pi through the Agent Client Protocol, plus an embedded DeepSeek agent loop. It brings sessions, a composer, transcript, terminal, changes view, git history and an agent graph of sessions, subagents and touched files into one window, with crash recovery from an append-only run journal.
For routing, a local Laya selector running on Core ML, or an opt-in hosted Jev selector, chooses an eligible route for each fresh, unpinned task, or abstains. The host validates every choice; a rejected, stale or expired choice falls back to the ordinary route. Each decision leaves a bounded receipt in the transcript with candidates, result, validation, fallback and observed outcome, which can be exported as replay cases or summarised in a report by backend, stage and confidence. Pinned routes and live sessions keep their existing route. It also runs headless or as a daemon.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which eligible route (agent and settings) should handle this fresh task, or abstain? | — |
How it works
- User starts a fresh, unpinned task
- Laya (local) or Jev (hosted) chooses a route or abstains
- Host validates the choice; invalid or stale choices fall back
- Task runs on the chosen agent
- Decision receipt is recorded and can be exported or reported
Strengths
- Local-first with an on-device selector
- Host validation and fallback for every choice
- Exportable decision receipts
- Works with many existing coding agents
Caveats
- macOS only
- Version 0.2.0
- Hosted Jev is opt-in and needs a key
Getting started
See docs/guide.md for getting started or docs/build.md to build from source.At a glance
- Type
- Service
- Status
- beta
- Language
- Rust
- Runtime
- macOS native app (GPUI), headless daemon
- Has code
- yes
Use cases and integrations
How curated lists describe it
Local-first macOS coding workspace with local Laya and optional Jev decision…
wh000wh000/awesome-jev-liveLocal-first macOS workspace around the coding agents you already run: a local Laya selector, or an optional hosted one, proposes the route and the host checks it before Keel applies it.
MrJev/awesome-jev
Frequently asked questions
What does the selector decide?
Which eligible route a fresh, unpinned task should use, or to abstain.
Do I need Jev?
No, a local Laya selector runs on Core ML; Jev is an opt-in hosted alternative.
What if the selector is wrong?
The host validates each choice and falls back to the ordinary route if it is rejected or stale.
Related projects
Local-first, outcome-aware model router for coding harnesses that picks a capability tier per task with Jev and learns from history.
ProjectprototypeRustLarge Claude Code plugin of skills, agents and hooks that can optionally ask Jev to classify a session's work category.
ProjectproductionTypeScriptLocal Laya decision layer for DeepSeek Harness: routes prompts, gates risky tool calls and swaps models, all offline at no token cost.
ProjectbetaClaude Code plugin where a local Decider model on your Mac picks the model and effort level for each subagent task.
PluginbetaPythonCost-, cache- and quota-aware LLM router that classifies each turn with a Jev-class model, prices every route, and checks cheap answers.
ProjectprototypePythonOpen lab on using Jev routing in front of Claude Code correctly: measured bugs and patch, hard fallback, completion gate.
Projectresearch