Kettle is a fast GPU accelerated terminal workspace for macOS, Linux, and Windows 11. It starts ready to use with a bundled font and themes, then adds tabs, splits, multiple windows, search, session restore, and local automation.
Prebuilt packages are available on the latest release.
| Platform | Package | Setup |
|---|---|---|
| Linux | kettle-linux-*.tar.gz |
Run the installer below |
| macOS 11 or newer | kettle-macos-universal.zip |
Drag kettle.app to Applications |
| Windows 11 | kettle-windows-x86_64.zip |
Extract it and run install.ps1 |
curl -fsSL https://raw.githubusercontent.com/Reddimus/kettle/main/scripts/install-online.sh | shThis installs Kettle for the current user under ~/.local. It does not need
sudo or a Rust toolchain. The installer verifies the signed release manifest
and archive before changing the install.
Download kettle-macos-universal.zip, unzip it, and move kettle.app to
/Applications. The app contains native Apple Silicon and Intel binaries.
Extract kettle-windows-x86_64.zip, open PowerShell in that folder, and run:
.\install.ps1Use -WithShellIntegration to install prompt marks too, or -Uninstall to
remove Kettle later. The installer creates a Start menu entry and adds the
per-user binary directory to PATH without administrator access.
For package details, older Linux distributions, Nix, and source builds, see Installation.
- Open
kettlefrom your app launcher or shell. - Split the pane with
Ctrl+Shift+EorCtrl+Shift+O. - Open Settings with
Ctrl+,, or right click a pane for common controls. - Write a starter config with
kettle --write-default-config.
Kettle reloads config changes when you save. Run kettle --config-path to see
which file is active and kettle --check-config to validate it.
- GPU rendering with damage aware draws and a shared glyph atlas
- Tabs, splits, pane movement, broadcast input, and live tab tear off
- Multiple native windows in one process, with an explicit isolated process mode
- Search across the screen and bounded scrollback
- Shell owned completion candidates in an IDE style card above the active prompt
- Sixel, graphics placement, and OSC 1337 inline images
- Hyperlinks, local file links, drag and drop paths, and quick select hints
- Optional session restore, recording, SSH profiles, and authenticated updates
- A local control API plus an MCP server, both disabled by default
- 500+ themes and a bundled JetBrains Mono Nerd Font
The completion panel stays in a detached lane above the active command, aligned with the first editable column, and never inserts or runs text itself. Fish and PowerShell can use it automatically when their stock Tab binding is still active. Bash, Zsh, and customized shells can publish existing candidates through Shell integration.
Native material is enabled by default. macOS and Windows use subtle translucency; Linux and other targets stay at 99% opacity whether compositor blur is available or not.
macOS and Windows:
background-opacity = 0.86
window-blur = trueLinux and other targets:
background-opacity = 0.99
window-blur = trueKettle follows macOS Reduce Transparency immediately. Linux compositors may
ignore the blur hint; Kettle keeps explicitly lower live opacity at a 99% floor
in that case so text stays readable without changing screenshots or your config.
Windows matches its DWM caption to the active theme. macOS keeps AppKit's
caption opaque and follows the selected light or dark appearance. Set opacity
to 1.0 and blur to false for a fully opaque window.
| Action | Key |
|---|---|
| New tab | Ctrl+Shift+T |
| Split left or right | Ctrl+Shift+E |
| Split top or bottom | Ctrl+Shift+O |
| Focus next or previous pane | Ctrl+Shift+N or Ctrl+Shift+P |
| Directional focus | Alt+Arrow |
| Search | Ctrl+Shift+F |
| Command palette | Ctrl+Shift+K |
| Quick select | Ctrl+Shift+H |
| Copy or paste | Ctrl+Shift+C or Ctrl+Shift+V |
| Settings | Ctrl+, |
| Zoom pane | Ctrl+Shift+X |
On Linux and Windows, Alt+Arrow moves to a split only when one exists in that
direction. At an outer edge, Kettle sends the chord to the running program so
its own editor shortcuts still work. macOS also provides familiar Command key
bindings. Bare Option keys remain available for text entry unless
macos-option-as-alt is enabled.
Run kettle --list-keybinds for the effective map after your config is applied.
The full action list is available through kettle --list-actions.
Kettle uses a plain key = value file:
theme = TokyoNight Night
font-family = JetBrainsMono Nerd Font
font-size = 13
completion-overlay = auto
cursor-style = block
keybind = ctrl+shift+t=new_tabUseful commands:
kettle --write-default-config
kettle --config-path
kettle --check-config
kettle --list-themes
kettle --list-keybinds
kettle --gpu-info
kettle --check-updateSee Configuration for every setting and
Settings for the in-app editor.
Use update-policy = auto, notify, or off to control background checks;
explicit --check-update requests still work in every mode.
Kettle can run a command under its terminal engine without opening a window:
kettle exec -- echo okIt can also expose a local control server to trusted processes running as the same operating system user:
kettle --agent-server read-only
kettle ctl list_panes
kettle ctl read_screen
kettle mcpThe server is off by default. read-only permits inspection; full also
permits input and command execution. Read Automation and MCP
before enabling write access.
The Windows benchmark harness compares Kettle with Windows Terminal, Alacritty, WezTerm, Rio, and Tabby using isolated configs where the application supports them. Release claims require physical displays, repeated samples, a pinned prior Kettle release, and a clean release candidate. Synthetic tests do not count as live GPU evidence.
See Performance methodology for commands, sample counts, statistical margins, and publication rules.
Kettle requires Rust 1.89 or newer. On Debian or Ubuntu:
sudo apt-get install -y pkg-config libfontconfig1-dev libfreetype6-dev \
libx11-dev libxkbcommon-dev libxkbcommon-x11-dev libwayland-dev \
libxcb1-dev libvulkan1 mesa-vulkan-drivers
git clone https://github.com/Reddimus/kettle
cd kettle
cargo run --releaseBefore sending a change:
cargo fmt --all --check
just gauntletRead Contributing and Testing for the full workflow.
- Getting started
- Installation
- Configuration
- Shell integration
- Automation and MCP
- Architecture
- Testing
- Release process
- Version history
- Changelog
Kettle is available under the MIT license. Third party code, assets, protocol sources, and design references are listed in NOTICE.
