devpulse
Project health dashboard for your terminal.
Scan a directory of projects and instantly see the health of each one — git status, last activity, stale repos, dirty worktrees — all in a colored terminal table.
No servers, no config files required. Just run devpulse.
Why?
If you work on multiple projects, it's easy to lose track of which repos have uncommitted changes, which are weeks behind, and which you forgot about entirely. devpulse gives you that overview in one command.
Installation
From source
# Binary at target/release/devpulse
From crates.io
Pre-built binaries
Download from GitHub Releases — available for Linux (x86_64, aarch64) and macOS (x86_64, Apple Silicon).
Homebrew (macOS / Linux)
Quick Start
# Scan the current directory for projects
# Scan a specific directory
# Show only dirty repos, sorted by name
# Export as JSON
# Watch mode — refresh every 30 seconds
Output
Each project shows:
| Column | Description |
|---|---|
| Project | Repository name |
| Branch | Current branch |
| Status | Clean or dirty (with uncommitted file count) |
| Last Commit | Time since last commit, color-coded |
| Remote | Ahead/behind remote tracking branch |
| CI | GitHub Actions status: ✅ passing, ❌ failing, ⏳ running (use --no-ci to skip) |
Colors indicate staleness: green = active (< 1 week), yellow = aging (< 1 month), red = stale (> 1 month).
Flags Reference
Sorting
Output Formats
Filtering
Filter projects by criteria. Multiple filters can be combined:
Time Window
Show only projects with recent activity:
Scan Depth
Control how deep to search for git repositories:
Grouping
Group projects by their parent directory, with per-group summary stats:
File Output
Write results to a file instead of stdout (ANSI colors are stripped automatically):
Watch Mode
Continuously re-scan at an interval:
Interactive TUI
Launch a terminal UI for browsing projects:
CI Status
By default, devpulse queries GitHub Actions for projects with a GitHub remote and shows a CI column with ✅ (passing), ❌ (failing), or ⏳ (in progress):
Color Themes
Choose a built-in color theme:
Themes can also be set in .devpulse.toml (see Configuration). CLI flag takes priority.
Colors
NO_COLOR=1
Color priority: --no-color flag > NO_COLOR env var > config file > default (colors on).
Shell Completions
Generate tab-completion scripts for your shell:
# Bash — add to ~/.bashrc
# Zsh — add to fpath
# Then add to ~/.zshrc: fpath=(~/.zfunc $fpath); autoload -Uz compinit && compinit
# Fish
After installation, restart your shell or source the config file. Then devpulse <tab> will complete flags, subcommands, and values.
Configuration
Create a .devpulse.toml file in your project directory or home directory (~/.devpulse.toml):
# Directories to scan (used when no path argument given)
= ["~/projects", "~/work"]
# Default sort order: "activity", "name", or "status"
= "name"
# Default output format: "table", "json", "csv", "markdown"
= "table"
# Default --since duration
= "30d"
# Scan depth (default: 1)
= 2
# Directories to ignore when scanning
= ["node_modules", "target", ".archive"]
# Disable colors (default: true)
= true
# Color theme: "default", "dracula", "catppuccin-mocha", "nord"
= "dracula"
CLI flags always take priority over config file values.
Contributing
Contributions are welcome! Please:
- Fork the repo and create a feature branch
- Run
cargo fmtandcargo clippy -- -D warningsbefore committing - Add tests for new functionality
- Open a PR with a clear description of the change
See open issues for ideas.
License
MIT — Copyright 2026 deelo-ai