An open-source, in-app inspector for eve agents. It turns an agent's event stream into a live visual trace of conversations, reasoning, tool calls, token usage, and timing.
The inspector runs as a floating panel inside your app, making it easier to understand agent behavior without switching to a separate dashboard.
- Inspect turns, reasoning, tool inputs and outputs, errors, and usage as they happen.
- Drop it into any browser app with a small framework-agnostic API or the React provider.
- Keep application styles isolated with a shadow root.
- Debug locally without sending data anywhere. The package makes no network requests.
bun add eve-devtoolsmount() appends the panel to document.body and returns a handle. Pass its onEvent to eve's observe-only callback, and the panel traces the conversation:
import { mount } from "eve-devtools";
const devtools = mount();
const agent = useEveAgent({ onEvent: devtools.onEvent });onEvent(event) feeds one stream event; unknown events are ignored, so any HandleMessageStreamEvent can be passed through unfiltered. Call devtools.unmount() to remove the panel.
Wrap the app once in EveDevtoolsProvider. enabled limits the panel to development builds (React is an optional peer dependency, only needed for this entry):
import { EveDevtoolsProvider } from "eve-devtools/react";
function Root() {
return (
<EveDevtoolsProvider enabled={process.env.NODE_ENV === "development"}>
<App />
</EveDevtoolsProvider>
);
}Anywhere below the provider, read the handle with useEveDevtools() and pass its onEvent to the agent. The handle is undefined until the provider has mounted, so guard the call:
import { useEveDevtools } from "eve-devtools/react";
function Chat() {
const devtools = useEveDevtools();
const agent = useEveAgent({ onEvent: devtools?.onEvent });
return <Conversation agent={agent} />;
}Issues and pull requests are welcome. To run the project locally:
bun install
bun run dev # demo page with a minimal eve agent traced live
bun run check # lint, format, and typesThe demo lives in demo/ and calls its model through the Vercel AI Gateway. Set AI_GATEWAY_API_KEY in demo/.env.local before starting it.
MIT