Roadmap
Version convention: 0.1.x = patch (small features/fixes), 0.x.0 = minor (major features).
Initial Release
Terminal emulator, built-in multiplexer, and full AI integration stack.
- VT100/xterm state machine (CSI, SGR 256+truecolor, OSC, DCS passthrough)
- CPU SIMD rendering via @Vector — no GPU, <50μs per frame
- Multi-pane with 4 tiling layouts (master-stack, grid, monocle, floating)
- 9 workspaces, Ctrl+Space prefix keys
- CustomPaneBackend protocol for Claude Code agent teams (7 operations)
- MCP server (6 tools over Unix socket)
- OSC 9999 agent self-declaration protocol
- Process graph (DAG with agent metadata)
- Session save/restore with binary serialization
- Command-stream scrollback compression (20-50x)
- X11 via pure XCB, Wayland via xdg-shell
- Config file: ~/.config/teru/teru.conf
- Hook system (spawn/close/agent_start/session_save)
Clipboard & AUR
Clipboard auto-detection, Wayland keyboard fix, and AUR package.
- Clipboard: auto-detect display server (wl-copy on Wayland, xclip on X11)
- Build: link libxkbcommon for Wayland-only builds (keyboard was broken with -Dx11=false)
- Keyboard: enable xkbcommon translation for both X11 and Wayland backends
- AUR package live: paru -S teru
- Makefile with build profiles (make dev, make release, make install)
Full AI Integration
Three-layer AI integration fully wired: PaneBackend + HookListener + MCP Server.
- Claude Code hook listener: Unix socket HTTP server accepts 16 lifecycle event types
- HookHandler expanded from 5 to 16 events (PreToolUse, PostToolUse, SessionStart/End, Stop, Notification, PreCompact/PostCompact)
- processHookEvent dispatches to ProcessGraph (agent spawn/stop/pause, tool activity)
- Full project roadmap added
Prefix Key & Pane Controls
Configurable prefix key, pane zoom, and pane resize.
- Configurable prefix key: prefix_key = ctrl+b in teru.conf
- Pane zoom: Ctrl+Space, z toggles between current layout and monocle
- Pane resize: Ctrl+Space, H/L adjusts master ratio in master-stack (15%-85%)
Wayland Parity + Copy Mode
Proper Wayland keyboard integration and vi-like copy mode.
- Wayland keyboard: use compositor keymap FD via xkb_keymap_new_from_fd()
- Copy mode: vi-like scrollback navigation (Ctrl+Space,[ enters, hjkl/v/y)
- Custom keybindings in config file (key=action mapping)
Terminal Basics
Kitty keyboard protocol, shell integration, and improved search.
- Kitty keyboard protocol (disambiguate press/release/repeat, modifier encoding)
- Shell integration scripts (bash/zsh/fish auto-inject OSC 133 emitters)
- Scrollback search improvement (persist query, highlight count, next/prev match)
Detach/Attach Daemon
Background daemon process — sessions persist across terminal restarts.
- Daemon mode (teru-server background process owns PTYs)
- teru attach (client connects to running daemon)
- teru detach (disconnect client, daemon keeps PTYs alive)
- Named sessions (teru new -s work, teru attach work)
- Session persistence across terminal restarts
Graphics + Full Unicode
Kitty graphics protocol, Sixel, emoji, CJK, and font fallbacks.
- Kitty graphics protocol (bitmap display, streaming, placement)
- Sixel graphics (legacy image protocol)
- Full Unicode: emoji via COLR/CPAL tables
- Full Unicode: CJK double-width characters (wcwidth)
- Font fallback chains (Hack → Noto → system fonts)
Plugin System
WASM plugin runtime with hooks, render, and tool APIs.
- WASM plugin runtime (sandboxed)
- Plugin API: hooks (on_key, on_output, on_resize, on_agent_event)
- Plugin API: render (custom status bar widgets, overlays)
- Plugin API: tools (register MCP tools from plugins)
- Lua scripting bridge (Lua 5.4 for config/keybind scripting)
AI-First Features
Context gauge, cost tracking, cross-pane approval, process graph visualization.
- Context compaction gauge (status bar shows Claude Code context usage %)
- Agent cost tracking (accumulate tokens from hook metadata, show per-agent cost)
- Cross-pane approval (permission_prompt hook → inline yes/no widget)
- Auto-workspace for teams (spawn_agent with group → dedicated workspace)
- Process graph visualization (Ctrl+Space,g — DAG view)
- Agent replay (rewind session using scrollback + event timestamps)
macOS
Fix AppKit backend, PTY, Homebrew tap.
- Fix AppKit backend for Zig 0.16
- PTY via forkpty() from util.h
- Keyboard via Carbon UCKeyTranslate
- Clipboard via pbcopy/pbpaste
- Homebrew tap (nicholasglazer/homebrew-teru)
- Retina/HiDPI support
Windows
ConPTY, Win32 keyboard, winget + Scoop.
- ConPTY (CreatePseudoConsole, Win10 1809+)
- Win32 keyboard translation
- Clipboard (OpenClipboard + SetClipboardData)
- Scoop bucket + WinGet manifest
SDK Integration
Claude Code SDK embedding, headless sessions, and session recording.
- Claude Code SDK embedding (optional Node.js/Python process for terminal-native AI chat)
- Headless session spawning (claude -p --output-format stream-json, NDJSON parsing)
- Session recording with semantic markup (commands, agent events, timing)
- Session replay (searchable, shareable recordings)