Skip to content
View ek33450505's full-sized avatar
💭
Working on CAST Desktop
💭
Working on CAST Desktop

Highlights

  • Pro

Block or report ek33450505

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ek33450505/README.md

Edward Kubiak

Agent infrastructure engineer. I build the layer between you and the agent loop.

Columbus, Ohio · edwardkubiak.com · LinkedIn · edward.kubiak.dev@gmail.com

Open to roles on agent infrastructure, developer tools, and Claude Code platform teams.


What I work on

Lately I’ve been focused on the operational side of multi-agent systems — routing, memory, observability, policy gates — the kinds of details that make the difference between an impressive demo and something reliable enough to leave running on its own.

For the last six months, I’ve been building CAST, a local-first OS layer for Claude Code, plus its native desktop observability surface and a handful of smaller supporting packages around it.


CAST — Claude Agent Specialist Team

claude-agent-team · Bash · MIT · v7.0 — backend lockdown

Claude Code ships with a powerful agent primitive and almost no scaffolding around it. CAST is the scaffolding: 33 specialist agents, hook-driven dispatch, model-tier routing, per-agent persistent memory, and a 27-table SQLite event store that makes the whole loop legible.

brew tap ek33450505/cast && brew install cast

A few of the design decisions worth defending:

  • Hook-driven dispatch over polling. Claude Code emits lifecycle events (SessionStart, PreToolUse, SubagentStop, Stop). CAST hangs all routing, telemetry, and policy off those — no daemon, no background loop, no missed events. The harness is the orchestrator.
  • Local-first, SQLite everywhere. Agent runs, routing decisions, memory, quality gates, hook output — all in ~/.claude/cast.db. No cloud round-trip. The dashboard is just a SELECT away. Data is yours; observability is yours.
  • Per-agent memory, not shared context. Each agent keeps its own scoped memory under ~/.claude/agent-memory-local/<agent>/. Cellar Door (below) extends this to a typed shared store when agents do need to coordinate — but the default is isolation, because shared context bleeds.
  • Policy gates that hard-block. Branch-protection bypass attempts, force-pushes to main, raw git commit — the hook layer refuses them. Quality is enforced at the seam, not by hoping the agent behaved.

1,306 BATS tests across 141 files cover the shell surface. The framework treats its own correctness as a first-class concern.


cast-desktop — Native Observability for CAST

cast-desktop · Tauri 2 + Rust + TypeScript · MIT · v1.0.0 — public release

The claude-code-dashboard is a web UI that requires a running server. cast-desktop packages CAST observability as a self-contained Tauri 2 native app — no Node, no server management, no configuration.

The desktop app binds native infrastructure to Claude Code's agent execution model:

  • Native PTY terminal (xterm.js backend + Rust pty layer) with persistent pane-to-session binding. Every terminal pane is tracked in pane_bindings table — cast.db always knows which CAST session owns which pane, so you can trace input/output back to the agent run that spawned it.
  • Inline code editor (CodeMirror 6 + TypeScript LSP sidecar) with agent dispatch. Select code in the editor, spawn a CAST agent, results stream back into the same window.
  • Full cast.db coverage: 55 Express routes, read-only by default, loopback-only (DNS-rebinding guard). Surfaces 24+ tables: sessions, agent runs, routing decisions, memory, hook events, cost telemetry, pane bindings.
  • Live session cost SSE: streams per-session burn rate ($/min) and 4-hour cost projection as tokens flow.
  • 6 themes — light/dark variants across professional, high-contrast, and accent-color choices.
  • Homebrew installable: brew tap ek33450505/cast-desktop && brew install cast-desktop

Design problems it solves:

  • Eliminates the "observability server management" friction that makes local dashboards feel like extra work.
  • Pane-to-session binding bridges the terminal and agent layers — you can see which terminal pane is executing which agent without tracing context manually.
  • Sidecar LSP + dispatch keeps the agent loop visible while you're coding — no context switch to a browser tab.
  • Local-only Express binding (no cloud round-trip) means latency is submillisecond; dashboard updates feel real-time.

All code and data flow through ~/.claude/cast.db — same source of truth as the CLI. Useful as a portfolio piece demonstrating Tauri architecture, SQLite query patterns under load, and React real-time data binding.


Ecosystem

Each package below is independently installable and stands on its own. CAST is what happens when you wire them together.

Package One line
cast-desktop See section above.
claude-code-dashboard React 19 + Express + SQLite observability UI for the agent loop. Sessions, agents, hook health, memory browser, SQLite explorer. v2.3.1.
cellar-door Typed shared memory for local AI agents — model-agnostic, Claude + Ollama. v0.3.0.
cast-hooks Standalone hook scripts — observability, safety, dispatch. Drop into any Claude Code setup. v0.2.0.
cast-memory Persistent agent memory with FTS5 search, relevance scoring, MCP server. v0.3.0.
cast-dash Terminal UI dashboard — Python + Textual. htop for CAST. v0.2.0.
cast-time Gives Claude Code a clock — local time + timezone injected at session start. v0.1.0.
cast-routines Schedule autonomous Claude Code routines — daily briefings, inbox triage, release celebration — via YAML + cron. v0.1.0.
cast-doctor Read-only health check for any Claude Code install — validates hooks, MCP, agent frontmatter, cast.db schema. v0.1.0.
cast-claudes_journal Cross-session continuity for Claude — Obsidian vault, wiki-link graph, SessionStart context injection. v0.2.0.
cast-observe Session cost + token-spend tracking. No framework required. v0.2.0.
cast-security Policy gates, PII redaction, audit trail, cast-audit consolidation. No framework required. v0.3.0.
cast-parallel Plan execution split across parallel git worktrees. v0.1.0.

All open source. All Homebrew-installable. All written to be useful without the rest.

Counts and versions on this page refresh dynamically from ~/Projects/personal/ via scripts/refresh-stats.sh.


Stack

Bash · Python · TypeScript · React 19 · Express 5 · SQLite · BATS · Vitest · Tauri 2. macOS first, Linux supported. Anthropic API + Claude Code Agent SDK.


Currently writing about agent observability, memory architecture, and what production multi-agent systems actually need. Reach out: edward.kubiak.dev@gmail.com.

Pinned Loading

  1. claude-agent-team claude-agent-team Public

    CAST: multi-agent orchestration framework for Claude Code with hook-enforced quality gates and observability.

    Shell 4

  2. cast-desktop cast-desktop Public

    The desktop app for CAST — every signal your agents emit, in one window. Tauri 2 + React 19 + Express 5 + SQLite. 11 dashboard views, native PTY terminal, Cmd+K palette. Local-first.

    TypeScript 1

  3. claude-code-dashboard claude-code-dashboard Public

    Web dashboard for Claude Code activity, agent runs, and CAST observability.

    TypeScript 4 1