Skip to content
KettuAIPublic

About

A calm desktop workbench for terminal coding agents.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

663 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kettu

Release Downloads CI Platforms Agent Client Protocol License

A calm desktop workbench for terminal coding agents.

Claude Code, Codex CLI and opencode side by side in one window,
with readable threads, clear approvals, git and a terminal beside every session.

Download · Roadmap · Feedback · 简体中文

Kettu showing a Claude Code session that fixed a bug and asks to run the tests, with Codex and opencode sessions in the sidebar

Note

Kettu is a preview. It is built from the first milestone, M0, which is still in acceptance, so expect rough edges and please report them.

What is Kettu

Coding agents like Claude Code, Codex and opencode can now plan a change, edit the code and run the tests on their own. Working with them in a terminal still means walls of scrolling text, approvals that are easy to miss, and sessions scattered across tabs and windows.

Kettu is a desktop home for that work. Every agent you use opens side by side in one window, each session sits under its project, and you can see at a glance which agent is working, which one is waiting for you and which one is done. Answers read like documents instead of logs, what the agent changed is shown as a diff, and a question from an agent comes to you as a card you answer with one key.

It drives the agents you already have, with your own installation, account and settings, so nothing about how they work changes: Kettu only gives them a better place to work in.

Features

  • Every agent, one window — Claude Code, Codex CLI and opencode sessions side by side in the same project. The sidebar shows which are running, which wait for you and which are done, with subagents under their parent; pin the sessions you come back to and archive the ones you are done with.
  • Threads that read well — answers stream as Markdown with highlighted code, edits show as inline diffs, images the agent names show in place, and a run of steps folds into one line. Queue your next message while the agent works, or steer it mid-turn.
  • Approvals at a glance — permission requests are cards you answer with a click or a number key, and a system notification tells you when a session needs you.
  • Attach anything — paste images, attach files and folders, or mention a project file with @, from the first message on.
  • Artifacts — agents publish HTML pages and multi-page canvases through Kettu's built-in artifacts service. Each one keeps its versions, opens in a viewer isolated from the app, and is collected on the Artifacts page and on New session.
  • Each agent's own controls — mode, model and reasoning, slash commands, context usage, when the prompt cache expires and, where the agent reports them, your plan limits.
  • Usage at a glance — tokens across every agent by day, model and project, with each plan's limits, from Kettu's own record and, if you choose, the agents' local logs.
  • Sessions that last — every session is kept with its project, reopens with its full history, survives an agent crash, and can be imported from the agent.
  • Git, files and a terminal — the branch, sync state and changes in the top bar, pull requests with their checks through the GitHub CLI, a files pane to read, preview and edit files, and a terminal for each project.
  • Crafted details — light and dark themes, English and Simplified Chinese, restrained motion that honors reduce motion, and shortcuts for the common actions.

Your agents, your data

  • Bring your own agents. Kettu implements no agent of its own. It drives Claude Code and Codex through their own interfaces and every other agent over the open Agent Client Protocol (ACP), so your models, settings, rules and tools stay exactly as you set them up.
  • Sign in where you always do. Each agent signs in with its own flow, and Kettu never sees your credentials.
  • Local by default. Kettu has no account and no server of its own and collects no telemetry. Your sessions stay on your computer, and each agent talks only to its own provider, as it does in your terminal.

Install

Download the installer for your system from Releases. macOS builds are signed and notarized by Apple; Windows builds are not signed yet, so Windows asks once before the first launch.

  • macOS: open Kettu-<version>-arm64.dmg and drag Kettu to Applications. Kettu needs a Mac with Apple silicon.
  • Windows: run Kettu-<version>-x64-setup.exe, or Kettu-<version>-arm64-setup.exe on Arm. When SmartScreen says it protected your PC, choose More info, then Run anyway.
  • Linux: make Kettu-x86_64.AppImage, or Kettu-arm64.AppImage on Arm, executable with chmod +x, then run it. AppImages need FUSE 2: libfuse2, or libfuse2t64 on Ubuntu 24.04 and later.

New versions download in the background and install when Kettu restarts.

On a server or a development machine without a desktop, on Linux (x64 or Arm, with glibc 2.28 or later) or a Mac with Apple silicon, install Kettu as a daemon instead, which your other devices connect to:

curl -fsSL https://kettu.sh/install | sh

It installs into your home without root and needs no Node.js, checks the download against the release's checksum, links ~/.local/bin/kettu and starts the daemon as a service with the system. kettu pair adds a device, and kettu update moves to a new release. In a container, pass sh -s -- --no-service and run kettu run instead.

Agents

Install at least one of these agents first; Kettu finds it on your system.

Agent How Kettu runs it
Claude Code The Claude Agent SDK @anthropic-ai/claude-agent-sdk, installed on first use
Codex CLI codex app-server, from your installed codex, or from @openai/codex installed on first use
opencode Your installed opencode, as opencode acp
Pi The ACP adapter pi-acp, installed on first use, with your installed pi
fast-agent The ACP package fast-agent-acp, run with uvx from your installed uv
Minion Code The ACP package minion-code, run with uvx from your installed uv
Auggie CLI The ACP package @augmentcode/auggie, installed on first use, with --acp and auto-update off
Codebuddy Code The ACP package @tencent-ai/codebuddy-code, installed on first use, with --acp
DeepAgents The ACP package deepagents-acp, installed on first use
DimCode The ACP package dimcode, installed on first use, with acp
Dirac The ACP package dirac-cli, installed on first use, with --acp
GLM Agent The ACP package glm-acp-agent, installed on first use
Nova The ACP package @compass-ai/nova, installed on first use, with acp
Qoder CLI The ACP package @qoder-ai/qodercli, installed on first use, with --acp
siGit Code The ACP package @smbcloud/sigit, installed on first use
Agoragentic The ACP package agoragentic-mcp, installed on first use, with --acp
Autohand Code The ACP package @autohandai/autohand-acp, installed on first use
Cursor Your installed cursor-agent, or Cursor's archive on first use
Kimi Code CLI Your installed kimi, or its archive on first use
Amp The ACP adapter amp-acp, downloaded on first use
goose Your installed goose, or its archive on first use
Kilo Code Your installed kilo, or its archive on first use
Gemini CLI The ACP package @google/gemini-cli, installed on first use, with --acp
GitHub Copilot The ACP package @github/copilot, installed on first use, with --acp
Qwen Code The ACP package @qwen-code/qwen-code, installed on first use, with --acp
Grok The ACP package @xai-official/grok, installed on first use, with agent stdio
Cline The ACP package cline, installed on first use, with --acp
Factory Droid The ACP package droid, installed on first use, with exec --output-format acp-daemon and self-updates off
OMP (Oh My Pi) Your installed omp, as omp acp
Hermes Agent Your installed hermes, as hermes acp
Muse Code Your installed muse, as muse acp, with its experimental ACP mode
CodeWhale Your installed codewhale, as codewhale serve --acp (a partial ACP adapter)
Bob The ACP package @ibm/bob, installed on first use, with acp
MiniMax Code The ACP package @minimax-ai/code, installed on first use, with acp
Harn Your installed harn, or its archive on first use
Kimchi Your installed kimchi, or its archive on first use
Google Antigravity The ACP Registry's archive, as agy_acp_server
Devin CLI Your installed devin, as devin acp, else the ACP Registry's archive
Cortex Code Your installed cortex, as cortex acp serve, else the ACP Registry's archive
Corust Agent The ACP Registry's archive, as corust-agent-acp
crow-cli Your installed crow-cli, as crow-cli acp, else the ACP Registry's archive
Junie Your installed junie, as junie --acp=true, else the ACP Registry's archive
Mistral Vibe The ACP Registry's archive, as vibe-acp
Poolside Your installed pool, as pool acp, else the ACP Registry's archive
Stakpak Your installed stakpak, as stakpak acp, else the ACP Registry's archive
VT Code Your installed vtcode, as vtcode acp, else the ACP Registry's archive

The ACP packages and adapters need Node.js with npm, which Kettu finds through your login shell. The archive agents run the program itself: Kettu uses your copy when it finds one on PATH, and Install in Settings › Agents downloads its archive from the ACP Registry otherwise. fast-agent and Minion Code need uv instead of Node.js.

Why Kettu

It rests on one belief, beauty is productivity: a tool you spend whole days in should be a pleasure to look at, and that pleasure is what lets you work faster.

  • Start from the best. Study the strongest implementations of each piece, from terminals to diff viewers, and bring them together instead of reinventing them.
  • Optimize to the limit. Quick to start and smooth through the longest transcript, with no dropped frames.
  • Polish to the limit. A clear hierarchy, calm typography and restrained motion, so you see what the agent changed faster than in any scrollback.

Feedback

Early feedback shapes Kettu the most, and ideas about design and workflow are especially welcome. Open an issue to report a bug or start a conversation, in any language; a screenshot helps. Security problems go through SECURITY.md, never a public issue.

Want to build Kettu yourself? CONTRIBUTING.md has the setup.

License

Kettu is released under the Apache-2.0 license.


Kettu is an independent project and is not affiliated with or endorsed by the makers of the agents it supports. All product names are trademarks of their respective owners.

About

A calm desktop workbench for terminal coding agents.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages