I build agent-native developer tools and local-first product surfaces: custom coding-agent skills, TypeScript/React apps, orchestration UI, tmux-based workflows, and practical engineering systems.
My strongest work sits where product engineering, complex state, and AI agent workflows meet: long-running tasks, approvals, retries, tool calls, session handoff, and the developer experience around all of it.
| Project | Focus |
|---|---|
| agentscan | Rust CLI and daemon for discovering AI agent panes in tmux |
| tprompt | Go TUI and daemon for prompt selection and tmux delivery |
| diffwarden | Agent-callable CLI for reviewing local changes, branch diffs, and commits |
| warcraft-cli | World of Warcraft data CLI suite for guides, references, rankings, logs, and simulation workflows |
| zoxide-doctor | LLM-powered doctor for recovering from bad zoxide directory jumps |
| custom-skills | Curated coding-agent skills with reproducible install and project deployment workflows |
| custom-agents | Shared agent definitions generated for Claude, Copilot, Codex, and Gemini |
| reviewgraph | LangGraph-powered PR review orchestrator with staged multi-agent reviewers and human-gated GitHub writes |
| routerchat | Local-first open-source chat for OpenRouter with optional self-hosted Convex cloud sync |
| agentchat | Self-hosted multi-runtime agent chat harness with operator-owned state |
| atlassian-cli | True-to-API Jira and Confluence CLIs |
- Custom coding-agent skills, reusable agent definitions, and project-specific workflows
- routerchat: local-first OpenRouter UX, model choice, and optional Convex sync
- Agent-native product UX in TypeScript, React, Bun, and Convex
- Complex state for long-running agent tasks, retries, approvals, and handoff
- Local-first developer tooling around tmux, CLIs, and multi-agent workflows
- Practical engineering systems that help humans and agents share the same codebase


