Loading documentation...
Loading documentation...
TachiBot provides beautiful terminal themes for ANSI output styling. Choose from 4 built-in themes or create your own custom themes via JSON.
Set your theme via environment variable:
1# Set theme (nebula | cyberpunk | minimal | ocean)2export TACHIBOT_THEME=nebulaInspired by VS Code, Linear, and Vercel. Soft pastels that are easy on the eyes for long sessions.
High contrast neon on black. Blade Runner vibes with bold HUD-style elements.
Swiss typography-inspired. Mostly monochrome with color only where essential.
Cool blues and teals. Calm and professional aesthetic.
Each theme defines consistent styling for:
Styled badges for AI providers using ink-gradient. Each model has a unique gradient preset for visual distinction:
TachiBot themes use Nerd Fonts for rich terminal icons. These are patched fonts that include glyphs from Font Awesome, Devicons, Octicons, Powerline, and more.
1# macOS (Homebrew)2brew install --cask font-jetbrains-mono-nerd-font3 4# Or download from nerdfonts.com and install manuallyAfter installing, set your terminal's font to the Nerd Font variant (e.g., "JetBrainsMono Nerd Font").
TachiBot uses Nerd Font icons for model badges, status indicators, and UI elements:
Browse all icons at nerdfonts.com/cheat-sheet
Create custom themes by adding JSON files to the themes/ directory:
1{2 "name": "dracula",3 "description": "Dracula-inspired dark theme",4 "extends": "nebula",5 "colors": {6 "h1": { "fg": "#BD93F9", "bold": true },7 "h2": { "fg": "#50FA7B", "bold": true },8 "bold": "#FF79C6",9 "italic": "#8BE9FD",10 "code": { "fg": "#F8F8F2", "bg": "#282A36" },11 "link": "#8BE9FD",12 "bullet1": "#FF79C6",13 "bullet2": "#BD93F9",14 "bullet3": "#50FA7B",15 "divider": "#6272A4"16 },17 "modelBadges": {18 "gemini": { "gradient": "cristal", "icon": "diamond" },19 "grok": { "gradient": "passion", "icon": "zap" },20 "openai": { "gradient": "teen", "icon": "circle" },21 "perplexity": { "gradient": "mind", "icon": "compass" },22 "claude": { "gradient": "atlas", "icon": "message" },23 "kimi": { "gradient": "morning", "icon": "star" },24 "qwen": { "gradient": "fruit", "icon": "cpu" }25 }26}Model badges use gradient-string presets for TrueColor terminal gradients. Available presets:
Or use custom colors: "gradient": ["#ff0000", "#00ff00", "#0000ff"]
Use the extends property to inherit from a built-in theme. Only override what you need:
Custom themes support multiple color formats:
"#FF00FF""141" (number as string)"magenta", "cyan", "white"Preview themes in your terminal:
1# Show all themes2npx tsx scripts/theme-showcase.ts3 4# Preview a specific theme5npx tsx scripts/theme-showcase.ts cyberpunkControl how TachiBot renders output with the RENDER_OUTPUT environment variable:
1# React Ink - themes, gradients, tables (~12x tokens)2export RENDER_OUTPUT=ink3 4# Sparse - ANSI badges + raw markdown (~1.01x tokens)5export RENDER_OUTPUT=sparse6 7# Legacy marked-terminal8export RENDER_OUTPUT=ansi9 10# Raw markdown output (default, recommended for non-terminal MCP clients)11export RENDER_OUTPUT=markdown12 13# Plain text (no styling)14export RENDER_OUTPUT=plainink, sparse, and ansi emit ANSI escape codes meant for a terminal. In MCP clients that render tool output as plain text (Claude Desktop, Cursor, web UIs), those codes show up as literal [48;5;61m...[0m noise instead of color.RENDER_OUTPUT=markdown — that's the recommended setting for any client that isn't a true terminal. Use ink or sparse only when running TachiBot from Claude Code CLI or another ANSI-aware shell.When TachiBot output is fed back into an LLM context, ANSI escape codes waste tokens and can confuse models. Enable ANSI stripping to automatically remove color codes from context while keeping beautiful terminal output for humans:
1# Strip ANSI codes from LLM context (saves tokens)2export TACHIBOT_STRIP_ANSI=true\x1b[32m✓ Success\x1b[0m (green text)✓ Success (clean text)