A terminal dashboard that shows your complete developer context at a glance. One command, full context.
Context switching is expensive. Before starting any task, you need to know:
- How long until my next meeting?
- Any PRs need my attention?
- What's running on my ports?
- Do I have uncommitted work somewhere?
One glance. One command. Full context.
┌─ MEETINGS ──────────┬─ PRS ────────────────────────┬─ PORTS ──────────┐
│ ● 47 min until: │ Needs Review (2): │ :3000 node │
│ 1:1 with Sarah │ #421 Add auth 2d │ :5432 postgres │
│ │ #418 Fix bug 4d │ :6379 redis │
│ Then: │ │ :8080 python │
│ 2:00 PM Sprint │ Your PRs (1): │ │
│ 3:30 PM Eng Sync │ #419 Refactor 1d ✓ │ │
├─────────────────────┴──────────────────────────────┴──────────────────┤
│ UNCOMMITTED WORK │
│ cloud 2 modified, 1 untracked │
│ pr-dashboard 5 untracked files │
├───────────────────────────────────────────────────────────────────────┤
│ STASHES │
│ branch-cleaner (2) WIP auth refactor (3d) │
│ runbook-gen (1) broken experiment (ancient) │
├───────────────────────────────────────────────────────────────────────┤
│ [r]efresh [p]rs [m]eetings [g]it [Tab] switch [q]uit Updated: 5s│
└───────────────────────────────────────────────────────────────────────┘
# Clone the repository
git clone https://github.com/mrf/dcc.git
cd dcc
# Build and install
cargo install --path .
# Or just build
cargo build --release
./target/release/dcc- Rust 1.70+ (for building)
- macOS (Calendar integration uses AppleScript)
- GitHub CLI (
gh) - for PR status - git - for repository scanning
# Run the dashboard
dcc
# Keyboard shortcuts
q / Esc - Quit
r - Refresh all panels
p - Open first PR in browser
m - Open Calendar app
g - Open first dirty repo in VS Code
Tab - Switch between panels
Shift+Tab - Switch panels (reverse)Create ~/.config/dcc/config.toml:
[general]
refresh_interval_seconds = 30
projects_dir = "~/Projects"
[meetings]
enabled = true
hours_ahead = 8
calendars_exclude = ["Birthdays", "US Holidays", "Siri Suggestions"]
ignore_patterns = ["Focus Time", "Lunch", "OOO"]
[prs]
enabled = true
[ports]
enabled = true
hide_system = true
hide_ephemeral = true
hidden_processes = ["rapportd", "ControlCenter", "mDNSResponder"]
[git]
enabled = true
scan_depth = 2
ignore_dirs = ["node_modules", ".git", "target", "vendor"]| Panel | Source | Command |
|---|---|---|
| Meetings | Calendar.app | osascript |
| PRs | GitHub CLI | gh search prs |
| Ports | lsof | lsof -i -P -n |
| Git Status | git | git status --porcelain |
| Stashes | git | git stash list |
- Green: > 60 minutes
- Yellow: 30-60 minutes
- Orange: 10-30 minutes
- Red: < 10 minutes
- Blue: Currently in meeting
- Green: < 2 days
- Yellow: 2-5 days
- Orange: 5-7 days
- Red: > 7 days
- Gray: < 7 days
- Yellow: 7-30 days
- Red: > 30 days (ancient)
# Run in development mode
cargo run
# Run tests
cargo test
# Build release
cargo build --release
# Format code
cargo fmt
# Lint
cargo clippyMIT License - see LICENSE for details.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.