Skip to content
OyadotAIPublic

About

A full software factory with the team ready to go: pm, designer, principal, reviewer, security, reliability and qa on every request, in a desktop app over your own Claude Code or Codex.

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Keel

A full software factory, with the team ready to go.

Open a repository and you have a PM, a designer, a principal engineer, a reviewer, security, reliability and QA.
Every request runs through them, on your own Claude Code or Codex, and you review one result.
Desktop app for macOS and Windows. Parallel lanes on their own branches. Your checks after every turn.

macOS and Windows Source-available license Sponsored by OyaBrowser.com Download Keel for macOS Download Keel for Windows

Free. Open source. Always.
Used daily by engineers at Oya.ai and Jumpermedia.co.

Sponsored by OyaBrowser.com.

Download for macOS · Download for Windows · Watch the demo · Why switch · Get started · Roadmap · Share kit

Keel's workspace: a project with three lanes in the sidebar, a lane on its own branch with its finished turn, and the Turns panel showing it passed with its changed files and cost.


A coding agent is one engineer. Shipping takes a team.

Claude Code writes excellent code. But one agent in a terminal is one engineer with nobody around them:

  • Nobody asks whether it's worth building, or what the smallest version is.
  • Nobody designs it first, so the plan is whatever the agent typed first.
  • Nobody reviews it. The agent grades its own work and says the tests passed.
  • Nobody tries to break it before you do.
  • And you can't see any of it: the changes are buried in scrollback, two agents at once wreck one working tree, and approvals roll past.

Keel is the whole factory, staffed. Every project comes with seven agents and the lifecycle that runs them: pm decides build, change, cut or not yet; designer owns what people see; principal designs the change; the main agent builds it; reviewer, security and reliability read the diff; qa runs the real thing. Nothing to hire, configure or prompt. Open a repository, add the team in one click, and ask for a feature.

And the factory floor is built in. Each request is a lane on its own branch and worktree. Every turn becomes one reviewable record: the files, the commands with their output, your project's real gate, the duration and the cost. Commands that need permission stop and ask in the conversation.

Your existing Claude sessions come with you. Running one in your terminal right now? Follow it live in Keel.


Why engineers switch from CLI & VS Code

Experience Raw CLI / VS Code Extension Keel
The team One agent that plans, builds and grades its own work Seven agents, ready to go: pm, designer, principal, reviewer, security, reliability and qa on every request
Reviewing code git diff after the turn, scrolling through terminal logs Live stacked diffs with syntax highlighting as files are written
Multi-agent concurrency One shared branch; simultaneous tasks collide and clobber files Isolated Git worktrees (.keel/worktrees/) on dedicated task branches
Background jobs Dev servers (pnpm dev) killed on turn exit Monitors: daemon supervises background jobs with streaming logs & Stop button
Command approvals Prompts lost in scrollback; all-or-nothing permission flags Inline approval cards: Allow Once, Allow Session, or 1-click Trust this project
Verification Trusting the agent's prose or running checks by hand Automatic gates: Keel runs your real make check, cargo test, or pnpm test
Existing history Locked inside terminal history; no unified view Replay & Follow: browse past sessions and watch external runs in real time
UI verification Guessing files, accidental component duplication Preview & change check: pick elements, send them to the agent, and see whether they actually changed
Speed & ergonomics One terminal pane per agent, one project per window Light desktop shell: Tauri + React over a local Rust daemon. No Electron, no bundled Chromium

See it in action

Watch three tasks progress concurrently across isolated Git branches, with live diffs and gate verification:

A real run, sped up: prompts sent to three lanes on their own branches, approvals answered, and each turn passing its make check.


Inside the factory

1. A team that's ready on day one

An agent alone writes code. A team decides what's worth building, designs it, reviews it, and tries to break it. Keel ships seven subagents and the lifecycle that runs them, written into .claude/agents/ and CLAUDE.md, so they work in Claude Code anywhere and not just in Keel:

Stage Agent Returns
1 pm Build, change, cut, or not yet, plus the smallest version worth shipping
2 designer States, layout, and copy for anything a person will see
3 principal The technical design: modules touched, invariants at risk, tests that pin it
4 implementation The main agent writes it, in view, until the gate is green
5 reviewer, security, reliability Only what is actually wrong with the diff
6 qa Runs the real thing and reports what broke, with steps to reproduce it

One request run by the team: pm chose build, principal designed it, the gate passed, reviewer found a real bug and it was fixed, security found nothing, and qa is running.

That screenshot is a real run on one request, "add discount codes". The pm chose build and skipped the designer because nothing visible changed. The principal designed it, and the gate passed with 11 tests. The reviewer then found a real bug the main agent had missed: a non-string code made the error itself throw. It was fixed and the gate re-run before qa tried to break it. QA came back with three open edge cases and one decision for the person.

New projects start with the team. For an existing repository, Add the team in Readiness writes it in, and never over a file you already have.

2. The turn is the reviewable artifact

An agent reporting "done" is an assertion. Keel collects every file written, every command with its raw output, the repository's real gate verdict, commit hash, duration, tokens, and cost into one inspectable packet.

A real turn: the agent edits a test, asks to run make check, and the turn passes with its changed files, time and cost.

  • Parallel work, separate branches. Every task lane can spin up its own Git worktree under .keel/worktrees/<lane> on branch keel/<lane>. Keep several projects open in one window, each with its own lanes.
  • Checks you recognize. Keel detects your project's gate (make check, cargo test, npm test, pytest) and runs it after every turn. No invented green checkmarks.
  • Rewind with safe undo. Restore a pre-turn snapshot without blowing away your staged changes. Conflicting ignored files halt the operation safely.

3. Approve commands in the flow

When the agent needs permission to run a command, it stops right above your composer with the exact command line and intent.

The agent pauses to run make check. Keel shows Allow once, Allow for this session, and Deny, and the turn continues once allowed.

  • Allow once runs the single invocation and remembers nothing.

  • Session & project rules grant scoped patterns under More options.

  • Trust this project eliminates repetitive permission tolls for repos you own. Visible in the status bar, withdrawable anytime.

  • Chat or terminal, per lane. Read a lane as formatted chat, or switch it to the agent's own interactive CLI. Lanes run claude or codex.

4. Your old sessions. Your live agents. One workspace.

You don't have to start a session in Keel to see it in Keel.

  • Zero-migration history. Browse and replay past Claude Code conversations directly from ~/.claude/projects/—no import scripts or cloud accounts needed.
  • Follow work in real time. Launch claude in your terminal, VS Code, or Orca. Keel's watcher picks up the active transcript and streams messages, tool calls, and diffs live.
  • Deep write recovery. Recovers files written not just by Edit/Write, but by subagents (Task) and shell commands (cat >>, python heredocs), flagging edits outside the repo.

5. Background jobs that don't die

In the Claude Code CLI, background processes (run_in_background) get terminated the moment the turn completes. Keel's daemon takes them over:

  • Monitors panel: Long-running processes like pnpm dev or gh run watch run supervised outside turn lifetimes.
  • Live streaming output: Inspect stdout/stderr in real time and stop jobs with a single click.
  • Automatic completion turn: When a background job finishes, its status arrives back into your conversation as a clean turn report.

6. Visual design turns & change verification

Building frontends with agents often results in edited-the-wrong-file or duplicated-component bugs:

  • Point-and-click inspection: Pick elements in the Preview tab, pin a note to each, and send them to the agent as one prompt with unique selectors and ranked source candidates.
  • Change verification: Each pinned element's markup, computed style, and size are fingerprinted before and after the turn. If nothing changed, Keel says the edit probably went to the wrong file.

7. Built for keyboard speed

Never take your hands off the keyboard. Press ⌘K to search actions, files, and conversations, and ⌘/ to see every shortcut. On Windows, ⌘ is Ctrl.

The command palette: go to a lane, start a lane on its own branch, merge, discard or rename, each with its shortcut.

Shortcut Action Shortcut Action
⌘K Command palette ⌘L Focus composer
⌘N New lane ⌘⇧N New lane on its own branch
⌘1–⌘9 Go to lane 1–9 ⌥↓ / ⌥↑ Next / previous lane
⌘⇧M Merge lane ⌘W Close lane
⌘⇧A Allow oldest request once ⌘⇧S Allow it for this session
⌘⇧D Deny oldest request 1–9 Pick a question's option
⌘J Toggle the shell ⌘⌥I Toggle side panel
⌘⇧E Toggle sidebar ⌘O Open project
⌘, Settings ⌘/ All shortcuts

Why I built Keel

I loved Claude Code's agent. Making it work well for a team was the frustrating part.

  • Everyone had a different setup. Getting the same skills, plugins, hooks, and tools onto every teammate's machine meant chasing missing pieces instead of building the product.
  • I couldn't see the work clearly. What were my agents doing? Which files did this session modify? I wanted that answer in the workspace, not buried in terminal output.
  • I wanted shared workflows, not a subscription migration. I wanted teammates to keep their individual Claude subscriptions, including Max, while working from the same playbook.

That's the reason for Keel: an opinionated environment around Claude for people who build products. Make setup visible. Keep decisions close to the conversation. Make the agent's work inspectable.

— Mohamed Alkiswani, Creator of Keel


Get started in 60 seconds

  1. Download Keel for macOS or Windows, or build from source below. It updates itself after that.
  2. Connect Claude. Already signed in? Keel detects your setup instantly. Otherwise, Install Claude Code and Log in from Settings (⌘,), via Anthropic's official installer and browser flow.
  3. Open any repository. Readiness offers Add the team, then start a lane, inspect past sessions, or follow an active terminal agent.

Readiness on a new project: the agent team is incomplete, with an Add the team button, followed by findings the agent can fix.

Requires macOS 13+ or Windows, and an account with Claude Code access.
No Node.js or Homebrew required to install Claude Code. Keel uses Anthropic's official native installer and CLI browser-login flow. No separate Keel account or proxy.


Local & Private by Design

  • Local by default. The desktop app starts one daemon per open project and connects to its Rust daemon over 127.0.0.1. Optional paired-device access can expose the daemon over LAN or Tailscale; keep loopback mode unless you need it.
  • Your credentials stay yours. Keel uses your existing Claude authentication. Prompts and code go directly to Anthropic per your account terms—never to third-party intermediate proxies.
  • Deterministic locks: File system and checkout locks prevent multiple agents from clobbering your Git state.
  • No reporting yet. The desktop app sends no crash reports or usage events. See Privacy.
  • Trust stays on your machine. Project trust and approved commands are saved outside the repository. Cloned permission files are ignored; build and installer commands are suggestions until you approve them.
  • Learn more in the Guardrails & Limits Guide.

Build from Source

Keel is a Tauri 2 desktop app (React page, desktop/) over a Rust daemon (crates/keel), one daemon per open project. You need Rust, Node.js and pnpm.

# Clone repository
git clone https://github.com/OyadotAI/keel.git && cd keel

# Run the complete test gate (cargo test + desktop type-check, tests, bundle budget)
make check

# Run the app against a daemon built from this tree
make dev

The Rust daemon can also run on its own:

cargo run -- serve .

Repository Layout

Subsystem Location Role
App desktop/ Tauri shell, React UI (lanes, chat, diffs, approvals, preview), xterm.js terminal
Daemon crates/keel HTTP daemon, agent supervisor, Git worktree engine, monitors
Scanner crates/keel-scanner Repository readiness checks (keel scan)
Workspace crates/keel-workspace Reads Claude Code sessions, skills, plugins, and hooks
Harness crates/keel-harness Claude process supervision and untrusted config quarantine
Providers crates/keel-providers Cloudflare and GitHub integrations
Generator crates/keel-generator Production stack templates and golden-path scaffolds
MCP crates/keel-mcp Tool surface and Model Context Protocol catalog

Roadmap

  • Interactive Designer View — Live preview window showing agent UI updates in real time, with visual drag-and-drop manipulation and direct UI editing that translates changes back into structured agent instructions.
  • Codex Support — Lanes can run OpenAI Codex alongside Claude Code.
  • Windows Support — Signed Windows installer with automatic updates.
  • Linux Support — Linux desktop and environment support for engineers running Linux workstations.
  • OpenCode Support — Full compatibility and runtime integration with OpenCode.

Contributing

Keel is free and open source, and will always be free to use. Contributions of all kinds are welcome!


Maintainer and Sponsor

Keel is created and maintained by Mohamed Alkiswani (mk@getoya.ai) and sponsored by OyaBrowser.com.

License

Source available, free for solo developers: 200 agent steps a day, with an anonymous daily usage report. Teams, companies and commercial use need a license — email sales@getoya.ai. What Keel generates in your project is yours. See LICENSE.md.

About

A full software factory with the team ready to go: pm, designer, principal, reviewer, security, reliability and qa on every request, in a desktop app over your own Claude Code or Codex.

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages