An open API service indexing awesome lists of open source software.

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.

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.


CI
Latest release
License: MIT
Platform: macOS
Made with love


Kimbo (happy)
Kimbo Terminal
Kimbo (surprised)

> **Beta** — Kimbo is in active development. Expect rough edges. Feedback and contributions welcome.


Kimbo general features demo

## 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


Kimbo command palette demo

## 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)