Skip to main content

Multi-tile tail viewer for terminal

Project description

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 pathtailgrid /path/ auto-selects log files (configurable via config.json)
  • Claude integrationtailgrid --claude lets Claude identify relevant logs to monitor
  • Up to 9 tiles — auto-layout, auto-height
  • Scroll modeEnter 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

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

tailgrid-0.6.0.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tailgrid-0.6.0-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file tailgrid-0.6.0.tar.gz.

File metadata

  • Download URL: tailgrid-0.6.0.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for tailgrid-0.6.0.tar.gz
Algorithm Hash digest
SHA256 36a4c47c89a833a967f4b31e0ad866a2f08ba8cfffa97eebcc5abc99567de02b
MD5 07c083e4443719c44f49021807d61163
BLAKE2b-256 69ba1a1cac048d12011ea51d001af95928df58312dec3926c4ec427b7af17cb3

See more details on using hashes here.

File details

Details for the file tailgrid-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: tailgrid-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for tailgrid-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 145a062f4d9f523cada4ddbe56de2886054ef0873c1ab5f24633c872f20047aa
MD5 42c50f8d6d65f7713cec831fdf23383c
BLAKE2b-256 1d9b0f3976bb40b4c0bcf81755aec8117a4806a8f56693a97bbda6e32995823a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page