Skip to content

DevPulse

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.

License: GPL-3.0 Go Release


Why DevPulse

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.


Installation

From source (Go 1.25+)

go install github.com/Nishanth1812/devpulse@latest

Prebuilt binaries

Download 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.txt

Note: Binary downloads are unsigned. See SECURITY.md for details.

Shell completion

# 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-Expression

Getting Started

1. Add an API key

DevPulse 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 key

You can also set GROQ_API_KEY or GEMINI_API_KEY as environment variables — useful in CI.

2. Register repositories

devpulse register /path/to/my-repo

3. Create your goals file

devpulse init

This 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.

4. Run your first briefing

devpulse brief

Commands

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

Repo name matching

Commands that take a repo argument accept partial names:

devpulse resume acm    # resolves to ACM-APP-BACKEND
devpulse resume nut    # resolves to nutrition-tracker

If multiple repos match, DevPulse prints a numbered list. Tab-completion is supported for all repo-argument commands.


Configuration

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 50

Privacy & Security

DevPulse 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-run prints exactly what would be sent without calling any API.
  • --redact-diff strips all diff content for low-trust codebases.

See SECURITY.md for the full data-flow and secret-handling documentation.


Development

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.


Contributing

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.


License

This project is licensed under the GNU General Public License v3.0. See LICENSE for the full text.

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages