Repository navigation
Releases: bisand/ctail
Release list
ctail 1.0.1
The first release with the desktop app for Linux and Windows — packages for every major Linux base and a Windows download are attached below once they have built. On a Mac, ctail comes from the Mac App Store.
Fixed
- Open tabs are saved as they change — opening, closing, renaming, colouring, reordering — so quitting with ⌘Q (or any other way) no longer loses them.
- A file whose last line has no newline — a one-line XML or JSON document — now shows that line.
- The Mac App Store edition keeps access to the files you opened, so restored tabs load their contents again. (Files opened before this fix need opening once more.)
- A menu no longer leaves a row highlighted after the pointer has left it.
Changed
- The desktop app's status bar shows how much memory the open files hold, rather than the size of the whole program.
- On Linux, a machine with no GPU support at all now draws in software instead of refusing to start.
Full Changelog: v1.0.0...v1.0.1
Download ctail for Linux and Windows
The desktop app, ready to install. Each file has a .sha256 beside it.
| x86-64 | aarch64 | |
|---|---|---|
| Debian, Ubuntu | ctail_1.0.1-1_amd64.deb |
ctail_1.0.1-1_arm64.deb |
| Fedora, RHEL and its rebuilds | ctail-1.0.1-1.x86_64.rpm |
ctail-1.0.1-1.aarch64.rpm |
| Arch Linux | ctail-1.0.1-1-x86_64.pkg.tar.zst |
ctail-1.0.1-1-aarch64.pkg.tar.zst |
| Alpine | ctail_1.0.1-r1_x86_64.apk |
ctail_1.0.1-r1_aarch64.apk |
| Any Linux with glibc 2.34 or newer | ctail-1.0.1-x86_64-unknown-linux-gnu.tar.gz |
ctail-1.0.1-aarch64-unknown-linux-gnu.tar.gz |
| Windows | ctail-1.0.1-x86_64-pc-windows-msvc.zip |
Install a package with the package manager, which fetches what the window
needs: sudo apt install ./ctail_1.0.1-1_amd64.deb,
sudo dnf install ./ctail-1.0.1-1.x86_64.rpm,
sudo pacman -U ctail-1.0.1-1-x86_64.pkg.tar.zst, or
sudo apk add --allow-untrusted ctail_1.0.1-r1_x86_64.apk (the packages
are not signed, which is what apk's flag is about). The .tar.gz is the
program on its own, for a machine that already has a desktop.
On a Mac, get ctail from the Mac App Store.
The Windows build is not signed, so SmartScreen stops its first launch:
choose More info, then Run anyway.
ctail 1.0.0
The first release of ctail as a native Mac app, and the first on the rewritten engine.
Get it: Mac App Store — free, with ctail Pro (unlimited files, all themes, the AI assistant) as a one-time in-app purchase. Requires macOS 13 Ventura or later; Apple silicon and Intel.
This release carries no downloadable binaries. The Mac app ships through the App Store, and the Linux and Windows edition on the same engine is still in development — until it lands, the previous cross-platform edition, 0.9.9, remains available.
What's new since 0.9.9
- A new engine, in Rust. Tail-first opens: the end of a multi-gigabyte file is on screen within milliseconds while line offsets index in the background. Memory does not grow with the file. Rotation and truncation are detected by inode and creation time, which also fixes false rotations on Linux.
- A native macOS app. Swift and AppKit around the engine — a real menu bar, native dialogs, Finder integration, sandboxed for the App Store with security-scoped bookmarks so files reopen after a relaunch.
- Search over the whole file, not just the window, with live counts, ↑/↓ across matches, and a filter mode.
- Highlighting rules and profiles compiled once in the engine, shared by every front end; 21 themes plus custom ones.
- AI assistant (Pro): explain a selection or the tail, or generate a highlighting profile — with your own OpenAI, Anthropic, GitHub Models or Copilot credentials. Nothing is sent unless you ask.
- Smooth scrolling in both directions; long lines scroll sideways, or wrap.
- Word wrap, line numbers, tabs with colours and renaming, session restore, a memory indicator in the status bar.
For users of 0.9.9
The Wails-based app will offer this release as an update. There is nothing to download here: on a Mac, install from the App Store; on Linux or Windows, stay on 0.9.9 until the new edition ships.
v0.9.9
What's New in v0.9.9
Configurable New Tab Position
- New setting: "New Tab Position" — choose where new tabs open:
- At the end (default) — current behavior, new tabs appear at the end of the tab bar
- After active tab — new tabs open immediately after the currently active tab
- Applies to file dialog opens, external file opens, recent files, and reopened tabs
- Configurable in Settings panel
Restore Last Active Tab
- The app now remembers which tab was active when you last closed it
- On startup, the previously active tab is automatically re-focused instead of defaulting to the last restored tab
v0.9.8
What's New in v0.9.8
Tab Bar Auto-Scroll
- Active tab stays visible — when switching tabs programmatically (opening new tabs, keyboard shortcuts), the tab bar now automatically scrolls to keep the active tab in view. Previously this only happened on manual click.
v0.9.7
What's New in v0.9.7
Tab Bar Overflow Handling
- Scroll arrows —
‹and›arrow indicators appear when tabs overflow the visible area, making it clear there are more tabs in either direction - Mouse wheel scrolling — vertical mouse wheel now scrolls tabs horizontally when hovering over the tab bar (shift+wheel still works too)
- Auto-scroll on click — clicking a partially hidden tab smoothly scrolls it fully into view
- Stable layout — arrow slots are always reserved when overflow exists, preventing layout jumps when arrows appear/disappear
Windows Settings Persistence Fixes
- Atomic writes — settings are now written to a temp file first, then renamed, preventing data loss if the process is killed during a write (e.g., Windows shutdown)
- Crash recovery — if the main settings file is missing or empty, the app recovers from the temp file left by an interrupted write
- UTF-8 BOM handling — settings, profiles, and theme files with a UTF-8 BOM (added by Windows Notepad) are now parsed correctly
- Diagnostic logging — config loading now logs to stderr for troubleshooting (run
ctail.exe 2> debug.logon Windows to capture)
v0.9.6
What's Changed since v0.9.5
⚡ Tail-First Reading for Large Files
- Files larger than 1 MB now display instantly by reading the last portion of the file first, then indexing the full file in the background
- Background indexing is cancellable — switching tabs or closing a file stops unnecessary work
- A loading indicator in the log view shows indexing progress
- Dramatically improves perceived startup time for large log files (multi-MB to GB)
🔧 Tailer Line Reading Improvements
- Refined line reading and offset tracking logic for more reliable streaming
- Improved handling of edge cases during poll cycles
Full Changelog
v0.9.5
What's Changed since v0.9.4
🔧 Configurable Read Timeout for Remote Mounts
- New Read Timeout setting (Settings panel) controls how long ctail waits for file I/O operations on slow or remote file systems (SMB, GVFS, NFS)
- Default increased from 10s → 30s — fixes timeouts on slow SMB/GVFS shares that were previously reported as "file may be on an unreachable mount"
- Adjustable from 5s to 120s to accommodate varying network conditions
- Applies to initial file reads, poll cycles, range reads, and full-file searches
Full Changelog
v0.9.4
What's Changed since v0.9.3
🔍 Full-File Search
- Search now scans the entire file on disk, not just the loaded line buffer
- Match count (e.g. "94 of 108") reflects all matches across the whole file
- Navigating to a match outside the current view automatically loads lines from disk
- Shows "Searching…" indicator while backend scan is in progress
✨ Search Improvements
- Search highlight visible over rule formatting — highlight now takes priority over rule background colors so matches are always visible
- Configurable highlight color — new color picker in Settings (defaults to theme color, with Reset button)
- F3 / Shift+F3 — search forward/backward (opens search bar if not visible)
- Fixed counter reset — navigating to a match outside the loaded window no longer resets the counter to 1
⌨️ New Keyboard Shortcuts
- Ctrl+R — Refresh active tab
- F3 — Find next match
- Shift+F3 — Find previous match
🎨 UI Enhancements
- Custom tab tooltips — hover shows label (bold), file path, and vertical color bar
- Reopen closed tab (Ctrl+Shift+T) — restores label, color, and profile from a stack of up to 20 recently closed tabs. Also in File menu and tab context menu.
🔧 Under the Hood
- Upgraded Wails v2.11.0 → v2.12.0
- Fixed Ctrl+W not calling Go's CloseTab (closed tabs were not tracked for reopen)
Full Changelog
v0.9.3
What's Changed since v0.9.2
✨ New Features
-
Reopen Closed Tab (Ctrl+Shift+T) — Accidentally closed a tab? Reopen it instantly with full metadata restored (label, color, profile). Available via keyboard shortcut, File menu, and tab context menu. Keeps a stack of up to 20 recently closed tabs.
-
Custom Tab Tooltips — Hovering over a tab now shows a styled tooltip with the label (bold, above filename), file path, and a vertical color bar matching the tab's assigned color.
🛡️ Reliability
-
Tailer Staleness Watchdog — Automatically detects when a tailer's offset falls out of sync with the file (e.g., after VPN reconnections or remote PC restarts). Triggers an auto-restart after 2 consecutive stale checks, eliminating the "logging stopped" problem.
-
Panic Recovery — The poll loop now recovers from panics in callbacks, preventing silent goroutine death. Errors are reported via the existing error event system.
-
Close Tab Bug Fix — Ctrl+W and the menu Close Tab action now properly call the Go backend's CloseTab, ensuring the closed-tabs stack is always populated correctly.
📖 Documentation
-
README.md — Rewritten features list covering search bar, tab management, file rotation detection, display/GPU settings, and background optimization. Updated keyboard shortcuts and Known Issues with CLI flags.
-
User Manual — Added Search section, command-line flags table, expanded settings documentation (Display Backend, GPU Rendering), tab context menu items, troubleshooting section for rendering issues.
🧪 Testing
- 7 new resilience tests covering lastDataAt tracking, staleness watchdog (trigger + no false positive + recovery), panic recovery, and Restart timer reset. Total: 73 tests passing.
Full Changelog
v0.9.2
What's New
🔍 VS Code-style Search Bar
- Inline search with case-sensitive (Aa), whole-word (ab), and regex (.*) toggles
- Match counter with ↑↓ navigation (Enter/Shift+Enter)
- Filter mode toggle and Escape to close
🧊 Freeze Prevention
- Event pausing when app is in background
- Non-blocking event emission from Go backend
- Buffer caps (5000 lines) to prevent IPC backlog
- Inactive tabs receive lightweight activity signals instead of full line data
🖥️ Display & GPU Settings
- Display backend setting: Auto-detect (default), X11, or Wayland
- GPU rendering setting: Auto/GPU accelerated (default) or Software rendering
- Fixed XWayland freeze on alt-tab with maximized windows
🔄 File Rotation & Refresh
- Inode-based file replacement detection for log rotation
- Refresh tab option via context menu
- Fixed auto-scroll behavior when scrolling up
Bug Fixes
- Fixed tailer not detecting rotated log files
- Fixed lines not appending when scrolled up
- Poll timeout reduced for snappier updates