{"id":50760511,"url":"https://github.com/ek33450505/cast-dash","last_synced_at":"2026-06-11T09:30:53.675Z","repository":{"id":349629776,"uuid":"1200770525","full_name":"ek33450505/cast-dash","owner":"ek33450505","description":"CAST TUI dashboard — terminal observability for Claude Code agents.","archived":false,"fork":false,"pushed_at":"2026-05-11T14:30:49.000Z","size":26,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-11T15:09:56.132Z","etag":null,"topics":["agents","ai-agents","anthropic","cast","claude-code","cli","dashboard","developer-tools","open-source","python","textual","tui"],"latest_commit_sha":null,"homepage":null,"language":"Python","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/ek33450505.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","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":"2026-04-03T20:05:42.000Z","updated_at":"2026-05-11T14:39:37.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ek33450505/cast-dash","commit_stats":null,"previous_names":["ek33450505/cast-dash"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ek33450505/cast-dash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ek33450505%2Fcast-dash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ek33450505%2Fcast-dash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ek33450505%2Fcast-dash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ek33450505%2Fcast-dash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ek33450505","download_url":"https://codeload.github.com/ek33450505/cast-dash/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ek33450505%2Fcast-dash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34192870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["agents","ai-agents","anthropic","cast","claude-code","cli","dashboard","developer-tools","open-source","python","textual","tui"],"created_at":"2026-06-11T09:30:52.781Z","updated_at":"2026-06-11T09:30:53.659Z","avatar_url":"https://github.com/ek33450505.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cast-dash\n\n[![CI](https://github.com/ek33450505/cast-dash/actions/workflows/ci.yml/badge.svg)](https://github.com/ek33450505/cast-dash/actions/workflows/ci.yml)\n![version](https://img.shields.io/badge/version-0.2.0-blue)\n![license](https://img.shields.io/badge/license-MIT-green)\n![platform](https://img.shields.io/badge/platform-macOS%20%7C%20Linux-lightgrey)\n![python](https://img.shields.io/badge/python-3.9%2B-yellow)\n\nhtop for Claude Code. A live terminal dashboard that shows active agents, costs, recent runs, and system health — all from `cast.db`. No browser, no web server, no configuration. Launch it and see what Claude Code is doing right now.\n\n## Screenshot\n\n```\n+-- CAST Dashboard -----------------------------------------------+\n|  Active Agents (5s poll)       |  Today's Stats                  |\n|  ----------------------------  |  ----------------------------   |\n|  [DataTable: agent/status/     |  Runs: 12  Cost: $0.43          |\n|   model/elapsed]               |  Tokens: 180K  Errors: 1        |\n|                                |  [Sparkline: hourly cost]       |\n|--------------------------------|---------------------------------|\n|  Recent Runs (last 20)         |  System Health                  |\n|  ----------------------------  |  ----------------------------   |\n|  [DataTable: agent/status/     |  Agents: 23  Hooks: 14          |\n|   cost/duration/ago]           |  Skills: 8   Plans: 54          |\n|                                |  DB: 18 runs, 5 sessions        |\n+--------------------------------+---------------------------------+\n  q:quit  r:refresh  Tab:focus             cast.db: OK  5s refresh\n```\n\n## Install\n\n### Homebrew\n\n```bash\nbrew tap ek33450505/cast-dash\nbrew install cast-dash\ncast-dash setup\n```\n\n### Manual\n\n```bash\ngit clone https://github.com/ek33450505/cast-dash.git\ncd cast-dash\nbash install.sh\n```\n\n## Usage\n\n```bash\n# Launch with default cast.db path (~/.claude/cast.db)\ncast-dash\n\n# Custom database path\ncast-dash --db /path/to/cast.db\n\n# Set up Python venv and install textual\ncast-dash setup\n\n# Print version\ncast-dash --version\n```\n\n## Panels\n\n### Active Agents\n\nDataTable showing currently running agents with model, status, and elapsed time. Polls cast.db every 5 seconds. Agents appear when `SubagentStart` fires and clear when `SubagentStop` completes.\n\n### Today's Stats\n\nAggregate numbers for the current day: total runs, cumulative cost (calculated from token counts and `model-pricing.json`), total tokens processed, and error count. Includes an hourly cost sparkline showing spend distribution across the day.\n\n### Recent Runs\n\nLast 20 agent runs with agent name, status, cost, duration, and time ago. Color-coded by status: green for DONE, yellow for DONE_WITH_CONCERNS, red for BLOCKED, blue (bold) for currently running.\n\n### System Health\n\nFile counts for key CAST directories: agents (`~/.claude/agents/`), hooks (`~/.claude/scripts/`), skills (`~/.claude/skills/`), plans (`~/.claude/plans/`). Also shows cast.db row counts for runs and sessions.\n\n## Keyboard Shortcuts\n\n| Key | Action |\n|---|---|\n| `q` | Quit |\n| `r` | Force refresh (bypass 5s timer) |\n| `Tab` | Cycle focus between panels |\n\n## Status Colors\n\n| Color | Status |\n|---|---|\n| Green | DONE |\n| Yellow | DONE_WITH_CONCERNS |\n| Red | BLOCKED |\n| Blue (bold) | Running |\n\n## Data Source\n\ncast-dash reads `~/.claude/cast.db` (SQLite, read-only, WAL-safe). The database is populated by any CAST component that writes observability data — cast-hooks, cast-observe, or the full CAST framework. If cast.db does not exist or is empty, panels display placeholder data.\n\nOverride the database path with `--db`:\n\n```bash\ncast-dash --db ~/backups/cast.db\n```\n\n## Requirements\n\n- Python 3.9+\n- [textual](https://github.com/Textualize/textual) (auto-installed by `cast-dash setup` or `install.sh`)\n- `cast.db` — from cast-hooks, cast-observe, or the full CAST install\n\n## Part of CAST\n\ncast-dash visualizes data from [CAST](https://github.com/ek33450505/claude-agent-team)'s cast.db observability layer. If you don't run CAST, the dashboard won't have data to display. If you do run CAST, you can install this TUI dashboard standalone via Homebrew and monitor all your Claude Code activity from the terminal.\n\n## CAST Ecosystem\n\n\u003e Auto-synced from [claude-agent-team/docs/ecosystem.md](https://github.com/ek33450505/claude-agent-team/blob/main/docs/ecosystem.md). Run `~/Projects/personal/claude-agent-team/scripts/sync-ecosystem-readme.sh` to refresh.\n\n\u003c!-- ECOSYSTEM_START --\u003e\n| Repo | Description | Latest | Install |\n|---|---|---|---|\n| [cast-hooks](https://github.com/ek33450505/cast-hooks) | 13 auditable hook scripts — observability, safety guards, quality gates. SessionStart, PreToolUse, PostToolUse, PostCompact. | ![](https://img.shields.io/github/v/release/ek33450505/cast-hooks?style=flat-square) | `brew tap ek33450505/cast-hooks \u0026\u0026 brew install cast-hooks` |\n| [cast-agents](https://github.com/ek33450505/cast-agents) | 23 specialist agents — commit, debug, review, plan, test, research, and more. Agent definitions with YAML frontmatter. v7-synced. | ![](https://img.shields.io/github/v/release/ek33450505/cast-agents?style=flat-square) | `brew tap ek33450505/cast-agents \u0026\u0026 brew install cast-agents` |\n| [cast-memory](https://github.com/ek33450505/cast-memory) | Persistent agent memory with FTS5 search, relevance scoring, shared pool, semantic embeddings. Per-agent knowledge accumulation. | ![](https://img.shields.io/github/v/release/ek33450505/cast-memory?style=flat-square) | `brew tap ek33450505/cast-memory \u0026\u0026 brew install cast-memory` |\n| [cast-routines](https://github.com/ek33450505/cast-routines) | Scheduled autonomous Claude Code routines via YAML + cron. Daily briefings, inbox triage, release celebration, weekly cost reports. | ![](https://img.shields.io/github/v/release/ek33450505/cast-routines?style=flat-square) | `brew tap ek33450505/cast-routines \u0026\u0026 brew install cast-routines` |\n| [cast-parallel](https://github.com/ek33450505/cast-parallel) | Parallel agent execution across worktree sessions. Agent Dispatch Manifest (ADM) support. | ![](https://img.shields.io/github/v/release/ek33450505/cast-parallel?style=flat-square) | `brew tap ek33450505/cast-parallel \u0026\u0026 brew install cast-parallel` |\n| [cast-observe](https://github.com/ek33450505/cast-observe) | Session-level observability — cost tracking, agent run history, token spend, event sourcing. Feeds cast.db. | ![](https://img.shields.io/github/v/release/ek33450505/cast-observe?style=flat-square) | `brew tap ek33450505/cast-observe \u0026\u0026 brew install cast-observe` |\n| [cast-security](https://github.com/ek33450505/cast-security) | Security hooks and audit trails. PII redaction, parry-guard integration, compliance logging. | ![](https://img.shields.io/github/v/release/ek33450505/cast-security?style=flat-square) | `brew tap ek33450505/cast-security \u0026\u0026 brew install cast-security` |\n| [cast-doctor](https://github.com/ek33450505/cast-doctor) | Read-only health check for any Claude Code install. Validates hooks, MCP servers, agent frontmatter, cast.db schema, stale memories. | ![](https://img.shields.io/github/v/release/ek33450505/cast-doctor?style=flat-square) | `brew tap ek33450505/cast-doctor \u0026\u0026 brew install cast-doctor` |\n| [cast-time](https://github.com/ek33450505/cast-time) | Gives Claude Code a clock — injects local time, timezone, and a semantic time-of-day bucket at every SessionStart. | ![](https://img.shields.io/github/v/release/ek33450505/cast-time?style=flat-square) | `brew tap ek33450505/cast-time \u0026\u0026 brew install cast-time` |\n| [cast-dash](https://github.com/ek33450505/cast-dash) | Terminal UI dashboard for live swarm monitoring. 4-panel real-time display (Textual framework). | ![](https://img.shields.io/github/v/release/ek33450505/cast-dash?style=flat-square) | `brew tap ek33450505/cast-dash \u0026\u0026 brew install cast-dash` |\n| [cast-claudes_journal](https://github.com/ek33450505/cast-claudes_journal) | Session continuity — Claude's Journal auto-injects prior-day context via SessionStart hook. Obsidian vault sync. | ![](https://img.shields.io/github/v/release/ek33450505/cast-claudes_journal?style=flat-square) | `brew tap ek33450505/homebrew-claudes-journal \u0026\u0026 brew install claudes-journal` |\n| [cast-website](https://github.com/ek33450505/cast-website) | castframework.dev — marketing site and docs portal for the CAST ecosystem. | ![](https://img.shields.io/github/v/release/ek33450505/cast-website?style=flat-square) | — |\n| [cast-desktop](https://github.com/ek33450505/cast-desktop) | Tauri 2 native app — embedded PTY terminal, command palette, 11 dashboard views. | ![](https://img.shields.io/github/v/release/ek33450505/cast-desktop?style=flat-square) | `brew tap ek33450505/homebrew-cast-desktop \u0026\u0026 brew install cast-desktop` |\n\u003c!-- ECOSYSTEM_END --\u003e\n\nFor a native desktop GUI alternative, see cast-desktop (Tauri 2 app).\n\n## License\n\nMIT — see [LICENSE](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fek33450505%2Fcast-dash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fek33450505%2Fcast-dash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fek33450505%2Fcast-dash/lists"}