Regain the context you lose between coding sessions.
DevPulse is a fast, local-first CLI that reads your Git history and your own plans, and uses an LLM to bring you back up to speed across all your repositories. It turns the first fifteen minutes of "where was I?" into an instant briefing — grounded in your actual code history and stated intentions, not generic productivity advice.
Jumping between multiple repositories means re-establishing context every time you come back. Old commits, WIP messages, half-finished features, plan files that never got connected to what you actually shipped — it all costs time and mental energy.
DevPulse fixes that by answering three questions about your repos:
- What is in flight right now?
- What did I start but not finish?
- What should I work on next?
Every suggestion is grounded in your commit diffs, your PLAN.md/ROADMAP.md files, and your personal goals file.
go install github.com/Nishanth1812/devpulse@latestDownload the archive for your platform from the Releases page.
| Platform | Arch | File |
|---|---|---|
| Linux | x86_64 / arm64 / i386 | devpulse_Linux_*.tar.gz |
| macOS | Universal / arm64 / x86_64 | devpulse_Darwin_all.tar.gz |
| Windows | x86_64 / arm64 / i386 | devpulse_Windows_*.zip |
Verify a download against the published checksums:
sha256sum -c checksums.txtNote: Binary downloads are unsigned. See SECURITY.md for details.
# bash
devpulse completion bash > /etc/bash_completion.d/devpulse
# zsh
devpulse completion zsh > "${fpath[1]}/_devpulse"
# fish
devpulse completion fish > ~/.config/fish/completions/devpulse.fish
# powershell
devpulse completion powershell | Out-String | Invoke-ExpressionDevPulse needs either a Groq or Gemini API key to power the LLM commands. Keys are stored in your OS keychain, never in a config file.
devpulse auth # store a Groq API key
devpulse auth -p gemini # store a Gemini API keyYou can also set GROQ_API_KEY or GEMINI_API_KEY as environment variables — useful in CI.
devpulse register /path/to/my-repodevpulse initThis creates ~/.devpulse/goals.md with four optional sections that DevPulse reads to prioritise your work:
## Now
Things you are actively trying to finish this sprint or week.
## Next
Things that become active once the Now items are done.
## Deadlines
Hard dates. Format: YYYY-MM-DD — description.
## Someday
Projects or ideas you are not touching now but do not want to forget.
devpulse brief| Command | Description |
|---|---|
devpulse brief |
Cross-repo summary of what's in-flight, blocked, and stale (default command) |
devpulse resume <repo> |
Deep context recovery for one repo — what you built, what's incomplete, next step |
devpulse focus |
Ranks all repos by completion proximity, weighted against your goals |
devpulse health |
Per-repo hygiene scan (rule-based, no LLM) |
devpulse why <repo> <file> |
File-level archaeology — narrate every significant decision in a file |
devpulse commit |
Generate a Conventional Commit message from staged changes |
devpulse note add/list |
Attach markdown notes to registered repositories |
devpulse register |
Register a repository path |
devpulse unregister |
Remove a repository |
devpulse list |
List all registered repositories |
devpulse init |
Create the goals file scaffold |
devpulse auth |
Store an API key in the OS keychain |
devpulse config get/set |
Read and update configuration |
devpulse doctor |
Run environment diagnostics |
devpulse debug collect |
Dump collected repo data as JSON |
devpulse version |
Print version and build metadata |
Commands that take a repo argument accept partial names:
devpulse resume acm # resolves to ACM-APP-BACKEND
devpulse resume nut # resolves to nutrition-trackerIf multiple repos match, DevPulse prints a numbered list. Tab-completion is supported for all repo-argument commands.
Config lives at ~/.devpulse/config.toml. It stores only non-sensitive settings — registered repository paths, model preference, and cache duration. API keys are never stored here.
devpulse config get model.fast
devpulse config set model.fast gemini-2.0-flash
devpulse config set fuzzy.threshold 50DevPulse is local-first and telemetry-free:
- Only commit messages, compressed diffs, plan summaries, and your goals file are sent to the AI provider — never full file contents.
- API keys stay in your OS keychain.
- All prompts are scanned for secrets (API keys, tokens, JWTs, PEM keys) and redacted before sending.
--dry-runprints exactly what would be sent without calling any API.--redact-diffstrips all diff content for low-trust codebases.
See SECURITY.md for the full data-flow and secret-handling documentation.
Get the source and set up the toolchain:
git clone https://github.com/Nishanth1812/devpulse.git
cd devpulse
go build ./...Run the test suite and vet:
go test ./...
go vet ./...DevPulse uses Conventional Commits to drive the automatically-grouped release changelog.
Contributions are welcome — bug fixes, docs, features, ideas. See CONTRIBUTING.md for the setup guide, issue triage, and PR process.
Please review our Code of Conduct and report security issues via SECURITY.md rather than public issues.
This project is licensed under the GNU General Public License v3.0. See LICENSE for the full text.