Introduction
Tailspin is a Rust-based CLI tool that adds instant syntax highlighting to any log output. Unlike grep or less, Tailspin automatically detects common log patterns — timestamps, IP addresses, UUIDs, HTTP methods, URLs, log levels, and key-value pairs — and colorizes them without any configuration. It works as a drop-in replacement for tail or less when reading logs.
What Tailspin Does
- Automatically highlights dates, IPs, UUIDs, URLs, numbers, and log levels
- Works with any log format without requiring format-specific configuration
- Supports piping from any command (kubectl, docker, journalctl, cat)
- Follows log files in real time with the -f flag like tail -f
- Provides a built-in pager for scrolling through large files
Architecture Overview
Tailspin is a single Rust binary that reads input line by line and applies a series of regex-based highlighters. Each highlighter matches a specific pattern type (ISO timestamps, IPv4/IPv6, severity keywords) and wraps matches in ANSI color codes. The matching pipeline is optimized for throughput so it does not bottleneck high-volume log streams. Output is rendered to the terminal or piped through a pager.
Self-Hosting & Configuration
- Install as a single static binary; no runtime dependencies
- Custom highlight rules can be added via a TOML config file at ~/.config/tailspin/config.toml
- Override default colors by specifying custom ANSI color codes per pattern type
- Disable specific highlighters with --disable flag
- Integrates with any terminal that supports ANSI escape codes
Key Features
- Zero-config highlighting for the most common log patterns
- High-throughput line processing that keeps up with streaming logs
- Built-in pager with search support (press / to search)
- Custom highlight groups definable in TOML configuration
- Works over SSH and in containers where GUI tools are unavailable
Comparison with Similar Tools
- ccze — C-based log colorizer with format-specific parsers; Tailspin is format-agnostic
- lnav — full log navigator with indexing and SQL queries; Tailspin focuses purely on highlighting
- grc — generic colourizer using regex config files; Tailspin needs no configuration for common patterns
- bat — syntax-highlighted cat for code files; Tailspin specializes in log file patterns
- less — standard pager without colors; Tailspin adds automatic log-aware highlighting
FAQ
Q: Does Tailspin work with JSON logs? A: Yes. It highlights JSON keys, values, timestamps, and other patterns within JSON-formatted log lines.
Q: Can I use Tailspin as a pager for other commands? A: Yes. Pipe any command output through tspin to get instant highlighting with a built-in pager.
Q: Does it slow down high-volume log tailing? A: No. Tailspin is written in Rust and processes lines at speeds well above typical log throughput rates.
Q: How do I add custom patterns? A: Add regex rules and ANSI color codes to the [groups] section in ~/.config/tailspin/config.toml.