📈 GH Trending Explorer 🎲 Surprise me

← all repos

codejunkie99 / keel

git clone https://github.com/codejunkie99/keel.git

Local-first macOS coding workspace with local Laya and optional Jev decision selection

+1
stars, 24h · #9,322
+~7
stars, 7 days · #9,970
+335
stars, 30 days · #1,548
337
★ total · +2% this week
45
forks · 3 open issues

Star history (as recorded here)

2026-10-20 · 334 ★ 2026-10-22 · 337 ★
LanguageRust
LicenseMIT
Created2026-09-22 (29d ago)
Last push26d ago
Watchers0
OwnerUser

Links

README excerpt
A local-first macOS coding workspace. Keel runs the coding agents you already use. 
 A local Laya selector or an optional hosted Jev selector chooses a route. The host checks each choice before Keel applies it.
 Getting started ·
 Build from source ·
 Architecture ·
 Roadmap ·
 All documentation 
---
Keel 0.2.0 puts the editor workspace, provider connections, task routing, and decision records into one Rust/GPUI app. It uses an Avid-derived interface.
## features
**Workspace**
- Sessions, a composer, a transcript, a terminal, a changes view, and settings in one native window.
- **Agent graph (new).** Press ⇧⌘G to see each active session as an agent node, its subagents as child nodes, and the files it reads or writes as shared context nodes. Select a node to steer or stop its agent. Double-click an agent to open its session.
- Image attachments and macOS Dictation in the composer.
- A git history pane with a commit lane graph beside the changes view.
- Crash recovery: an append-only run journal replays live streams and marks interrupted runs.
**Coding agents**
- Claude Code, Codex, Cursor, Grok, Hermes, and pi through the Agent Client Protocol (ACP).
- An embedded DeepSeek agent loop that runs in process, with host-enforced tool focus.
- Each provider keeps its own authentication, model configuration, and tool loop.
- Subagent spawns show as `Task` calls, including Grok's `spawn_subagent`.
- Installed Codex Computer Use MCP tools reach compatible ACP sessions.
**Decisions**
- Laya (local, Core ML) or Jev (hosted, opt-in) chooses an eligible route for a **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: candidates, result, validation, fallback, and observed outcome.
- **Decision export (new).** `keel decisions export` writes one replay case per receipt as JSONL.
- **Decision report (new).** `keel decisions report` prints counts by backend, stage, and validation, plus fallback and confidence figures.
**Operations**
- `keel headless` runs the engine without a UI. `keel daemon install` runs it as a background service.
- `keel status` and `keel laya status` show the workspace, the saved mode, and the model state.
- One engine owns one data directory. A second engine stops with a clear error.
Pinned routes and live or resumed sessions keep their existing route. External ACP agents keep their own internal tool loops.
## choose a decision mode
| Mode | Runs where | Requires | What happens |
| --- | --- | --- | --- |
| Laya — default | Locally through Core ML | Worker and pinned checkpoint | Selects from host-prepared candidates, or abstains. |
| Jev — opt-in | Hosted by TypeSafe | Existing protected local credential | Sends a bounded decision request directly to TypeSafe. |
| Normal | No selector call | Your coding provider setup | Uses the ordinary harness route. |
Exactly one backend runs per decision.