About this project

Kaku (書く, meaning 'to write' in Japanese) is a macOS terminal emulator designed for AI-assisted coding, built on top of WezTerm. It aims to provide a polished, ready-to-use experience with sensible defaults, eliminating the need for extensive manual setup. The project is part of a trilogy by the author, alongside Waza (for habit drilling) and Kami (for document shipping). **Key Features:** - **Out-of-the-box experience:** Includes JetBrains Mono font, automatic dark/light themes, copy-on-select, and familiar Mac shortcuts. - **Tabs and panes:** Supports splitting the workspace, navigating panes with a Tab Navigator, and restoring windows, panes, and working directories on restart. - **Right-click menu:** Provides quick access to paste, search, open AI chat, and split/close panes without needing to remember shortcuts. - **Clickable links:** Cmd+Click opens URLs and file paths, with automatic URL wrapping to preserve full addresses. - **AI-friendly:** Integrates with coding tools and offers an optional AI assistant for command suggestions, natural language to command conversion, and chat. Users can configure their own AI service via `kaku ai`. - **Shell tools:** Includes zsh completion, syntax highlighting, and directory jumping, with shortcuts for optional Lazygit and Yazi installations. - **Lua configuration:** Allows customization of fonts, themes, shortcuts, and terminal behavior using WezTerm's Lua configuration system. **Installation:** - Download the DMG from the releases page and drag to Applications, or use Homebrew: `brew install --cask kaku`. - After opening, run `kaku init` to set up shell integration and install optional tools. Check version with `kaku --version`. **Usage:** The README provides a table of common shortcuts, including new tab (Cmd+T), split pane (Cmd+D / Cmd+Shift+D), AI panel (Cmd+Shift+A), AI chat (Cmd+L), apply AI suggestion (Cmd+Shift+E), open Lazygit (Cmd+Shift+G), Yazi file manager (Cmd+Shift+Y or y), clear screen (Cmd+K), and open context menu (right-click). Full keybinding reference is in docs/keybindings.md. **AI Assistant:** - Configure via `kaku ai`; Kaku does not provide or relay the AI service. - Command suggestions: When a command fails, the assistant can suggest a fix; press Cmd+Shift+E to paste it. - Natural language to command: Type `# <description>` and press Enter to generate a command. - Chat: Press Cmd+L to discuss terminal output or work with project files; `kaku chat` from another shell accesses the same conversation store. - AI Tools Config: Manage settings for Claude Code, Codex, Gemini CLI, Copilot CLI, Kimi Code, and more. **FAQ Highlights:** - macOS-only; no Windows or Linux version currently. - Different from iTerm2, Warp, Ghostty, or WezTerm? See kaku.fun/compare. - Transparent windows: set `config.window_background_opacity` in `~/.config/kaku/kaku.lua`. - If `kaku` command is missing, run `/Applications/Kaku.app/Contents/MacOS/kaku init --update-only && exec zsh -l`, then `kaku doctor`. **Documentation:** - Website: kaku.fun (English/Chinese docs) - Compare: kaku.fun/compare - Keybindings, Features, Configuration, CLI Reference, FAQ are available in the docs folder. **Background:** The author, a heavy CLI user, built Kaku after years with Alacritty and exploring Kitty, Ghostty, Warp, and iTerm2, seeking a balance of performance, defaults, and control. WezTerm's robustness and hackability served as the foundation. **Support & License:** - Support via Mole for Mac (paid app), starring/sharing, or sponsoring the author's cats. - MIT License; attribution for WezTerm and bundled fonts in NOTICE.md.