Terminal Dashboard for devenv.sh Projects
devdash is a terminal UI for managing multiple devenv.sh projects from one place. Instead of running devenv up in separate terminals and manually checking logs, devdash gives you a unified dashboard to monitor and control all your development environments.
When working with multiple devenv projects, you end up with:
- Multiple terminals running
devenv up - Switching between tabs to check logs
- No visibility when services crash
- Manual navigation between project directories
devdash solves this by providing a single interface for all your projects.
# Run directly
nix run github:infktd/devdash
# Install to profile
nix profile install github:infktd/devdash
# Add to flake.nix
{
inputs.devdash.url = "github:infktd/devdash";
# ...
}go install github.com/infktd/devdash@latestgit clone https://github.com/infktd/devdash
cd devdash
nix build # or: go build
./result/bin/devdashRequirements:
- devenv.sh installed
- process-compose (included with devenv)
- Linux or macOS
devdashOn first run, devdash creates a config at ~/.config/devdash/config.yaml and scans ~/code and ~/projects for devenv projects.
Edit ~/.config/devdash/config.yaml to tell devdash where your projects are:
projects:
scan_paths:
- ~/code
- ~/work
- ~/personal/projects
scan_depth: 3
auto_discover: true| Key | Action |
|---|---|
↑/↓ or j/k |
Navigate |
Enter |
Select project |
s |
Start service/project |
x |
Stop service/project |
r |
Restart service |
/ |
Search logs |
f |
Toggle log follow mode |
S |
Settings |
? |
Help |
q |
Quit |
Automatic Discovery - Scans configured directories for devenv.nix files and maintains a registry of all your projects.
Multi-Project Switching - Jump between projects instantly. The sidebar shows all projects with their current state.
Project States:
Running- process-compose daemon activeIdle- No services runningDegraded- Some services crashedStale- Socket exists but daemon not respondingMissing- Project directory no longer exists
Start/Stop/Restart - Control individual services or entire projects with single keystrokes.
Real-Time Status - See which services are running, uptime, CPU usage, and exit codes.
Health Monitoring - Automatically detects service crashes and tracks recovery.
Live Streaming - Watch logs from any service in real-time.
Search & Filter - Press / to search logs, n/N to jump between matches, Ctrl+F to show only matching lines.
Follow Mode - Auto-scroll to latest logs (toggle with f).
Syntax Highlighting - Automatic detection of log levels (INFO, WARN, ERROR, DEBUG).
Package Inspector - View installed Nix packages in the current devenv environment (narrow terminal mode).
Categorization - Packages grouped by category with descriptions and versions.
Desktop Alerts - Get notified when services crash or recover (macOS/Linux).
In-App Toasts - Non-intrusive notifications within the TUI.
Per-Service Control - Configure which services send notifications in the settings.
Choose from 8 color schemes (press S for settings):
| Theme | Description |
|---|---|
matrix |
Classic green-on-black hacker aesthetic |
gruvbox |
Retro groove with warm colors |
dracula |
Dark purple with pink accents |
nord |
Arctic, bluish color palette |
tokyo-night |
Clean modern blue/purple theme |
ayu-dark |
Golden/orange accents on dark background |
solarized-dark |
Scientific muted palette |
monokai |
Classic editor theme with vibrant colors |
devdash reads configuration from ~/.config/devdash/config.yaml:
projects:
scan_paths:
- ~/code
- ~/projects
auto_discover: true
scan_depth: 3
notifications:
system_enabled: true # Desktop notifications
tui_alerts: true # In-app toast messages
critical_only: false
overrides: # Per-service overrides
- service: postgres
system: false # Disable desktop notifications for postgres
ui:
theme: matrix # matrix | gruvbox | dracula | nord | tokyo-night | ayu-dark | solarized-dark | monokai
default_log_view: focused
log_follow: true
show_timestamps: true
dim_timestamps: true
sidebar_width: 25
polling:
focused_project: 2 # Poll active project every 2 seconds
background_project: 10 # Poll background projects every 10 seconds| Key | Action |
|---|---|
q |
Quit (leave projects running) |
Ctrl+X |
Shutdown all projects and quit |
S |
Open settings |
E |
Edit config file |
H |
View alert history |
? |
Show help |
R |
Refresh |
Tab |
Next pane |
Shift+Tab |
Previous pane |
| Key | Action |
|---|---|
↑/↓ or k/j |
Move up/down |
←/→ or h/l |
Move left/right |
Enter |
Select |
Esc |
Back/Cancel |
| Key | Action |
|---|---|
s |
Start service or project |
x |
Stop service or project |
r |
Restart service |
/ |
Search |
| Key | Action |
|---|---|
Ctrl+H |
Hide/show project |
d |
Delete project from registry |
e |
Rename project |
m |
Update project path (if moved) |
c |
Repair stale project |
| Key | Action |
|---|---|
f |
Toggle follow mode |
w |
Toggle line wrap |
y |
Copy visible logs to clipboard |
g |
Jump to top |
G |
Jump to bottom |
/ |
Search logs |
n |
Next search match |
N |
Previous search match |
Ctrl+F |
Filter (show only matches) |
devdash communicates with devenv projects through process-compose's Unix socket API:
┌─────────────┐
│ devdash │
└──────┬──────┘
│
├─ Scans for devenv.nix files
├─ Maintains project registry
├─ Connects to .devenv/run/pc.sock
├─ Queries process-compose API
├─ Streams logs
└─ Monitors health
Components:
devdash/
├── internal/
│ ├── compose/ # process-compose API client
│ ├── config/ # Configuration management
│ ├── health/ # Service health monitoring
│ ├── notify/ # Desktop notifications
│ ├── packages/ # Nix package scanning
│ ├── registry/ # Project registry
│ ├── scanner/ # Project discovery
│ └── ui/ # Terminal UI (Bubble Tea)
└── main.go
devdash has 317 tests covering 59.8% of the codebase:
# Run all tests
go test ./...
# Run with coverage
go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.out
# Run specific package
go test ./internal/ui -vContributions welcome! Please:
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Ensure tests pass:
go test ./... - Submit a pull request
Found a bug? Open an issue
MIT License - see LICENSE for details
Built with:
- Bubble Tea - TUI framework
- Lip Gloss - Terminal styling
- huh - Interactive forms
- devenv - Development environments
- process-compose - Process orchestration
Made for developers managing multiple devenv projects
⭐ Star on GitHub if you find this useful!
