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 . HARNESSES · OMP · CLAUDE CODE · CODEX CLI
ZOOM LEVELS · 10S → 1D
KEYS · VIM GRAMMAR
LIVE TAIL INTERVAL
Synthetic project and sessions. Layout, glyphs, colours and keys are antty's own.
A key that does the wrong thing (false friend) is worse than a key that does nothing (dead key).
anttyRun 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-watchDisable the live filesystem watcher.
antty --no-worktreesShow only --project itself, not the other Git worktrees of its repository.
antty --separate-worktreesStart with each Git worktree in its own FILES group instead of one merged tree (toggle with w).
antty --no-collapse-gapsKeep 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)
repeat: 5j 10l 2H 3n 2} 3Ctrl-e …
row down/up
first/last row; [count]: row N
prev/next section header
half page down/up; [count]: N rows
page down/up
scroll rows down/up by one
selected row to middle/top/bottom
time cursor ±1 column
time cursor to view start / now
pan by half the pane width
zoom in/out
cursor to now, pinned near the right edge
fit all activity, latest near the right edge
collapse idle stretches into ' ~ ' breaks on/off
toggle dir/session; on a file: collapse its dir
open/close; zc on a file or closed dir: its parent
open/close recursively
collapse/expand all dirs
auto-expand the focused session's files on/off
touched-only
worktrees: merged/separate FILES view
search row names (smartcase); Enter jumps to the next match
next/prev search match; no search: next/prev activity on the row
open Detail for the selected row
full-screen diff of selected event
open file in $EDITOR, or the parent Neovim when $NVIM is set (file rows, Detail, Diff)
diff of selected event in delta (Detail, Diff); needs delta on PATH
session picker
this help, from any view; closing returns there
quit
hint: quit with :q⏎
suspend to the shell; fg resumes
Ctrl-U clear · Ctrl-W delete word · ↑/↓ history
close overlay; Esc also cancels a count/prefix and clears the search
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 .