Skip to main content

CI PyPI Downloads

 ┌──────┬──────┬──────┐   ████████╗ █████╗ ██╗██╗      ██████╗ ██████╗ ██╗██████╗
 │ tail │ tail │ tail │   ╚══██╔══╝██╔══██╗██║██║     ██╔════╝ ██╔══██╗██║██╔══██╗
 ├──────┼──────┼──────┤      ██║   ███████║██║██║     ██║  ███╗██████╔╝██║██║  ██║
 │ tail │ tail │ tail │      ██║   ██╔══██║██║██║     ██║   ██║██╔══██╗██║██║  ██║
 ├──────┼──────┼──────┤      ██║   ██║  ██║██║███████╗╚██████╔╝██║  ██║██║██████╔╝
 │ tail │ tail │ tail │      ╚═╝   ╚═╝  ╚═╝╚═╝╚══════╝ ╚═════╝ ╚═╝  ╚═╝╚═╝╚═════╝
 └──────┴──────┴──────┘
                          watch multiple files · grid-view · one terminal · zero deps
tailgrid demo

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. Tested on Ubuntu and macOS.

Features

  • Zero dependencies — Python 3.10+ standard library only
  • Quick path — tailgrid /path/ auto-selects log files (configurable via config.json)
  • Claude integration — tailgrid --claude lets Claude identify relevant logs to monitor
  • Up to 9 tiles — auto-layout, auto-height
  • Scroll mode — Enter to enter, ↑↓/u/d/gg/G to scroll
  • Session restore — saves last 10 sessions

Viewer: ←→↑↓: Nav | Enter: Scroll mode (↑↓ u/d gg/G) | q: Quit

Quick start

From PyPI:

pip install tailgrid
tailgrid

Quick start with path (auto-selects .txt/.log/.out/.err files, newest first):

tailgrid /var/log/       # selects all files up to 9 (newest)
tailgrid /var/log/ 4     # 4 newest files shown in 2x2 grid

From source:

git clone https://github.com/ferreirafabio/tailgrid.git
cd tailgrid
python -m tailgrid

Claude integration

If you have Claude Code installed, let Claude intelligently select relevant log files:

tailgrid --claude

Claude analyzes your current session, recent experiments, and active projects to find the most relevant log files. Each tile shows Claude's reasoning for why it selected that file:

┌─ 1:...server.log ─────────┐┌─ 2:...error.log ────────────┐
│ [2024-01-15] Starting...  ││ [ERROR] Connection failed   │
└───────────────────────────┘└─────────────────────────────┘
 Claude: Production server - main application logs, request handling
 [1] 42 lines │ w: Wrap │ Enter: Scroll │ ←→↑↓: Nav │ q: Quit

Menu

  tailgrid - Multi-file tail viewer

    1) Browse directory
    2) Add paths manually
    3) Resume session

  Select 1-3 (q=quit):

Browse directory

Select 1 to browse a directory and pick files interactively:

  Directory path (b=back, q=quit): /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

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

Resume session

Select 3 from 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 (b=back, q=quit):

Sessions are stored in ~/.config/tailgrid/sessions.json.

Config

Customize settings via ~/.config/tailgrid/config.json:

{
  "extensions": [".txt", ".log", ".out", ".err", ".json"],
  "show_full_path": false,
  "claude_prompt": "Return absolute paths to FILES..."
}
  • extensions: File types for quick-start (default: .txt, .log, .out, .err)
  • show_full_path: Show full path in tile headers instead of filename (default: false)
  • claude_prompt: Custom prompt for --claude mode (default: asks for relevant logs with descriptions)

Add paths manually

Select 2 to manually enter paths and pick a layout:

  Select layout:

    1) Single        2) Vertical      3) Horizontal    4) 2x2 Grid     5) 3x3 Grid
       ┌─────┐          ┌──┬──┐          ┌─────┐          ┌──┬──┐         ┌──┬──┬──┐
       │  1  │          │ 1│ 2│          │  1  │          │ 1│ 2│         │ 1│ 2│ 3│
       └─────┘          └──┴──┘          ├─────┤          ├──┼──┤         ├──┼──┼──┤
                                         │  2  │          │ 3│ 4│         │ 4│ 5│ 6│
                                         └─────┘          └──┴──┘         ├──┼──┼──┤
                                                                          │ 7│ 8│ 9│
                                                                          └──┴──┴──┘

  Layout 1-5 (b=back, q=quit): 4

  Enter 4 file path(s) (b=back, q=quit):

    [1] /var/log/syslog
    [2] /var/log/auth.log
    [3] ~/app/logs/error.log
    [4] ~/app/logs/access.log

  Starting with 4 file(s)...

Requirements

  • Python 3.10+
  • Linux or macOS (curses is not available on Windows)

License

Apache-2.0

Metadata

Release files for tailgrid 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tailgrid 0.6.0
File Size Uploaded Provenance
tailgrid-0.6.0.tar.gz 17.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for tailgrid 0.6.0
File Interpreter ABI Platform
tailgrid-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 33.5 kB

Release files / tailgrid-0.6.0.tar.gz

Download URL tailgrid-0.6.0.tar.gz
Size 17.6 kB
Tags Source
SHA-256 checksum
How to use checksums
36a4c47c89a833a967f4b31e0ad866a2f08ba8cfffa97eebcc5abc99567de02b
BLAKE2b-256 checksum
How to use checksums
69ba1a1cac048d12011ea51d001af95928df58312dec3926c4ec427b7af17cb3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.12

Release files / tailgrid-0.6.0-py3-none-any.whl

Download URL tailgrid-0.6.0-py3-none-any.whl
Size 16.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
145a062f4d9f523cada4ddbe56de2886054ef0873c1ab5f24633c872f20047aa
BLAKE2b-256 checksum
How to use checksums
1d9b0f3976bb40b4c0bcf81755aec8117a4806a8f56693a97bbda6e32995823a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.12

Security for tailgrid 0.6.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page