- Rust 97.5%
- HTML 2.5%
- devflow setup-mcp: automatically writes devflow MCP entry into Claude Desktop config (cross-platform, atomic write, --force flag) - output.rs: fix header box alignment using chars().count() instead of byte len(); pad meta row to match title width exactly - watch: use graph events (not raw events) for live scrolling output; previously showed blank, now streams full event history - standup: show PR URLs in dimmed text after each entry - serve: auto-open browser at http://localhost:<web_port>/ on startup - explain-pr/find-blockers/timeline: auto-detect repo from git remote (falls back to any-repo search if detected repo has no matches) - main.rs: add open_browser() helper, detect_repo_from_git_remote() - Cargo.toml: update repo/homepage URLs to quintenkasteel/devflow - demo: re-recorded GIF with FontSize 18, Framerate 60, improved scenes (watch now shows scrolling events; scene 7 is mermaid export) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .github/workflows | ||
| crates | ||
| demo | ||
| src | ||
| tests | ||
| .devflow.toml.example | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| README.md | ||
⚡ DevFlow Graph
A real-time, queryable system graph of your development activity. Stop asking "why is this PR stuck?" — just ask DevFlow.
Record the demo:
./demo/record.sh(requiresvhsor Docker)
The problem
You have 30 open PRs. Three are stuck. You don't know which ones, why, or for how long.
DevFlow connects GitHub, GitLab, Sentry, and Jira into a living graph you can query from the terminal — or let Claude query for you.
Demo
$ devflow explain-pr 42
┌─────────────────────────────────────────────────────────────────┐
│ PR #42 · fix: handle null response in auth middleware │
│ author: octocat · state: Open · repo: acme/devflow │
└─────────────────────────────────────────────────────────────────┘
⚡ BLOCKERS (2)
● CI failing: test-suite (since 2h ago)
● bob requested changes
🔍 CI STATUS 3 checks
✓ lint passed
✗ test-suite failed
● integration-tests pending
👥 REVIEWS
✓ alice Approved
✗ bob Changes requested
○ carol Pending
🎯 NEXT ACTIONS
→ Resolve: CI failing: test-suite
→ Resolve: bob requested changes
Features
| Command | What it does |
|---|---|
devflow explain-pr 42 |
Full PR story: blockers, CI, reviews, next actions |
devflow find-blockers |
All stuck PRs, sorted by time stuck |
devflow watch |
Live stream of all dev activity |
devflow standup |
Auto-generated standup notes |
devflow dora |
DORA metrics: frequency, lead time, CFR, MTTR |
devflow graph-show |
Interactive TUI |
devflow timeline 42 |
Full event history for a PR |
devflow replay --from 2025-01-15T09:00:00Z |
Time-travel: reconstruct any past graph state |
devflow export --format mermaid |
Paste into Notion, GitHub comments, Obsidian |
devflow mcp |
Claude Desktop integration |
devflow query "show me stuck PRs" |
Natural language graph queries |
devflow setup-mcp |
Auto-configure Claude Desktop MCP integration |
Setup
One-command MCP setup
devflow setup-mcp
This automatically adds DevFlow to Claude Desktop's config file — no manual JSON editing needed. Restart Claude Desktop and ask it anything about your PRs.
Install
cargo install devflow
Or download a pre-built binary from GitHub Releases.
5-minute quickstart
1. Start DevFlow:
devflow serve
2. Set up a webhook (expose your local server with ngrok or similar):
ngrok http 7777
# Then: GitHub repo → Settings → Webhooks → Add webhook
# URL: https://<ngrok-url>/webhooks/github
# Events: Pull requests, Reviews, Check runs, Deployments
Or run the setup wizard:
devflow init
3. Open a PR and watch DevFlow react:
devflow watch
# [10:32:15] PR #43 opened alice feat: add search endpoint
# [10:32:18] CI queued tests PR #43
# [10:33:45] CI passed tests PR #43
4. Ask why a PR is stuck:
devflow explain-pr 43
Claude Desktop integration
DevFlow runs as an MCP server — Claude can query your development graph directly.
Recommended: one-command setup:
devflow setup-mcp
Or configure manually in ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"devflow": {
"command": "devflow",
"args": ["mcp"]
}
}
}
Now ask Claude:
- "Why is PR #42 stuck?"
- "What's my standup for today?"
- "What are our DORA metrics this quarter?"
Multi-source support
DevFlow connects all your tools into one graph:
| Source | Events |
|---|---|
| GitHub | PRs, reviews, CI runs, deployments |
| GitLab | Merge requests, pipelines, deployments |
| Sentry | Error alerts, incident tracking |
| Jira | Ticket transitions, cross-source links |
Cross-source edges like DeploymentCausedSentryError and PrLinkedToJiraTicket let you ask "which deploy caused this Sentry spike?"
Architecture
DevFlow is an event-sourced graph database for your development activity:
- Webhooks → HMAC-verified ingestion → append-only
redbevent log - Events → pure
apply_event()function →petgraphin-memory graph - Graph → query engine → CLI / TUI / web UI / MCP
Time-travel is free: devflow replay --from 2025-01-01T00:00:00Z replays all events to reconstruct any past state.
Configuration
Copy .devflow.toml.example to .devflow.toml and add your webhook secrets:
cp .devflow.toml.example .devflow.toml
$EDITOR .devflow.toml
Secrets can also be provided via environment variables:
DEVFLOW_GITHUB_SECRETDEVFLOW_GITLAB_SECRET
License
MIT OR Apache-2.0
