Instrument with the Wizard
Add Neatlogs to your project in minutes with one command.
The fastest way to add Neatlogs to an existing project is the wizard. Run one command, give it your API key, and it instruments your code for you.
Would you rather use the coding agent you already work with? Instrument with coding agents gives you a prompt to paste into it instead.
npx @neatlogs/wizard@latestRun it from your project root.
For an EU project, use its EU project key and select the EU region:
npx @neatlogs/wizard@latest --region euWhat it does
The wizard reads your project to detect its language, LLM providers, agent frameworks, and vector databases, then installs and instruments the matching Neatlogs SDK. Doctor checks are delegated to that installed same-language SDK; the wizard does not recreate Doctor capture, transport, or readback. If the installed SDK does not expose the supported Doctor v2 contract, the wizard fails closed with an upgrade instruction instead of substituting another runtime.
When it finishes, run the real instrumented path and verify the resulting trace in the dashboard. A successful install or source edit alone is not proof that telemetry was persisted. The wizard also leaves behind a project-specific skill so your coding agent can keep instrumenting new code as your project grows, and offers to connect the MCP server so your agent can query your traces. Both are optional.
Verify in three separate steps
From the project root, local Doctor runs before instrumentation changes and is network-free:
npx @neatlogs/wizard@latest doctor --local --jsonAfter instrumentation and approved project checks, configure
NEATLOGS_API_KEY through your shell or secret manager, then run the hosted
probe separately:
npx @neatlogs/wizard@latest doctor --probe --jsonFinally, exercise a representative user workflow and inspect that exact finalized trace. These results are not interchangeable: local success proves a controlled SDK envelope, probe success proves the controlled four-span trace survived the normal hosted write/read path, and real-workflow verification proves the application entry point and lifecycle are instrumented correctly. Neither exporter flush nor an HTTP 2xx response alone is an end-to-end pass.
The wizard forwards cancellation or interruption to the installed SDK Doctor, waits for it to stop, and reports an incomplete result rather than success. A retry is safe: it makes no instrumentation edits and creates fresh controlled trace IDs, so each probe validates only its own trace. See SDK Doctor for the SDK capability checks, pass criteria, and troubleshooting.
Requirements
- Node.js ≥ 20 (the wizard runs via
npx, whether your project is Python, TypeScript, or Go) - The latest published stable
@neatlogs/wizardrelease. The explicit@latestcommands above resolve that release instead of pinning one patch. - A Neatlogs account and API key
Supported stacks
The wizard detects Python, TypeScript, and Go projects. The available integration mechanism depends on the language and library:
| Supported | |
|---|---|
| LLM providers | OpenAI, Anthropic, Google GenAI, AWS Bedrock, Cohere, Groq, Mistral, Together, Ollama, Replicate, OpenRouter, Portkey, LiteLLM, Azure AI Inference, Vertex AI (Python); OpenAI, Anthropic, Google GenAI, AWS Bedrock, OpenRouter, plus Vertex AI through LangChain (TypeScript); Google GenAI for Go |
| Agent frameworks | LangChain, LangGraph, CrewAI, LlamaIndex, OpenAI Agents, Pydantic AI, DSPy, Agno, Google ADK, Strands, AutoGen, Haystack, Smolagents, Hermes (Python); LangChain, LangGraph, Mastra, Vercel AI SDK, OpenAI Agents, Pi Agent (TypeScript); Google ADK through the explicit private-provider integration in Go |
| Vector databases | Chroma, Pinecone, Qdrant, Weaviate, Milvus, Elasticsearch (Python) |
If your project mixes frameworks (say, the Vercel AI SDK plus LangChain in one app), the wizard instruments each one the right way.
Using Azure OpenAI? The SDK fully supports it via
neatlogs.wrap(AzureOpenAI(...))/wrapAzureOpenAI(...). The wizard doesn't auto-detect it yet, so wire it up with the one-line wrap from the Azure OpenAI integration.
Prefer to do it by hand?
The wizard is the recommended path, but everything it does you can do yourself. Follow the Python SDK, TypeScript SDK, or Go SDK guide for manual setup.
