FAQ (answers come from our records)
How do I install it?
The repository provides this install command: go install github.com/achandrapaul/digest/cmd/digest@latest. It comes from the repository itself; we cannot guarantee it runs as-is in your client.
Who is it for?
We filed it under these tags: 开源项目. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository achandrapaul/digest;first catalogued 2026-10-14;last seen 2026-10-16。There is no official certification or quality rating here — we record sources and dates only.
digest
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
Digest your day-to-day work without acidity. A terminal dashboard for macOS that keeps your notes, pull requests, reviews and git activity in one place, with reminders and weekly brag summaries.
Install
Homebrew:
If Homebrew's nss is installed it already provides a digest command, so link this one over it:
Go:
Prebuilt macOS binaries for Apple Silicon and Intel are on the releases page.
From source, with mise:
Run mise run hooks once so every commit runs the tests first.
Setup
After installing, run this once:
It runs the four setup steps in order and retries a step once if it fails, printing the error each time; if the retry fails too it stops and exits with an error.
1. digest install installs any missing tools with Homebrew and the launchd agent that sends reminders, then asks before adding a keyboard shortcut that opens digest.
2. digest doctor lists every tool digest uses, whether it was found and which feature needs it, and warns about unknown keys in config.yaml. It fails when a required tool is missing.
3. digest init writes the default config.yaml. Bootstrap keeps one that already exists.
4. digest setup walks through git roots, work days, summaries, hints and notifications. You can also open it from the dashboard with ,, and the first run of digest starts it on its own.
Each step also runs on its own with the command shown.
Usage
Inside the dashboard, , opens settings and the footer lists the keys for the current screen.
Migrate
Quit the dashboard and run this after every version update to keep your notes safe:
digest migrate --dry-run changes nothing and prints what it would do.
Notes are named after their id and status: .md while active, - .done.md once done and - .archived.md once archived, so the dashboard only opens the files it shows. Migrate renames older notes, gives old and PR notes timestamp ids, and moves their reminders with them. It also moves the old top-level retention_days and janitor_patterns into the janitor job's options:, removes the commands of built-in jobs (their --root values become the roots option), adds automation_type to built-in automations that lack it, adds the google calendar automation once when it's missing (delete it and it stays deleted) and removes the retired git_auto_sync_interval. Running it again changes nothing.
Digest locks every file it writes under the digest root (the macOS uchg flag), so other programs can read them but can't edit, rename or delete them; digest unlocks a file only while it changes it. reviews/, logs/, *.log files and config.yaml stay unlocked because other tools use them. Migrate locks existing files and creates .app.state.json (your first note's date and your streak) if it doesn't exist yet, so the brag list and header are right from the first frame. To unlock by hand: chflags -R nouchg ~/digest.
Built-in jobs
branch-reaper, janitor and repo-sync are built into digest, commands and dry-run commands included; config.yaml never holds their commands. Without a jobs: section, or with a job left out of it, digest runs them with its defaults. To change one, list it under jobs: with its name and options: only:
Every option reaches the job as a DIGEST_OPTION_ environment variable, with lists comma-joined, whether it runs from the dashboard or the shell; built-in jobs ignore options they don't know. roots defaults to ~/Projects for branch-reaper and repo-sync and ~ for janitor, and --root on the command line overrides it. Quote a lone ~, since YAML reads a bare ~ as empty. Putting command or dry-run-command on a built-in job is a config error; digest migrate removes them and turns their --root values into the roots option. Jobs with any other name are your own and keep their command and optional dry-run-command.