I built PrismCat because I got tired of not knowing what LLM SDKs (like LangChain or various OpenAI/Anthropic wrappers) were silently injecting into my prompts behind the scenes. It's often hard to debug why a streaming request froze, or why a function-calling agent returned malformed JSON, without diving deep into SDK code.
PrismCat is a single-binary, self-hosted proxy and UI designed to run silently 24/7 as an LLM "black box" logger.
How it works: It uses subdomain routing to achieve transparent proxying. For example, if you add an upstream named `openai`, PrismCat exposes `http://openai.localhost:8080`.
Modern operating systems and browsers resolve `*.localhost` to `127.0.0.1` automatically, so you don't even need to edit your `/etc/hosts` file. You just change one line in your code—the `base_url`—and everything gets captured transparently (including Server-Sent Events/streaming).
Key features: - Fully local-first: written in Go, stores data in SQLite, never sends your keys or prompts to a third party. - Interactive Playground: Tweak and replay failed requests in the UI without re-running your scripts. - SSE capture: Captures and reconstructs SSE chunks so you can inspect the raw flow. - Request Override (Opt-in): Intercept and rewrite outgoing requests/headers without code changes.
I'd love to hear your feedback on the implementation (especially the subdomain routing approach) and what features you'd like to see next!
seacen•50m ago