Devpulse is a cross-platform Go CLI that tracks your development activity, stores hourly snapshots, and produces an end-of-day summary with your preferred LLM provider. The workflow is designed to lean heavily on modern AI assistants and large language models (LLMs)—Devpulse aggregates telemetry, builds safe prompts, and hands them off to engines like OpenAI GPT or Anthropic Claude for AI-generated “What I did today” recaps.
Note: This project was initially vibe coded; the current repository reflects that foundation plus the refinements captured here.
- Git statistics across multiple repositories (commits, files changed, line deltas)
- Terminal history analytics with optional secret redaction
- GitHub review activity (approvals and comments)
- SQLite-backed snapshots with hourly captures and configurable end-of-day rollups
- Provider-agnostic LLM summaries (OpenAI, Anthropic, or other large language models), rendered to local text files
- Configurable collectors and logging with a single background process lock
- Go 1.22 or newer
- macOS, Linux, or Windows
git clone [email protected]:gauravgola/devpulse.git
cd devpulse
make build
# or install directly
go install ./cmd/devpulseThe first run creates a config file at ~/.config/devpulse/config.yaml (0600 permissions). Update it with your repository roots, GitHub token, and LLM credentials:
llm:
provider: openai
model: gpt-4o-mini
api_key: sk-...
github:
token: ghp_...
username: johndoe
collectors:
git:
enabled: true
repo_roots: ["~/Code"]
terminal:
enabled: true
shells: ["zsh", "bash"]
github:
enabled: true
runtime:
eod_hour_local: 20
lookback_hours: 24
redact_secrets: true
logging:
level: infoUseful configuration helpers:
devpulse config --print– view active settingsdevpulse config --set llm.provider=anthropic– update keys via dot notationdevpulse config --edit– open the file in$EDITOR
devpulse start– start the scheduler, acquire the PID lock, and capture hourly snapshotsdevpulse stop– signal the running scheduler using the PID filedevpulse info– inspect the latest snapshot and stored daily summarydevpulse config– manage configuration valuesdevpulse history --history 5– print the last five AI summaries (tune the number as needed)devpulse summarize [--force]– generate an immediate EOD summary; add--forceto capture a fresh snapshot first
Summaries are written under ~/.local/share/devpulse/summary-YYYY-MM-DD.txt and stored in the llm_summaries table.
make test– run unit and integration tests (uses vendored modules)make lint– executego vetmake build– build all packages with vendored dependencies
The repository vendors external modules so testing works offline. Tests rely on temporary directories and mock transports; they should not touch your home directory or live Git repositories.
- Only metadata (counts, filenames, command frequencies) is collected; source code is never stored or transmitted
- Terminal commands are redacted for obvious secret markers
- All credentials live in
~/.config/devpulse/config.yamlwith0600permissions - Summaries and databases are local to your machine, under
~/.local/share/devpulse
MIT