2 releases
| 0.1.1 | Apr 12, 2026 |
|---|---|
| 0.1.0 | Apr 12, 2026 |
#292 in Development tools
60KB
1.5K
SLoC
recap
A passive terminal activity tracker that summarizes what you did yesterday.
$ recap
── April 06 ──────────────────────────────────────
14h recap ~/repos/recap (43 sec)
[edit] src/main.rs · Cargo.toml
[run] cargo ×4 · git ×2
16h notgalerie ~/repos/notgalerie (12 sec)
[edit] index.html
[run] npm · git
No AI, no cloud, no telemetry. Just SQLite on your machine.
How it works
recap hooks into your shell and silently records every command — timestamp,
working directory, exit code, and duration. When you run recap, it groups
everything by project and hour so you can see what you worked on at a glance,
without changing how you work.
Sensitive commands (passwords, tokens, secrets) are filtered automatically and never written to disk.
Install
Requirements: Rust (via rustup)
cargo install shellcap
recap --install
recap --import
Or from source:
git clone https://github.com/NOT16180/recap
cd recap
cargo install --path .
recap --install
recap --import
--install adds shell hooks to your config file and detects your shell automatically.
--import bootstraps from your existing shell history so you get data right away.
Usage
recap Yesterday's activity (default)
recap --yesterday Yesterday's activity
recap --today Today so far
recap --date <YYYY-MM-DD> Activity for a specific date
recap --timeline Hour-by-hour timeline for yesterday
recap --timeline --today Hour-by-hour timeline for today
recap --timeline --date X Hour-by-hour timeline for a specific date
recap --stats This week's stats
recap --week <n> Stats for n weeks ago
recap --streak Current and longest activity streak
recap --search <query> Search command history
recap --project <name> Filter by project name
recap --export [json|csv] Export all events (default: json)
recap --prune [days] Delete events older than N days (default: 90)
recap --import Import from shell history
recap --install Set up shell integration
recap --uninstall Remove shell integration
recap --version, -V Show version
recap --help Show help
Configuration
Add custom aliases in ~/.config/recap/aliases.toml:
[aliases]
nv = "nvim"
g = "git"
gp = "git push"
cb = "cargo build"
The following aliases are built in by default:
| Alias | Expands to |
|---|---|
g |
git |
ga |
git add |
gc |
git commit |
gp |
git push |
gl |
git pull |
gst |
git status |
gd |
git diff |
gco |
git checkout |
gb |
git branch |
nv |
nvim |
v |
vim |
cb |
cargo build |
cr |
cargo run |
ct |
cargo test |
Data
Everything is stored locally:
~/.local/share/recap/recap.db— SQLite database~/.local/share/recap/events.tsv— live buffer, flushed on each run~/.config/recap/hooks.zsh— zsh hooks installed by--install~/.config/recap/hooks.bash— bash hooks installed by--install~/.config/fish/conf.d/recap.fish— fish hooks installed by--install
No data leaves your machine.
Shell support
| Shell | Status |
|---|---|
| zsh | Supported |
| bash | Supported |
| fish | Supported |
License
MIT
Dependencies
~32MB
~587K SLoC