Every agent.
Every file.
One timeline.

A terminal Gantt timeline of coding-agent sessions and the files they touched. antty reads omp, Claude Code and Codex CLI session logs, watches your working tree, and attributes every change to the tool call that made it.

$git clone https://github.com/filipkristofiak/antty && cd antty && cargo install --path .

macOS · Linux · Rust 1.88+ · MIT OR Apache-2.0 · v0.2.9

3

HARNESSES · OMP · CLAUDE CODE · CODEX CLI

16

ZOOM LEVELS · 10S → 1D

35

KEYS · VIM GRAMMAR

1s

LIVE TAIL INTERVAL

Synthetic project and sessions. Layout, glyphs, colours and keys are antty's own.

Vim reflexes.

A key that does the wrong thing (false friend) is worse than a key that does nothing (dead key).

Run

antty

Run inside a project directory.

antty --project <PROJECT>

Project root to show sessions for. Defaults to the current directory.

antty --omp-dir <OMP_DIR>

Root directory of omp's session jsonl files (default: ~/.omp/agent/sessions).

antty --claude-dir <CLAUDE_DIR>

Claude Code projects directory holding its session jsonl files (default: $CLAUDE_CONFIG_DIR/projects, else ~/.claude/projects).

antty --codex-dir <CODEX_DIR>

Codex sessions directory holding its rollout jsonl files (default: $CODEX_HOME/sessions, else ~/.codex/sessions).

antty --state-dir <STATE_DIR>

Directory used to persist watcher-observed filesystem changes (default: $XDG_STATE_HOME/antty, else ~/.local/state/antty).

antty --no-watch

Disable the live filesystem watcher.

antty --no-worktrees

Show only --project itself, not the other Git worktrees of its repository.

antty --separate-worktrees

Start with each Git worktree in its own FILES group instead of one merged tree (toggle with w).

antty --no-collapse-gaps

Keep the timeline linear instead of collapsing idle stretches into ~ breaks.

antty --idle-gap <IDLE_GAP>

Idle gap (seconds) used to merge raw activity intervals into spans. (default: 30)

Drive

Move

  • [count]

    repeat: 5j 10l 2H 3n 2} 3Ctrl-e …

  • jk↓↑

    row down/up

  • ggG

    first/last row; [count]: row N

  • {}

    prev/next section header

  • Ctrl-dCtrl-u

    half page down/up; [count]: N rows

  • Ctrl-fCtrl-b

    page down/up

  • Ctrl-eCtrl-y

    scroll rows down/up by one

  • zzztzb

    selected row to middle/top/bottom

Time

  • hl←→

    time cursor ±1 column

  • 0$

    time cursor to view start / now

  • HL

    pan by half the pane width

  • +-

    zoom in/out

  • t

    cursor to now, pinned near the right edge

  • f

    fit all activity, latest near the right edge

  • c

    collapse idle stretches into ' ~ ' breaks on/off

Fold & filter

  • Spaceza

    toggle dir/session; on a file: collapse its dir

  • zozc

    open/close; zc on a file or closed dir: its parent

  • zOzC

    open/close recursively

  • zMzR

    collapse/expand all dirs

  • a

    auto-expand the focused session's files on/off

  • T

    touched-only

  • w

    worktrees: merged/separate FILES view

Look

  • /

    search row names (smartcase); Enter jumps to the next match

  • nN

    next/prev search match; no search: next/prev activity on the row

  • Enter

    open Detail for the selected row

  • Enter (Detail)

    full-screen diff of selected event

  • e

    open file in $EDITOR, or the parent Neovim when $NVIM is set (file rows, Detail, Diff)

  • D

    diff of selected event in delta (Detail, Diff); needs delta on PATH

  • s

    session picker

  • ?

    this help, from any view; closing returns there

Leave

  • :q⏎ZZZQ

    quit

  • Ctrl-C

    hint: quit with :q⏎

  • Ctrl-z

    suspend to the shell; fg resumes

  • :/ line

    Ctrl-U clear · Ctrl-W delete word · ↑/↓ history

  • qEsc

    close overlay; Esc also cancels a count/prefix and clears the search

Know who touched what.

One binary, built from source. Run it inside any project and every agent session for that directory shows up, live.

$git clone https://github.com/filipkristofiak/antty && cd antty && cargo install --path .

Prerequisite: Rust 1.88+ via rustup · Homebrew Rust: rustup run stable cargo install --path .

Reads ~/.omp/agent/sessions · ~/.claude/projects · ~/.codex/sessions

Writes ~/.local/state/antty

Uninstall: cargo uninstall antty