dev-pulse 0.1.0

Project health dashboard for your terminal
dev-pulse-0.1.0 is not a library.

devpulse

CI Crates.io License: MIT

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

git clone https://github.com/deelo-ai/devpulse.git
cd devpulse
cargo build --release
# Binary at target/release/devpulse

From crates.io

cargo install dev-pulse

Pre-built binaries

Download from GitHub Releases — available for Linux (x86_64, aarch64) and macOS (x86_64, Apple Silicon).

Homebrew (macOS / Linux)

brew tap deelo-ai/tap
brew install devpulse

Quick Start

# Scan the current directory for projects
devpulse

# Scan a specific directory
devpulse ~/projects

# Show only dirty repos, sorted by name
devpulse --filter dirty --sort name

# Export as JSON
devpulse --json

# Watch mode — refresh every 30 seconds
devpulse --watch --interval 30

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

devpulse --sort activity   # Most stale first (default)
devpulse --sort name       # Alphabetical
devpulse --sort status     # Dirty repos first, then clean

Output Formats

devpulse --format table      # Terminal table with colors (default)
devpulse --format json       # JSON output
devpulse --json              # Shorthand for --format json
devpulse --format csv        # Comma-separated values
devpulse --format markdown   # Markdown table
devpulse --format md         # Alias for markdown

Filtering

Filter projects by criteria. Multiple filters can be combined:

devpulse --filter dirty           # Only repos with uncommitted changes
devpulse --filter clean           # Only clean repos
devpulse --filter stale           # Repos with no commits in 30+ days
devpulse --filter unpushed        # Repos ahead of remote
devpulse --filter name:api        # Repos with "api" in the name
devpulse -f dirty -f name:web     # Combine: dirty repos matching "web"

Time Window

Show only projects with recent activity:

devpulse --since 7d              # Active in last 7 days
devpulse --since 2w              # Active in last 2 weeks
devpulse --since 1m              # Active in last month
devpulse --since 7d --include-empty  # Also include repos with no commits

Scan Depth

Control how deep to search for git repositories:

devpulse --depth 0    # Check only the target directory itself
devpulse --depth 1    # Immediate children (default)
devpulse --depth 2    # Two levels deep (nested project structures)

Grouping

Group projects by their parent directory, with per-group summary stats:

devpulse ~/code --depth 2 --group

File Output

Write results to a file instead of stdout (ANSI colors are stripped automatically):

devpulse --output report.json --format json
devpulse -o status.csv --format csv
devpulse -o dashboard.md --format markdown

Watch Mode

Continuously re-scan at an interval:

devpulse --watch                 # Refresh every 60 seconds
devpulse -w -i 30                # Refresh every 30 seconds

Interactive TUI

Launch a terminal UI for browsing projects:

devpulse --tui

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):

devpulse                         # CI status shown by default
devpulse --no-ci                 # Skip CI checks (faster, no network)

Color Themes

Choose a built-in color theme:

devpulse --theme default             # Default terminal colors
devpulse --theme dracula             # Dracula color scheme
devpulse --theme catppuccin-mocha    # Catppuccin Mocha palette
devpulse --theme nord                # Nord color scheme

Themes can also be set in .devpulse.toml (see Configuration). CLI flag takes priority.

Colors

devpulse --no-color              # Disable ANSI colors
NO_COLOR=1 devpulse              # Also works via environment variable

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
devpulse completions bash >> ~/.bashrc

# Zsh — add to fpath
devpulse completions zsh > ~/.zfunc/_devpulse
# Then add to ~/.zshrc: fpath=(~/.zfunc $fpath); autoload -Uz compinit && compinit

# Fish
devpulse completions fish > ~/.config/fish/completions/devpulse.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)
scan_paths = ["~/projects", "~/work"]

# Default sort order: "activity", "name", or "status"
sort = "name"

# Default output format: "table", "json", "csv", "markdown"
format = "table"

# Default --since duration
since = "30d"

# Scan depth (default: 1)
depth = 2

# Directories to ignore when scanning
ignore = ["node_modules", "target", ".archive"]

# Disable colors (default: true)
color = true

# Color theme: "default", "dracula", "catppuccin-mocha", "nord"
theme = "dracula"

CLI flags always take priority over config file values.

Contributing

Contributions are welcome! Please:

  1. Fork the repo and create a feature branch
  2. Run cargo fmt and cargo clippy -- -D warnings before committing
  3. Add tests for new functionality
  4. Open a PR with a clear description of the change

See open issues for ideas.

License

MIT — Copyright 2026 deelo-ai