The Problem
Developers who spend most of their day in a terminal need a fast, AI‑enhanced environment without the overhead of manual configuration. Existing terminals either require extensive setup for themes, fonts, and shell plugins, or they lack built‑in AI assistance for command generation and error recovery.
What This Does
Kaku is a fork of WezTerm that ships with sensible defaults and an integrated AI panel. The core terminal binary lives in the workspace root and is built with Rust (Cargo.toml). Configuration handling is in the config/ crate (config/src/lib.rs, config/src/terminal.rs) and is exposed to the user via a Lua file bundled at assets/macos/Kaku.app/Contents/Resources/kaku.lua.
AI functionality is provided by the kaku-ai-utils crate (crates/kaku-ai-utils/src/lib.rs) which talks to LLM providers (OpenAI, Claude, Gemini, etc.) and injects generated commands back into the prompt. The UI for the AI panel is wired through the terminal’s frontend (config/src/frontend.rs) and keybindings defined in config/src/keyassignment.rs.
How To Use It
Setup
Install the Rust toolchain (rustup install stable). Clone the repo and pull sub‑modules (git submodule update --init). Build the binary:
From the repository root
cargo build --release Or, if the Makefile defines a target: make release
The resulting executable is target/release/kaku (macOS app bundle is assembled by the assets/macos scripts).
Configuration
Default configuration is loaded from the bundled Lua script assets/macos/Kaku.app/Contents/Resources/kaku.lua. Users can override settings by placing a file at ~/.config/kaku/kaku.lua. The Rust side reads this via config/src/lua.rs. No environment variables are required for basic operation; AI provider keys must be added to the Lua config (e.g., openaiapikey = "…") as documented in README.md (section Kaku AI).
Running
Launch the built binary directly:
./target/release/kaku
On macOS the DMG can be created with the Dockerfile in crates/kaku-relay/Dockerfile and installed via the usual drag‑to‑Applications step (see the release assets). Once running, the AI panel opens with ⌘ Shift A and suggestions are accepted with ⌘ Shift E.
Real‑World Use
A developer working on a Python project can type # list all .py files larger than 1 MB at the prompt. The AI panel (implemented in crates/kaku-ai-utils) sends the description to the configured LLM, receives find . -name ".py" -size +1M, and injects it back into the terminal ready for execution. This reduces context switches between editor, browser, and shell.
-- ~/.config/kaku/kaku.lua openaiapikey = "sk‑…" ai_provider = "openai"
Code Health & Issues
Low – Missing Windows build scripts – The repo only contains macOS assets (assets/macos/.dylib, Info.plist). No cross‑platform CI steps are present. Medium – AI provider secret handling – API keys are expected in the user‑provided Lua config; the repo does not enforce secret management or redact them in CI logs. Low – Large crate graph – Over 30 internal crates (crates/*) increase compile time; however, CI (.github/workflows/ci.yml) runs cargo test and cargo clippy, indicating basic quality checks. Low – Documentation gaps – The README describes keybindings but lacks a quick‑start guide for building from source; the docs/ folder is minimal. None – License & CI – MIT license present, CI configured, and a lockfile (Cargo.lock) is committed, showing reproducible builds.
The Bottom Line
Kaku delivers a ready‑to‑use, AI‑augmented terminal for macOS developers who value minimal setup and WezTerm compatibility. The codebase is well‑structured and tested, but it is macOS‑only and requires manual handling of LLM secrets. Suitable for solo developers or small teams needing an integrated AI workflow without building a custom terminal from scratch.