ctail Svelte Themes

Ctail

Cross-platform log tail viewer with regex highlighting, built with Wails v2 (Go + Svelte)

ctail β€” Cross-Platform Log Tail Viewer with Highlighting

ctail β€” short for color tail β€” is a desktop log file viewer built with Wails v2 (Go backend + Svelte frontend). Think tail -f, but with regex-powered color highlighting, multiple tabs, and a full GUI. Inspired by BareTail. Supports Windows, Linux, and macOS.

πŸ“– User Manual β€” Full documentation on features, settings, and usage.

Screenshots

Dark Theme Light Theme

Settings Panel Rules Editor

AI Assistant AI Rule Generation

Features

  • Multi-tab interface β€” Open multiple log files simultaneously with keyboard navigation (Ctrl+Tab / Ctrl+Shift+Tab)
  • Tab drag-and-drop β€” Reorder tabs by dragging them to new positions
  • Tab toggle β€” Quick Ctrl+Tab toggles between the two most recent tabs
  • Real-time tailing β€” Follow mode streams new lines as they're written, with automatic enable/disable on scroll
  • Regex-based highlighting β€” Rules with foreground/background colors, bold/italic, line-level or match-level matching
  • Sliding window buffer β€” Memory-bounded scrolling through large files; only a configurable window of lines (default 500) is kept in memory
  • Profile system β€” Multiple highlighting profiles with visual rule preview and drag-and-drop reordering
  • AI assistant β€” Ask AI about your logs or auto-generate highlighting rule profiles. Supports GitHub Copilot, GitHub Models, OpenAI, and any OpenAI-compatible server (Ollama, LM Studio, etc.)
  • Non-blocking I/O β€” Files on slow or unreachable network mounts (NFS, CIFS/SMB, SSHFS) won't freeze the UI; all file operations run in the background with timeouts
  • Session persistence β€” Window position/size, open tabs, active profile, and all settings survive restarts
  • Recent files β€” Quick access to recently opened files from the File menu
  • Native menu bar β€” File, Edit, View, Tools, and Help menus with standard keyboard accelerators
  • Context menus β€” Right-click tabs for close/close others, right-click logs for copy/select/AI assist
  • Search β€” Ctrl+F to filter lines within the buffer
  • Check for updates β€” Manual update check from the Help menu
  • Themes β€” 21 built-in color themes (Catppuccin, Nord, Tokyo Night, Gruvbox, Dracula, One Dark, Solarized, Everforest, Ayu, Kanagawa, Matrix, RosΓ© Pine, Monokai, and more), each with dark and light modes. Supports custom themes via JSON files.
  • Cross-platform β€” Linux, Windows, and macOS

Quick Start

Prerequisites

  • Go 1.21+
  • Node.js 18+
  • Wails CLI v2
  • Linux: libgtk-3-dev, libwebkit2gtk-4.1-dev (Ubuntu 24.04+) or libwebkit2gtk-4.0-dev
  • Windows: WebView2 (included in Windows 10/11)

Build & Run

# Install Wails CLI
go install github.com/wailsapp/wails/v2/cmd/wails@latest

# Run in dev mode (hot reload)
make dev

# Build for production
make build

# Run tests
make test

Note: On Ubuntu 24.04+ / Zorin OS 18, the webkit2_41 build tag is required (handled automatically by the Makefile). Override with make dev TAGS= on systems with webkit2gtk-4.0.

Install (Linux)

After building, install system-wide with desktop integration:

make build
sudo make install

This installs the binary to /usr/local/bin/, a .desktop file for application launchers, and icons at all standard sizes. Uninstall with sudo make uninstall.

Linux Packages (deb/rpm)

Build .deb or .rpm packages with proper dependencies (libgtk-3-0, libwebkit2gtk-4.1-0):

# Requires nfpm: go install github.com/goreleaser/nfpm/v2/cmd/nfpm@latest
make package-deb    # β†’ build/ctail_0.4.0_amd64.deb
make package-rpm    # β†’ build/ctail-0.4.0-1.x86_64.rpm

# Install
sudo dpkg -i build/ctail_0.4.0_amd64.deb   # Debian/Ubuntu
sudo rpm -i build/ctail-0.4.0-1.x86_64.rpm  # Fedora/RHEL

Architecture

Go Backend                          Svelte Frontend
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ File Tailer  β”‚ ──Wails Events──▢  β”‚ Tab Bar          β”‚
β”‚ (polling,    β”‚                    β”‚ Log View (scroll)β”‚
β”‚  offset idx) β”‚                    β”‚ Highlighted Linesβ”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Config Mgr   β”‚ ◀──Wails Bind──▢  β”‚ Settings Panel   β”‚
β”‚ (JSON files) β”‚                    β”‚ Rule Editor      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Rule Engine  β”‚                    β”‚ Highlight Utils  β”‚
β”‚ (regex)      β”‚                    β”‚ (client-side)    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ AI Client    β”‚ ◀──Wails Bind──▢  β”‚ AI Dialog        β”‚
β”‚ (multi-      β”‚                    β”‚ (chat, rules gen)β”‚
β”‚  provider)   β”‚                    β”‚                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  • Go backend handles file I/O (polling + direct seek via byte offset index), configuration persistence, the rules engine, and AI provider communication
  • Svelte frontend handles rendering, client-side highlighting (for instant rule feedback), scroll buffer management, and the AI assistant dialog
  • Communication via Wails bindings (sync method calls) and events (async streaming)
  • No external Go dependencies beyond Wails itself
Menu Items
File Open (Ctrl+O), Open Recent β–Έ, Close Tab (Ctrl+W), Quit (Ctrl+Q)
Edit Copy (Ctrl+C), Select All (Ctrl+A), Find (Ctrl+F)
View Settings (Ctrl+,), Toggle Theme
Tools AI Assistant... (Ctrl+Shift+A)
Help Check for Updates, About ctail

Themes

ctail ships with 21 built-in color themes, each with dark and light modes:

Theme Description
Catppuccin Soothing pastel theme (default)
Catppuccin FrappΓ© Catppuccin mid-tone variant
Catppuccin Macchiato Catppuccin warm variant
Nord Arctic, north-bluish palette
Tokyo Night Inspired by Tokyo city lights
Gruvbox Retro groove colors
Dracula Dark theme for vampires
One Dark Atom editor's signature theme
Solarized Precision colors by Ethan Schoonover
Everforest Comfortable green forest palette
Ayu Simple, bright colors
Kanagawa Inspired by Katsushika Hokusai's art
Matrix Hacker-style green on black
RosΓ© Pine All natural pine, faux fur, and a bit of soho vibes
Monokai Classic Sublime Text colors
Night Owl Optimized for night owls
Synthwave '84 Retro-futuristic neon
Cobalt2 Bold blues by Wes Bos
GitHub GitHub's own color palette
Palenight Material palenight colors
Zenburn Low-contrast, warm palette

Switch themes in Settings β†’ Theme and toggle between dark/light with View β†’ Toggle Theme.

🎨 Credits: The built-in theme palettes are inspired by and adapted from OpenCode by Anomaly, which provides a wonderful collection of editor color themes. Thank you for making great design accessible to everyone!

Custom Themes

Create your own themes by dropping a JSON file in the themes directory. See the Custom Themes Guide for full documentation, examples, and tips on adapting VS Code themes.

Platform Themes directory
Linux ~/.config/ctail/themes/
Windows %APPDATA%\ctail\themes\
macOS ~/Library/Application Support/ctail/themes/

Configuration

Config files are stored in platform-specific directories:

Platform Path
Linux ~/.config/ctail/ (or $XDG_CONFIG_HOME/ctail/)
Windows %APPDATA%\ctail\
macOS ~/Library/Application Support/ctail/

See the User Manual for details on all settings and configuration options.

Keyboard Shortcuts

Shortcut Action
Ctrl+O Open file
Ctrl+W Close tab
Ctrl+Tab Next tab / toggle between last two tabs
Ctrl+Shift+Tab Previous tab
Ctrl+Shift+A AI Assistant
Ctrl+C Copy
Ctrl+A Select all
Ctrl+F Search / filter
Ctrl+, Settings
Escape Close search

Known Issues

Multi-monitor maximize on Wayland (Linux)

On Wayland with multiple monitors of different resolutions, the maximize button may use the wrong monitor's dimensions. This is an upstream bug in GTK/WebKit2GTK affecting all Wails v2 apps.

Workaround: Use the --x11 flag to force the X11 backend:

ctail --x11

License

MIT

Top categories

Loading Svelte Themes