The Ren TUI is a companion tool for Claude Code that provides a rich terminal interface for monitoring sessions, viewing diffs, and orchestrating agents.
- Conversation Panel: Real-time view of Claude Code transcripts with styled messages.
- Event-Driven Diff Viewer: Tracks file changes made by Claude with:
- Per-file diff viewing (not whole workspace)
- Navigation between changed files (j/k keys)
- Timestamps and tool names (Edit, Write, NotebookEdit)
- Error tracking with visual indicators
- Agent Orchestration: Foundation for managing multiple internal agents.
- Hook Integration: Receives real-time events from Claude Code via webhooks.
git clone https://github.com/ren-engineering/ren-tui.git
cd ren_tui
go build ./cmd/ren-
Ren Config: The TUI looks for
ren.jsonin the current directory or defaults.{ "port": 8888, "theme": "dracula" } -
Claude Code Hooks (REQUIRED): Configure your
~/.claude/settings.jsonto send events to Ren.{ "hooks": { "PostToolUse": [ { "matcher": ".*", "hooks": [ { "type": "command", "command": "curl -X POST -d @- http://localhost:8888/hook -H 'Content-Type: application/json' --fail --silent --show-error || true" } ] } ], "UserPromptSubmit": [ { "hooks": [ { "type": "command", "command": "curl -X POST -d @- http://localhost:8888/hook -H 'Content-Type: application/json' --fail --silent --show-error || true" } ] } ], "SessionStart": [ { "hooks": [ { "type": "command", "command": "curl -X POST -d @- http://localhost:8888/hook -H 'Content-Type: application/json' --fail --silent --show-error || true" } ] } ], "Stop": [ { "matcher": ".*", "hooks": [ { "type": "command", "command": "curl -X POST -d @- http://localhost:8888/hook -H 'Content-Type: application/json' --fail --silent --show-error || true" } ] } ] } }Note: Without these hooks configured, the TUI will show "No active sessions" even when Claude Code is running.
- Start the Ren TUI:
./ren
- Run Claude Code in another terminal (or in your IDE).
- The TUI will automatically update as you interact with Claude:
- Conversation Tab: Shows the full transcript with user and assistant messages
- Diff Tab: Shows file changes made by Claude (use j/k to navigate between files)
- Tab/Shift+Tab: Switch between tabs
- q or Ctrl+C: Quit
- Tab / Shift+Tab: Navigate between tabs (Conversation, Orchestration, Diff, Config)
- Diff Tab Navigation:
- j / Down: Next file
- k / Up: Previous file
- g: Go to first file
- G: Go to last file
- Scroll: Use arrow keys or mouse wheel to scroll through diff content
- q / Ctrl+C: Quit application
- Build:
go build ./cmd/ren - Test:
go test ./... - Demo Hook:
go run cmd/hook_demo/main.go