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.
Multi-agent systems fail in predictable ways: routing is opaque, memory bleeds across agents, policy is aspirational, and observability stops at the tool call. I’ve spent the last six months doing field research into exactly those failure modes — building CAST to fill the gaps (observability, orchestration, persistent memory) that didn’t yet exist in the Claude Code ecosystem.
CAST is a local-first OS layer for Claude Code: a hook-driven agent registry, a typed SQLite event store, per-agent memory isolation, and policy gates that hard-block at the seam rather than hope the agent behaved. The work is partly framework, partly instrumented test bed — every design decision is the result of something breaking in a way I didn’t anticipate.
claude-agent-team · Bash · MIT · **v7.4.17.4.123 specialist agents, hook-driven dispatch, model-tier routing, per-agent persistent memory, and a 38-table SQLite event store that makes the whole loop inspectable.
brew tap ek33450505/cast && brew install castA 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.
1199 BATS tests across 126 files cover the shell surface. The framework treats its own correctness as a first-class concern.
cast-desktop · Tauri 2 + Rust + TypeScript · MIT · v1.2.12
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_bindingstable — 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: 70+ Express routes, read-only by default, loopback-only (DNS-rebinding guard). Surfaces 38 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.
- 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 means no cloud round-trip, so updates feel real-time.
All code and data flow through ~/.claude/cast.db — same source of truth as the CLI.
claude-agent-team— CAST core: the framework, hook layer, agent registry, cast.db.cast-desktop— Tauri 2 native observability app.claude-code-dashboard— React 19 + Express + SQLite observability UI.cast-hooks— the lifecycle hook scripts.
Full CAST ecosystem — 12 Homebrew-installable packages
| Repo | Description | Latest | Install |
|---|---|---|---|
| cast-hooks | 13 auditable hook scripts — observability, safety guards, quality gates. SessionStart, PreToolUse, PostToolUse, PostCompact. | brew tap ek33450505/cast-hooks && brew install cast-hooks |
|
| cast-agents | 23 specialist agents — commit, debug, review, plan, test, research, and more. Agent definitions with YAML frontmatter. v7-synced. | brew tap ek33450505/cast-agents && brew install cast-agents |
|
| cast-memory | Persistent agent memory with FTS5 search, relevance scoring, shared pool, semantic embeddings. Per-agent knowledge accumulation. | brew tap ek33450505/cast-memory && brew install cast-memory |
|
| cast-routines | Scheduled autonomous Claude Code routines via YAML + cron. Daily briefings, inbox triage, release celebration, weekly cost reports. | brew tap ek33450505/cast-routines && brew install cast-routines |
|
| cast-parallel | Parallel agent execution across worktree sessions. Agent Dispatch Manifest (ADM) support. | brew tap ek33450505/cast-parallel && brew install cast-parallel |
|
| cast-observe | Session-level observability — cost tracking, agent run history, token spend, event sourcing. Feeds cast.db. | brew tap ek33450505/cast-observe && brew install cast-observe |
|
| cast-security | Security hooks and audit trails. PII redaction, parry-guard integration, compliance logging. | brew tap ek33450505/cast-security && brew install cast-security |
|
| cast-doctor | Read-only health check for any Claude Code install. Validates hooks, MCP servers, agent frontmatter, cast.db schema, stale memories. | brew tap ek33450505/cast-doctor && brew install cast-doctor |
|
| cast-time | Gives Claude Code a clock — injects local time, timezone, and a semantic time-of-day bucket at every SessionStart. | brew tap ek33450505/cast-time && brew install cast-time |
|
| cast-dash | Terminal UI dashboard for live swarm monitoring. 4-panel real-time display (Textual framework). | brew tap ek33450505/cast-dash && brew install cast-dash |
|
| cast-claudes_journal | Session continuity — Claude's Journal auto-injects prior-day context via SessionStart hook. Obsidian vault sync. | brew tap ek33450505/homebrew-claudes-journal && brew install claudes-journal |
|
| cast-website | castframework.dev — marketing site and docs portal for the CAST ecosystem. | — | |
| cast-desktop | Tauri 2 native app — embedded PTY terminal, command palette, ~20 dashboard views. | brew tap ek33450505/homebrew-cast-desktop && brew install cast-desktop |
Not part of the CAST ecosystem proper but built alongside:
| Project | One line |
|---|---|
cellar-door |
Typed shared memory for local AI agents — model-agnostic, Claude + Ollama. |
All open source. All Homebrew-installable where applicable.
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.



