gpu-accelerated terminal rendering with macos coretext integration
Kaku implements a GPU-accelerated rendering pipeline inherited from WezTerm but optimized for macOS through native CoreText font rendering instead of cross-platform abstractions. The TermWindow core manages a render loop that converts terminal cell state into GPU commands, with platform-specific code paths for macOS CoreText font metrics and glyph rasterization. This approach reduces latency for high-frequency screen updates while maintaining sub-40MB binary size through feature removal and symbol stripping.
Unique: Forks WezTerm's GPU rendering but strips unused features and replaces cross-platform font abstraction with native macOS CoreText, reducing binary from 67MB to 40MB while maintaining frame-rate performance through platform-specific optimizations
vs alternatives: Faster rendering than iTerm2 (GPU-accelerated) and smaller footprint than WezTerm (40MB vs 67MB) while keeping native macOS font rendering that iTerm2 lacks
zero-configuration bundled defaults with lua-based overrides
Kaku ships with sensible defaults (JetBrains Mono font at 13pt, opencode color scheme, optimized for low-DPI displays) embedded in the binary, eliminating the blank-slate problem of WezTerm. Configuration follows a three-tier priority system: CLI arguments override ~/.config/kaku/kaku.lua overrides bundled defaults. The Lua configuration system exposes the full wezterm module API (wezterm.action.SplitHorizontal, wezterm.color.parse, event hooks like gui-startup), allowing power users to customize without losing defaults.
Unique: Implements three-tier configuration priority (CLI > user Lua > bundled defaults) with full WezTerm Lua API compatibility, allowing zero-setup experience while preserving power-user customization without requiring users to redefine all settings
vs alternatives: Faster onboarding than WezTerm (which requires manual config) and more flexible than iTerm2 (which uses plist-based settings with no scripting layer)
clipboard and toast notification system
Kaku provides clipboard integration that allows terminal applications to read and write the system clipboard via escape sequences (OSC 52 protocol). Toast notifications appear as transient UI elements in the terminal window to provide feedback for actions (e.g., 'Pane split', 'Workspace switched'). The notification system integrates with the rendering pipeline to display toasts without blocking terminal output. Clipboard operations are handled by the platform layer, with macOS-specific code using NSPasteboard for clipboard access.
Unique: Implements OSC 52 clipboard protocol with platform-specific macOS NSPasteboard integration and transient toast notifications that integrate with the rendering pipeline, enabling seamless clipboard operations without external tools
vs alternatives: More integrated than iTerm2's clipboard support (which requires separate configuration) and more reliable than tmux clipboard integration (which requires external tools like pbcopy)
configuration tui with interactive settings editor
Kaku provides a configuration TUI (Text User Interface) accessible via kaku config that allows users to interactively edit settings without manually editing Lua files. The TUI presents configuration options in a structured format (e.g., font selection, color scheme, keybindings) and validates changes before writing to ~/.config/kaku/kaku.lua. The TUI integrates with the Lua configuration system, allowing users to preview changes and revert if needed. This approach lowers the barrier to configuration for users unfamiliar with Lua.
Unique: Provides a TUI-based configuration editor (kaku config) that allows interactive settings editing without Lua knowledge, with validation and preview capabilities, lowering the barrier to configuration for non-technical users
vs alternatives: More user-friendly than manual Lua editing and more comprehensive than iTerm2's GUI preferences (which don't expose all settings)
workspace-based project organization with persistent layout
Kaku implements workspaces as a grouping mechanism for related windows, tabs, and panes, allowing users to organize work by project or context. Workspaces are named and can be switched via keybindings or command palette. The multiplexer maintains workspace state (open windows, tabs, panes, their layout) during the session. Users can define workspace templates in Lua configuration to automatically create workspaces with specific layouts (e.g., 'frontend' workspace with dev server pane, 'backend' workspace with API server pane).
Unique: Implements workspaces as a first-class organizational unit with Lua-based template support, allowing users to define project-specific layouts and switch between contexts without external tools or multiple terminal windows
vs alternatives: More integrated than tmux sessions (which require separate configuration) and more flexible than iTerm2 profiles (which are limited to window-level organization)
pre-configured shell plugin suite with frecency-based navigation
Kaku bundles and auto-installs a curated zsh plugin suite during first-run initialization (kaku init): z for frecency-based directory navigation, zsh-completions for extended shell completion, zsh-syntax-highlighting for real-time command validation, and zsh-autosuggestions for history-based suggestions. Plugins are copied to ~/.config/kaku/zsh/plugins/ and sourced via shell integration scripts that detect shell type and environment. This approach eliminates the need for users to manually discover, install, and configure productivity plugins.
Unique: Bundles and auto-installs a curated zsh plugin suite (z, zsh-completions, zsh-syntax-highlighting, zsh-autosuggestions) during first-run initialization, eliminating manual plugin discovery and configuration while maintaining compatibility with user-installed plugins
vs alternatives: Faster shell setup than Oh My Zsh (which requires manual plugin selection) and more opinionated than bare zsh (which requires users to discover and install plugins individually)
ai-assisted error recovery and command suggestion
Kaku integrates an AI assistant (kaku ai command) that analyzes failed shell commands and suggests corrections or alternative approaches. The system captures command exit codes, stderr output, and command context, then sends this to configured AI providers (OpenAI, Anthropic, or local models) to generate contextual suggestions. Integration points include shell integration scripts that hook into command execution and a configuration interface (kaku config) for setting AI provider credentials and model preferences. This capability is designed specifically for AI-assisted coding workflows where developers iterate rapidly.
Unique: Implements AI error recovery as a first-class terminal feature with multi-provider support (OpenAI, Anthropic, local models) and shell integration hooks that capture command context (exit code, stderr, working directory) for contextual AI suggestions, rather than treating AI as a separate tool
vs alternatives: More integrated than ChatGPT-in-browser (which requires context-switching) and more flexible than GitHub Copilot CLI (which is GitHub-only and doesn't support local models)
multiplexer-based window, tab, and pane management
Kaku implements a multiplexer (Mux) architecture inherited from WezTerm that manages multiple windows, tabs, and panes within a single process. The TermWindow core coordinates rendering and input for all panes, with each pane maintaining independent terminal state (scrollback, cursor position, cell grid). Panes can be split horizontally or vertically via wezterm.action.SplitHorizontal/SplitVertical, and workspaces group related windows and tabs. The multiplexer supports both local panes (running shell processes) and remote panes (SSH connections via wezterm-ssh crate), enabling seamless switching between local and remote environments.
Unique: Implements a process-based multiplexer (Mux) that manages windows, tabs, and panes with unified rendering via TermWindow core, supporting both local shell processes and remote SSH connections via wezterm-ssh crate, eliminating the need for external multiplexers like tmux
vs alternatives: More integrated than tmux (no separate process management) and supports SSH domains natively, whereas tmux requires SSH tunneling or separate SSH sessions
+5 more capabilities