Your GitHub activity dashboard in the terminal.
A persistent cockpit for monitoring open PRs, CI status, and repository health — without leaving your editor.
Developed as part of the Fynes-Forge blog, this lightweight cli provides a clean and perisitant dashboard for your Github activity.
This is a Fynes Forge project built with precision over cleverness.
# Install with uv
uv tool install .
# Or run directly during development
uv run devpulse --helpdevpulse loginPrompts for a GitHub Personal Access Token. Requires repo and read:org scopes. Saved to ~/.devpulse.json.
Alternatively, set the GITHUB_TOKEN environment variable — it takes priority over the config file.
# Summary of a repository (formatted)
devpulse summary astral-sh/uv
# Raw JSON output (pipe-friendly)
devpulse summary astral-sh/uv --raw
# Full pulse dashboard
devpulse pulse astral-sh/uv
# Launch interactive TUI
devpulse ui
# or
devpulse-ui- Typer — CLI framework
- httpx — Async-capable HTTP client
- Rich — Terminal formatting & layout
- Textual — Interactive TUI framework
- Pydantic — Config validation
src/devpulse/
├── __init__.py
├── cli.py # Typer command definitions
├── client.py # GitHub API logic (sync + async)
├── config.py # Token management
├── renderer.py # Rich formatting (shared between CLI and TUI)
└── tui.py # Textual app and widgets
This project was built as part of a three-part blog series on Fynes Forge:
- Part 1: The Skeleton — Typer + httpx + GitHub API
- Part 2: The Facelift — Rich tables, panels, and dashboards
- Part 3: The Cockpit — Textual interactive TUI
Tokens are never hardcoded. They live in ~/.devpulse.json (mode 600) or GITHUB_TOKEN. The config file is gitignored by default.
Contributions are welcome. Please read CONTRIBUTING.md before opening a PR.
MIT © Fynes Forge — see LICENSE for details.