/tui
Guide for Splitrail's terminal UI and file watching. Use when modifying the TUI, stats display, or real-time update logic.
$ npx -y skills add Piebald-AI/splitrail --skill tui --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/tui
Context preview
The summary Claude sees to decide when to auto-load this skill.
Guide for Splitrail's terminal UI and file watching. Use when modifying the TUI, stats display, or real-time update logic.
SKILL.md
tui.SKILL.mdname: tui description: Guide for Splitrail's terminal UI and file watching. Use when modifying the TUI, stats display, or real-time update logic.
Real-Time Monitoring & TUI
Splitrail provides a terminal UI with live updates when analyzer data files change.
Source Files
- `src/tui.rs` - TUI entry point and rendering
- `src/tui/logic.rs` - TUI state management and input handling
- `src/watcher.rs` - File watching implementation
Components
FileWatcher (`src/watcher.rs`)
Watches analyzer data directories for changes using the `notify` crate. Triggers incremental re-parsing on file changes and updates TUI via channels.
RealtimeStatsManager
Coordinates real-time updates: background file watching, auto-upload to Splitrail Cloud (if configured), and stats updates to TUI via `tokio::sync::watch`.
TUI (`src/tui.rs`, `src/tui/logic.rs`)
Terminal interface using `ratatui`:
- Daily stats view with date navigation
- Session view with lazy message loading
- Real-time stats refresh
Key Patterns
- **Channel-based updates** - Stats flow through `tokio::sync::watch` channels
- **Lazy message loading** - Messages loaded on-demand for session view to reduce memory
Adding Watch Support to an Analyzer
Implement `get_watch_directories()` in your analyzer to return root directories for file watching. See `src/analyzer.rs` for the trait definition.
Splitrail is a fast, cross-platform, real-time token usage tracker and cost monitor for: Gemini CLI (and Qwen Code) Claude Code Codex CLI Cline / Roo Code / Zoo Code / Kilo Code (VS Code extension + CLI) GitHub Copilot (VS Code) GitHub Copilot CLI OpenCode Pi
Repo: Piebald-AI/splitrail
Other skills on splitrail.
- /mcp
Guide for working with Splitrail's MCP server. Use when adding tools, resources, or modifying the MCP interface.
Open skill - /new-analyzer
Guide for adding a new AI coding agent analyzer to Splitrail. Use when implementing support for a new tool like Copilot, Cline, or similar.
Open skill - /performance
Performance optimization guidelines for Splitrail. Use when optimizing parsing, reducing memory usage, or improving throughput.
Open skill - /pricing
Guide for updating model pricing in Splitrail. Use when adding new AI model costs or updating existing pricing data.
Open skill - /types
Reference for Splitrail's core data types. Use when working with ConversationMessage, Stats, DailyStats, or other type definitions.
Open skill

