Multi-tile tail viewer for terminal
Project description
tailgrid
Multi-tile tail viewer for terminal in under 280 lines of code
A minimal, dependency-free Python tool to monitor multiple log files simultaneously in a single terminal window. Like tail -f, but for up to 9 files at once in a clean tiled layout. Features an interactive file picker and session manager. Tested under Ubuntu and macOS.
Quick start
From PyPI:
pip install tailgrid
tailgrid
From source:
git clone https://github.com/ferreirafabio/tailgrid.git
cd tailgrid
python -m tailgrid
That's it. The interactive menu guides you through selecting files.
Main menu
No Enter key needed - just press the number:
tailgrid - Multi-file tail viewer
1) Browse directory
2) Add paths manually
3) Resume session
q) Quit
Select [1-3]:
Browse directory
Select 1 to browse a directory and pick files interactively:
Directory path: /var/log/
The file picker lets you select multiple files:
Select files from: /var/log/
─────────────────────────────────────
[x] auth.log
[ ] boot.log
[x] syslog
[ ] kern.log
[x] dpkg.log
3/9 selected │ ↑↓/jk nav │ SPACE sel │ a all │ ENTER ok │ q quit
File picker controls:
| Key | Action |
|---|---|
↑/↓ or j/k |
Navigate |
Space |
Select/deselect file (moves to next) |
a |
Select/deselect all |
Enter |
Confirm selection |
q |
Cancel |
Layout is auto-selected based on file count:
- 1 file → Single
- 2 files → Choose vertical or horizontal
- 3-4 files → 2×2 grid
- 5-9 files → 3×3 grid
Session restore
Select 3 from main menu to restore one of the last 10 sessions:
Recent sessions:
0) 2 file(s), 10 lines
• /var/log/syslog
• /var/log/auth.log
1) 4 file(s), 10 lines
• ~/app/logs/error.log
• ~/app/logs/access.log
• ~/app/logs/debug.log
• ~/app/logs/info.log
Select [0-1]:
Sessions are stored in ~/.config/tailgrid/sessions.json.
Manual layout selection
Select 2 to manually enter paths and pick a layout:
Select layout:
1) Single 2) Vertical 3) Horizontal 4) Grid
┌─────┐ ┌──┬──┐ ┌─────┐ ┌──┬──┐
│ 1 │ │ 1│ 2│ │ 1 │ │ 1│ 2│
└─────┘ └──┴──┘ ├─────┤ ├──┼──┤
│ 2 │ │ 3│ 4│
└─────┘ └──┴──┘
Layout [1-4]: 4
Enter 4 file path(s):
[1] /var/log/syslog
[2] /var/log/auth.log
[3] ~/app/logs/error.log
[4] ~/app/logs/access.log
Starting with 4 file(s)...
Viewer controls
| Key | Action |
|---|---|
+ / = |
Show more lines |
- / _ |
Show fewer lines |
r |
Force refresh |
q |
Quit |
Features
- Zero dependencies - Uses only Python 3.10+ standard library (curses, readline)
- Interactive file picker - Browse directories and select files with spacebar
- Up to 9 tiles - Support for 3×3 grid layout
- Auto-layout - Automatically picks best layout based on file count
- Session history - Saves and restores last 10 sessions
- Instant menus - No Enter key needed for menu selections
- Tab completion - Auto-complete file paths when entering manually
- Live updates - Polls files for changes (100ms interval)
- Terminal resizing - Automatically adapts to window size changes
- Clean UI - Minimalistic curses interface with unicode box-drawing
Tests
pip install -e ".[dev]"
python -m pytest tests/ -v
File structure
.
├── LICENSE
├── README.md
├── pyproject.toml
├── tailgrid
│ ├── __init__.py # Package exports
│ └── __main__.py # All the code (~280 lines)
└── tests
├── __init__.py
└── test_tailgrid.py # 21 tests
Requirements
- Python 3.10+
- Linux or macOS (curses is not available on Windows)
License
Apache-2.0
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tailgrid-0.3.0.tar.gz.
File metadata
- Download URL: tailgrid-0.3.0.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee9fe0d0c6533316877a9b2cc5f7634e0b11748410c8f94a7846692302e96aae
|
|
| MD5 |
6a5ba1c0ad753f8e3622e71ce1bdf490
|
|
| BLAKE2b-256 |
fdcdd4694c31c8f3c2b9c85663b614c4b2888e233ca7c264ef323c4c5e30fa61
|
File details
Details for the file tailgrid-0.3.0-py3-none-any.whl.
File metadata
- Download URL: tailgrid-0.3.0-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
258562f15c94066c738c0d7d52cc17560b42768dda58ad3fc01fe9c00029f317
|
|
| MD5 |
262d6d3d71fc60cfd2d0737590258ef2
|
|
| BLAKE2b-256 |
c399192e5fd8cc264aa6642fde8fad1fce162003899cfd92c3b613561153d4b2
|