Terminal-native time tracking, built in Rust. Tracks work sessions across customers and projects with Claude Code integration for automatic session tracking.
cargo install --path crates/focused-clifocus init # set up time tracking in a repo
focus start # start a timer
focus stop --description "refactored auth" # stop timer, log entry
focus report --today # quick summary
focus # launch the TUI dashboard| Command | Description |
|---|---|
focus |
Launch the full-screen TUI dashboard |
focus init |
Set up time tracking in the current repo |
focus start [--customer NAME] |
Start a timer |
focus stop --description "..." |
Stop the active timer and log an entry |
focus log DURATION --description "..." |
Log a past work session |
focus status |
Show active timer info |
focus report --today|--week|--month |
Print a time summary |
focus update ID [--description "..."] |
Update an entry |
focus update --customer X --set bill_amount=150/USD |
Bulk update entries |
focus export --format csv --month |
Export entries for invoicing |
focus sync |
Rebuild the global database from JSONL files |
focus doctor [--fix] |
Diagnose and repair setup issues |
focus hooks install|uninstall|status |
Manage Claude Code hooks |
focus customers list|add|remove |
Manage the customer list |
focus menubar |
Launch the macOS menu bar companion |
Focused integrates with Claude Code via hooks for automatic session tracking:
focus init
# Say yes when prompted to install Claude Code hooksThis installs three hooks:
- SessionStart -- automatically starts a timer when Claude begins a session
- SessionEnd -- auto-closes the timer if Claude didn't stop it explicitly
- Stop -- nudges Claude to call
focus stop --description "..."with a summary
A lightweight menu bar companion shows the running timer in the system tray:
focus menubarThe menu bar displays a live-updating elapsed timer and provides quick start/stop controls.