{"id":37510235,"url":"https://github.com/jeikeilim/vibe-dash","last_synced_at":"2026-01-16T08:01:26.983Z","repository":{"id":330523874,"uuid":"1123031057","full_name":"JeiKeiLim/vibe-dash","owner":"JeiKeiLim","description":"Terminal dashboard for tracking AI-assisted coding projects. Monitor workflow stages, detect when AI agents need input. Built with Go + Bubble Tea. A real-world BMAD Method demonstration with full development history public.","archived":false,"fork":false,"pushed_at":"2026-01-12T22:21:44.000Z","size":3415,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-13T02:44:47.944Z","etag":null,"topics":["ai-assisted-development","bmad-method","bubbletea","cli","dashboard","developer-tools","go","golang","hexagonal-architecture","productivity","terminal","tui","vibe-coding","workflow"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JeiKeiLim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-26T04:04:26.000Z","updated_at":"2026-01-12T22:21:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/JeiKeiLim/vibe-dash","commit_stats":null,"previous_names":["jeikeilim/vibe-dash"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/JeiKeiLim/vibe-dash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeiKeiLim%2Fvibe-dash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeiKeiLim%2Fvibe-dash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeiKeiLim%2Fvibe-dash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeiKeiLim%2Fvibe-dash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JeiKeiLim","download_url":"https://codeload.github.com/JeiKeiLim/vibe-dash/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeiKeiLim%2Fvibe-dash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-assisted-development","bmad-method","bubbletea","cli","dashboard","developer-tools","go","golang","hexagonal-architecture","productivity","terminal","tui","vibe-coding","workflow"],"created_at":"2026-01-16T08:00:58.543Z","updated_at":"2026-01-16T08:01:26.839Z","avatar_url":"https://github.com/JeiKeiLim.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vibe-dash\n\n[![CI](https://github.com/JeiKeiLim/vibe-dash/actions/workflows/ci.yml/badge.svg)](https://github.com/JeiKeiLim/vibe-dash/actions/workflows/ci.yml)\n[![Go Version](https://img.shields.io/badge/Go-1.24+-00ADD8?logo=go)](https://golang.org/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\nA terminal dashboard for tracking AI-assisted coding projects. Monitor multiple projects, detect workflow stages, and see when AI agents are waiting for your input—all from a single unified interface.\n\n![Dashboard Screenshot](docs/screenshots/dashboard.png)\n\n## About This Project\n\nThis project is a **real-world demonstration of the [BMAD Method](https://github.com/bmadcode/BMAD-METHOD)** — a structured methodology for AI-assisted software development (aka \"vibe coding\").\n\nEvery feature, from the initial architecture to the TUI polish, was developed through BMAD's phased workflow: requirements gathering, architecture design, epic/story planning, and iterative implementation. The entire development history — PRDs, architecture docs, epics, stories, and retrospectives — lives in [`docs/sprint-artifacts/`](docs/sprint-artifacts/).\n\n**Why build this?** I wanted hands-on experience with BMAD to understand how structured AI collaboration scales across a non-trivial project. Having minimal Go experience and no TUI background, this was also a test of whether AI-assisted development could bridge the gap. vibe-dash became both the learning vehicle and a practical tool I use to monitor my other AI-assisted projects.\n\n### Development Highlights\n\n- **Incremental development** — Built story by story across 100+ iterations\n- **Maintained structure** — Same patterns, conventions, and test coverage throughout\n- **Full transparency** — Every PRD, architecture decision, and retrospective is public\n- **Dogfooding** — vibe-dash monitors its own development\n\nIf you're curious about BMAD or want to see what continuous AI-assisted development looks like in practice, explore the sprint artifacts — they tell the full story of how this codebase evolved from concept to working software.\n\n## Features\n\n- **Multi-Project Dashboard** — Track all your AI coding projects from one terminal\n- **Real-time Monitoring** — File watcher detects changes and updates the dashboard automatically\n- **Agent Waiting Detection** — Know instantly when your AI coding agent needs input\n- **Claude Code Log Viewer** — View and tail Claude Code session logs directly from the dashboard\n- **Methodology Support** — Built-in support for BMAD and Speckit workflows\n- **Project Hibernation** — Auto-hibernate inactive projects; auto-activate on file changes\n- **Favorites \u0026 Notes** — Star important projects and add personal notes\n- **Flexible Layouts** — Vertical (side-by-side) or horizontal (stacked) detail panel\n\n## Quick Start\n\n### Installation\n\n**Download from Releases (Recommended)**\n\n```bash\n# macOS ARM64 (Apple Silicon)\ncurl -Lo vdash.tar.gz https://github.com/JeiKeiLim/vibe-dash/releases/latest/download/vdash_darwin_arm64.tar.gz\ntar -xzf vdash.tar.gz \u0026\u0026 rm vdash.tar.gz\nmkdir -p ~/.local/bin \u0026\u0026 mv vdash ~/.local/bin/\n\n# macOS Intel\ncurl -Lo vdash.tar.gz https://github.com/JeiKeiLim/vibe-dash/releases/latest/download/vdash_darwin_amd64.tar.gz\ntar -xzf vdash.tar.gz \u0026\u0026 rm vdash.tar.gz\nmkdir -p ~/.local/bin \u0026\u0026 mv vdash ~/.local/bin/\n\n# Linux x86_64\ncurl -Lo vdash.tar.gz https://github.com/JeiKeiLim/vibe-dash/releases/latest/download/vdash_linux_amd64.tar.gz\ntar -xzf vdash.tar.gz \u0026\u0026 rm vdash.tar.gz\nmkdir -p ~/.local/bin \u0026\u0026 mv vdash ~/.local/bin/\n\n# Linux ARM64\ncurl -Lo vdash.tar.gz https://github.com/JeiKeiLim/vibe-dash/releases/latest/download/vdash_linux_arm64.tar.gz\ntar -xzf vdash.tar.gz \u0026\u0026 rm vdash.tar.gz\nmkdir -p ~/.local/bin \u0026\u0026 mv vdash ~/.local/bin/\n```\n\nMake sure `~/.local/bin` is in your PATH (add to `~/.bashrc` or `~/.zshrc`):\n```bash\nexport PATH=\"$HOME/.local/bin:$PATH\"\n```\n\n**Build from Source**\n\n```bash\n# Clone the repository\ngit clone https://github.com/JeiKeiLim/vibe-dash.git\ncd vibe-dash\n\n# Build and install\nmake build\nmake install  # Installs to ~/go/bin/vdash\n```\n\n### Requirements\n\n- Go 1.24 or later (for building from source)\n- CGO enabled (required for SQLite)\n\n### Add Your First Project\n\n```bash\n# Add current directory\ncd your-project \u0026\u0026 vdash add .\n\n# Or specify a path\nvdash add /path/to/project --name \"My Project\"\n```\n\n### Launch the Dashboard\n\n```bash\nvdash\n```\n\n![Welcome Screen](docs/screenshots/welcome.png)\n\n## Dashboard Interface\n\n![Dashboard with Detail Panel](docs/screenshots/dashboard.png)\n\n### Project List Columns\n\n| Column | Description |\n|--------|-------------|\n| Name | Project name (favorites marked with star) |\n| Stage | Current workflow stage (e.g., `E3/S2` = Epic 3, Story 2) |\n| Status | Activity indicator with relative time |\n\n### Status Indicators\n\n| Indicator | Meaning |\n|-----------|---------|\n| `WAITING` | AI agent is waiting for user input |\n| `2m ago` | Time since last file change |\n| `Active` | Recent activity detected |\n| `Hibernated` | Project is dormant (press `h` to view) |\n\n## Keyboard Shortcuts\n\nPress `?` in the dashboard to see all shortcuts.\n\n### Navigation\n| Key | Action |\n|-----|--------|\n| `j` / `↓` | Move down |\n| `k` / `↑` | Move up |\n\n### Actions\n| Key | Action |\n|-----|--------|\n| `Enter` | View Claude Code logs |\n| `L` | Select session log |\n| `d` | Toggle detail panel |\n| `f` | Toggle favorite |\n| `n` | Edit notes |\n| `x` | Remove project |\n| `H` | Hibernate/Activate project |\n| `a` | Add project (opens prompt) |\n| `r` | Refresh all projects |\n\n### Views\n| Key | Action |\n|-----|--------|\n| `h` | View hibernated projects |\n| `?` | Show help overlay |\n| `q` | Quit |\n| `Esc` | Cancel/close dialogs |\n\n![Help Overlay](docs/screenshots/help.png)\n\n## Claude Code Log Viewer\n\nvdash can display Claude Code session logs for projects that use [Claude Code](https://docs.anthropic.com/en/docs/claude-code). Press `Enter` on any project to view its latest session log, or press `L` to select from available sessions.\n\n### Log Viewer Tools\n\nThe log viewer uses external tools for rendering (in order of preference):\n\n1. **[cclv](https://github.com/JeiKeiLim/claude-code-log-viewer-cli)** (Recommended) — TUI for browsing Claude Code logs with vim-style navigation, message filtering, and collapsible thinking/tool blocks\n2. **jq** — JSON processor, provides basic formatting\n3. **Raw file** — Falls back to displaying raw JSONL if no tools are available\n\nFor the best experience, install cclv:\n```bash\ngo install github.com/JeiKeiLim/claude-code-log-viewer-cli/cmd/cclv@latest\n```\n\n## CLI Commands\n\n```bash\nvdash                      # Launch interactive dashboard\nvdash add [path]           # Add project to tracking\nvdash list                 # List all tracked projects\nvdash status \u003cname\u003e        # Show project status\nvdash remove \u003cname\u003e        # Remove from tracking\nvdash hibernate \u003cname\u003e     # Mark project as dormant\nvdash activate \u003cname\u003e      # Reactivate hibernated project\nvdash favorite \u003cname\u003e      # Toggle favorite status\nvdash note \u003cname\u003e [note]   # View or set project notes\nvdash rename \u003cname\u003e [new]  # Set or clear display name\nvdash refresh              # Refresh detection for all projects\nvdash config               # Manage configuration\nvdash reset                # Reset project database\nvdash --version            # Show version information\n```\n\nUse `vdash [command] --help` for detailed command options.\n\n### Global Flags\n\n```bash\n-c, --config string           Config file path (default: ~/.vibe-dash/config.yaml)\n    --debug                   Enable debug logging\n-q, --quiet                   Suppress non-error output\n-v, --verbose                 Enable verbose output\n    --waiting-threshold int   Override agent waiting threshold (minutes)\n```\n\n## Configuration\n\nConfiguration is stored in `~/.vibe-dash/config.yaml`:\n\n```yaml\nstorage_version: 2\n\nsettings:\n  hibernation_days: 14          # Auto-hibernate after N days of inactivity\n  refresh_interval_seconds: 5   # Dashboard refresh interval\n  refresh_debounce_ms: 200      # File watcher debounce\n  agent_waiting_threshold_minutes: 10  # WAITING indicator threshold\n  detail_layout: vertical       # \"vertical\" (side-by-side) or \"horizontal\" (stacked)\n  # use_emoji: true             # Force emoji (omit for auto-detect)\n  # max_content_width: 120      # 0 = unlimited\n\nprojects:\n  my-project:\n    path: /path/to/my-project\n    display_name: My Project\n    favorite: true\n```\n\n### Per-Project Configuration\n\nOverride settings for specific projects in `~/.vibe-dash/\u003cproject\u003e/config.yaml`:\n\n```yaml\nhibernation_days: 30              # This project hibernates after 30 days\nagent_waiting_threshold_minutes: 5  # More sensitive waiting detection\n```\n\n## Supported Methodologies\n\nvibe-dash automatically detects AI coding methodologies and tracks workflow stages.\n\n### BMAD (v6)\n\nThe [BMAD Method](https://github.com/bmadcode/BMAD-METHOD) workflow is detected via:\n- `.bmad/` or `_bmad/` directory\n- Sprint status from `docs/sprint-artifacts/sprint-status.yaml`\n- Stage format: `E\u003cepic\u003e/S\u003cstory\u003e` (e.g., `E3/S2`)\n\n### Speckit\n\n[Speckit](https://github.com/speckit/speckit) methodology is detected via:\n- `specs/`, `.speckit/`, or `.specify/` directory\n- Stage based on artifact files present\n\n### Adding Custom Detectors\n\nImplement the `ports.MethodDetector` interface:\n\n```go\ntype MethodDetector interface {\n    Name() string\n    CanDetect(ctx context.Context, path string) bool\n    Detect(ctx context.Context, path string) (*domain.DetectionResult, error)\n}\n```\n\nRegister in `cmd/vdash/main.go`:\n\n```go\nregistry.Register(mydetector.NewMyDetector())\n```\n\n## Architecture\n\nvibe-dash follows hexagonal architecture (ports \u0026 adapters), established in Epic 1 and maintained consistently through 11 epics of development:\n\n```\ninternal/\n├── core/                  # Domain layer - ZERO external dependencies\n│   ├── domain/            # Entities (Project, DetectionResult)\n│   ├── ports/             # Interfaces (Repository, Detector, FileWatcher)\n│   └── services/          # Use cases (Detection, Hibernation, State)\n└── adapters/              # Infrastructure layer\n    ├── cli/               # Cobra commands\n    ├── tui/               # Bubble Tea terminal UI\n    ├── persistence/       # SQLite repository + YAML config\n    ├── filesystem/        # OS abstraction, file watching\n    └── detectors/         # BMAD, Speckit implementations\n```\n\nThis separation ensures that domain logic remains independent of infrastructure choices. New detectors, storage backends, or UI implementations can be added without modifying core business logic.\n\n### Key Dependencies\n\n- [Bubble Tea](https://github.com/charmbracelet/bubbletea) — Terminal UI framework\n- [Cobra](https://github.com/spf13/cobra) — CLI framework\n- [Viper](https://github.com/spf13/viper) — Configuration management\n- [go-sqlite3](https://github.com/mattn/go-sqlite3) — SQLite driver (CGO)\n- [fsnotify](https://github.com/fsnotify/fsnotify) — Cross-platform file watching\n\n## Development\n\n```bash\n# Format code\nmake fmt\n\n# Run linter\nmake lint\n\n# Run unit tests\nmake test\n\n# Run all tests (unit + integration)\nmake test-all\n\n# Build binary\nmake build\n\n# Clean build artifacts\nmake clean\n```\n\n### Project Structure\n\n```\n.\n├── cmd/vdash/             # Application entry point\n├── internal/              # Private application code\n├── test/fixtures/         # Test fixture projects\n├── docs/                  # Documentation and sprint artifacts\n├── bin/                   # Build output\n├── Makefile               # Build automation\n└── go.mod                 # Go module definition\n```\n\n## Contributing\n\nContributions are welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing`)\n3. Make your changes with tests\n4. Ensure `make lint` and `make test` pass\n5. Submit a Pull Request\n\n## License\n\n[MIT License](LICENSE) - Copyright (c) 2025 Jongkuk Lim\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeikeilim%2Fvibe-dash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeikeilim%2Fvibe-dash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeikeilim%2Fvibe-dash/lists"}