https://github.com/lucatescari/kimbo-terminal
A fast, themeable terminal emulator built with Rust and Tauri. Multi-pane layouts, project launcher, and community themes.
https://github.com/lucatescari/kimbo-terminal
open-source rust tauri2 terminal typescript xterm-js
Last synced: about 1 month ago
JSON representation
A fast, themeable terminal emulator built with Rust and Tauri. Multi-pane layouts, project launcher, and community themes.
- Host: GitHub
- URL: https://github.com/lucatescari/kimbo-terminal
- Owner: lucatescari
- License: mit
- Created: 2026-04-16T14:11:19.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-04T10:19:54.000Z (about 1 month ago)
- Last Synced: 2026-05-04T12:06:54.289Z (about 1 month ago)
- Topics: open-source, rust, tauri2, terminal, typescript, xterm-js
- Language: TypeScript
- Homepage:
- Size: 13.7 MB
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Roadmap: ROADMAP.md
Awesome Lists containing this project
README
# Kimbo
A fast, themeable terminal emulator built with Rust and Tauri. Multi-pane layouts, tabbed windows, and a command palette for developer workflows.
> **Beta** — Kimbo is in active development. Expect rough edges. Feedback and contributions welcome.
## Features
- **Multi-pane layouts** — split vertically (Cmd+D) or horizontally (Cmd+Shift+D), nest arbitrarily
- **Tabbed windows** — each tab has its own independent pane layout, drag-and-drop to reorder
- **Command palette** — unified launcher for commands and projects (Cmd+K)
- **Find in scrollback** — search terminal output with regex and case-sensitive modes (Cmd+F)
- **Themeable** — JSON themes (VS Code format), 3 built-in + community theme repo
- **True color (24-bit)** — full color support for modern CLI tools
- **Settings UI** — built-in settings panel (Cmd+,) for theme, font, keybindings, workspaces
- **Configurable keybindings** — all shortcuts customizable via settings or config file
- **Session restore** — tabs and working directories persist across app restarts
- **Clickable URLs** — Cmd+click to open links in your browser
- **Window opacity** — adjustable window transparency
- **Quit confirmation** — optional prompt before closing active panes
- **Drag and drop** — drop files and folders directly into the terminal
- **Welcome screen** — keyboard shortcut intro for first-time users
- **Native macOS menu bar** — standard app menu with all actions
## What's New in `feat/osc1337-inline-images`
This branch focuses on better media and rendering behavior in the terminal, plus the latest updates merged from `dev`.
- **Inline images (imgcat / OSC 1337)** — renders iTerm-style inline images directly inside the terminal viewport
- **OSC 1337 cursor-advance preprocessing** — keeps cursor math correct after inline image output (important for tools like `fastfetch`)
- **Transparent ANSI background filtering** — rewrites problematic black background ANSI sequences to preserve window transparency
- **Settings and UX additions from `dev`** — includes recent upstream improvements merged from Luca's `dev` branch
### `imgcat`
Kimbo's shell init scripts (`kimbo-init.zsh` / `.bash` / `.fish`) define an `imgcat` function that emits the OSC 1337 sequence Kimbo renders. Once you've sourced the init script in your shell rc, it just works:
```bash
imgcat /path/to/image.png
```
The function is skipped if you already have an `imgcat` binary on `PATH` (e.g. iTerm2's bundled one), so it never shadows a richer impl. Kimbo also supports the multipart variant emitted by iTerm2's `imgcat` and by `fastfetch`.
## Tech Stack
- **Rust** — PTY management, config, workspace detection
- **Tauri 2** — native app shell, IPC between Rust and frontend
- **xterm.js** — terminal emulation and rendering
- **TypeScript** — frontend UI (vanilla, no framework)
## Installation
### Build from Source
Requires: [Rust](https://rustup.rs/), [Node.js](https://nodejs.org/) (v18+), [Tauri CLI](https://tauri.app/)
```bash
git clone https://github.com/lucatescari/kimbo-terminal.git
cd kimbo-terminal
npm install
cargo install tauri-cli --version "^2"
```
**Development:**
```bash
npm start
```
**Production build (signed .app + .dmg on macOS):**
```bash
npm run build
```
The built app is at `target/release/bundle/macos/Kimbo.app`.
### Download
macOS builds will be available on the [Releases](https://github.com/lucatescari/kimbo-terminal/releases) page soon.
## Configuration
Config file: `~/.config/kimbo/config.toml`
```toml
[general]
default_shell = "/bin/zsh"
[font]
family = "JetBrains Mono"
size = 14.0
line_height = 1.2
ligatures = true
[theme]
name = "kimbo-dark"
[scrollback]
lines = 10000
[cursor]
style = "block"
blink = true
[workspace]
auto_detect = true
scan_dirs = ["~/Projects"]
```
Or use the built-in settings UI (Cmd+,).
## Keybindings
| Shortcut | Action |
|---|---|
| Cmd+K | Command palette |
| Cmd+T | New tab |
| Cmd+Shift+W | Close tab |
| Cmd+D | Split vertically |
| Cmd+Shift+D | Split horizontally |
| Cmd+W | Close pane |
| Cmd+Arrow | Navigate between panes |
| Cmd+] / Cmd+[ | Next / previous tab |
| Cmd+1-9 | Switch to tab by number |
| Cmd+F | Find in scrollback |
| Cmd+, | Settings |
| Cmd+Q | Quit |
All keybindings are customizable in Settings > Keybindings.
## Themes
Kimbo uses JSON themes in VS Code format. Three built-in themes are included:
- **Kimbo Dark** — default dark theme
- **Catppuccin Mocha** — warm dark pastels
- **Catppuccin Latte** — warm light pastels
Community themes are available in Settings > Appearance. You can also create your own — see the [kimbo-themes](https://github.com/lucatescari/kimbo-themes) repo for the format and how to contribute.
Install custom themes by placing `.json` files in `~/.config/kimbo/themes/`.
## Scripts
| Command | Description |
|---|---|
| `npm start` | Run in development mode |
| `npm run build` | Production build (.app + .dmg) |
| `npm test` | Run frontend tests |
| `npm run test:rust` | Run Rust tests |
| `npm run test:all` | Run all tests |
## Project Structure
```
kimbo-terminal/
src-tauri/ # Rust backend (Tauri app, PTY management, commands)
src-ui/ # TypeScript frontend (xterm.js, tabs, settings, etc.)
crates/
kimbo-terminal/ # Raw PTY wrapper (spawn, read/write, resize, CWD)
kimbo-config/ # Config loading, JSON themes, keybinding definitions
kimbo-workspace/ # Project detection and directory scanning
```
## Platform Support
- **macOS** — primary platform, fully supported
- **Linux** — planned
- **Windows** — planned
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
## License
[MIT](LICENSE)