Skip to main content

Multi-tile tail viewer for terminal

Project description

CI PyPI Downloads

 ┌──────┬──────┬──────┐   ████████╗ █████╗ ██╗██╗      ██████╗ ██████╗ ██╗██████╗
 │ tail │ tail │ tail │   ╚══██╔══╝██╔══██╗██║██║     ██╔════╝ ██╔══██╗██║██╔══██╗
 ├──────┼──────┼──────┤      ██║   ███████║██║██║     ██║  ███╗██████╔╝██║██║  ██║
 │ tail │ tail │ tail │      ██║   ██╔══██║██║██║     ██║   ██║██╔══██╗██║██║  ██║
 └──────┴──────┴──────┘      ██║   ██║  ██║██║███████╗╚██████╔╝██║  ██║██║██████╔╝
                             ╚═╝   ╚═╝  ╚═╝╚═╝╚══════╝ ╚═════╝ ╚═╝  ╚═╝╚═╝╚═════╝

                          watch multiple files · grid-view · one terminal · zero deps
tailgrid screenshot

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. ~250 lines of code. Tested on Ubuntu and macOS.

Features

  • Zero dependencies (Python 3.10+ standard library only)
  • Up to 9 tiles in a 3×3 grid layout
  • Auto-layout based on file count
  • Session history (saves last 10 sessions)
  • Interactive file picker with directory browsing
  • Tab completion for manual path entry
  • Live updates (100ms polling)
  • Terminal resize support

Viewer controls: +/- adjust lines | r refresh | q quit

Quick start

From PyPI:

pip install tailgrid
tailgrid

Quick start with path (auto-selects .txt and .log files, max 9, newest first):

tailgrid /var/log/

From source:

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

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.

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.3.3.tar.gz (13.8 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.3.3-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tailgrid-0.3.3.tar.gz
Algorithm Hash digest
SHA256 5ae1dbd2ffca167e1164257f4c38124a66394786c43af16b913200a992887f60
MD5 3b058c27419b1d583b6d18c7a595b3d2
BLAKE2b-256 5e70ba2e20ae52475b302333693b53fdd4606fe4ea111ef629726d3110884740

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tailgrid-0.3.3-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

Hashes for tailgrid-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f18a005bc3bcbe75b475b357393c0883be0c0e3ede427f1c53097fe5fd60fb60
MD5 01f056028056313f167097249d25520f
BLAKE2b-256 ce97cf7ea06a3ed14d73ffabd24ce7e974a3d459630b1d0c1bc91f96116c1933

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