An LLM-agnostic observability system for agentic coding sessions. The goal
is to provide a base system that any agentic coding tool can plug into.
Currently Claude Code is connected through hooks, but the architecture is
explicitly designed to support multiple sources: any tool can POST to the
same POST /events/ingest endpoint with a source_app field, and the
payload structure is flexible (JSON).
It shows a real-time event stream on a vertical timeline: every tool call, prompt, session event, and subagent activity is displayed, with a Markdown/diff/Q&A overlay for details, plus filters and a compact view to handle high event volumes.
Status: under active development, not production-ready. APIs, data schema, and UI may change at any time.
Claude Code ──(stdin JSON)──> hooks/*.py ──(fire-and-forget HTTP POST)──> server ──> SQLite
│
▼
WebSocket broadcast
│
▼
client (Astro+Vue)
hooks/— Python scripts that forward Claude Code hook events to the server. They have no external dependencies and are launched withuv run.server/— FastAPI + SQLAlchemy (async) + SQLite, WebSocket live streaming, optional API key auth, and rate limiting.client/— Astro + Vue 3 client: event timeline, filters, session management, dark/light mode.
Prerequisite: uv and Node.js 22+.
just setup # server + client dependencies, database migration
just dev # run server + client together (Ctrl+C stops both)If you don't have just installed, see the justfile or the
component-specific READMEs:
- server/README.md — server startup, endpoints, auth
- client/README.md — client startup, features
- hooks/README.md — Claude Code hook installation
No license has been assigned yet.