Terminal habit tracker. Tracks daily and weekly habits with streaks and history, all stored locally in SQLite.
cadence Β· Show up. Every day.
Sunday, June 14
ββββββββββββββββββββββββββββ 4/5 Β· 80%
β Drink water [daily] π₯3
β Read [daily] π₯3
β Meditate [daily] π₯1
β Exercise [weekly] π₯1
β Journal [daily]
This week on a roll π
βββββββ Drink water 7x [daily]
βββββββ Read 7x [daily]
βββββββ Meditate 5x [daily]
βββββββ Exercise 2x [weekly]
βββββββ Journal 4x [daily]
Requires Go 1.25+ and Ollama (only needed for name-based habit lookup).
go install https://github.com/ibnaleem/cadence@latestgit clone https://github.com/ibnaleem/cadence
cd cadence
go install .Pull the embedding model used by done <name> and the duplicate check in add:
ollama pull embeddinggemma:latestcadence Show today's dashboard
cadence setup Initialise the database (auto-runs on first use)
cadence add Add a new habit
cadence list List all habits
cadence done Log a habit completion for today
cadence edit Update a habit's name or description
cadence delete Remove a habit and its history
cadence streak Show current streak for each habit
cadence add "Drink water"
cadence add "Read" --description "30 mins before bed" --frequency weeklyFlags: --description / -d, --frequency / -f (default: daily).
If Ollama is running, add checks whether a similar habit already exists before inserting. If the similarity score crosses the threshold, it prompts you before proceeding.
cadence done 1 # by ID, no Ollama needed
cadence done "drink water" # by name, uses cosine similarity to find the best matchcadence edit 1 --name "Drink 8 glasses"
cadence edit 1 --description "Before every meal"
cadence edit 1 --name "Drink 8 glasses" --description "Before every meal"cadence delete 1Deletes the habit and all its completions.
cadence streak Drink water π₯ 7-day streak
Read π₯ 3-day streak
Meditate no streak
A streak counts consecutive days ending today or yesterday. Miss a day and it resets.
Everything lives in ~/.cadence/cadence.db. No cloud sync, no telemetry, nothing leaving your machine.
go build ./... # build
go run . # run
go test ./... # test
go vet ./... # vetThis project is licensed under the GNU General Public License - see the LICENSE file for details.