Inspiration
I made a simple observation while working with terminals: terminals are where people do real work, but the history of that work is hard to reuse or share. I wanted a small, reliable tool that makes command history useful beyond the current session — for recalling steps, and reproducing my work.
What it does
- Automatically records every executed command with context.
- Stores history efficiently in an SQLite-backed store database.
- Provides a small CLI for browsing, searching, and safely re-running commands.
- Offers a terminal UI for navigating directory-organized history.
Example commands:
tracker setup # configure shell integration
tracker history # show recent history for current directory
tracker browse # interactive browser
tracker search "git" # text search across all history
How we built it
- Language & tools: written in Go to create a single cross-platform binary and to make the internals easily importable as a library.
- Architecture: tiny, well-defined interfaces separate concerns —
CommandInterceptorfor capturing command,StorageEnginefor persisting data,HistoryBrowserfor UI, andExecutorfor safe re-execution. - Storage: SQLite (via
modernc.org/sqlite) gives a compact, fast database that works everywhere without extra services. -UI: I usedbubbleteato build an interactive terminal UI experience andcobrato configure CLI commands. - Tests: to ensure reliability across shells and platforms, I tested the core flows using unit and integration tests.
Challenges we ran into
- Setting up shell hooks was a challenge which prevented the interceptors from recording commands automatically.
Accomplishments that we're proud of
- Cross-platform support out of the box (PowerShell, Bash, Zsh, and Cmd) with automated setup helpers.
- Great User Experience: The terminal UI is well documented and easy enough for anyone to setup and start using immediately.
Log in or sign up for Devpost to join the conversation.