Quickstart
Send your first trace to Foxhound in under five minutes.
Python
Manual tracing
from foxhound import FoxhoundClient
fox = FoxhoundClient(
api_key="fox_...",
endpoint="https://your-foxhound-instance.com",
)
async with fox.trace(agent_id="my-agent") as tracer:
span = tracer.start_span(name="tool:search", kind="tool_call")
span.set_attribute("query", "user question")
span.end()
LangGraph (quickstart)
from foxhound import FoxhoundClient
from foxhound.integrations.langgraph import FoxCallbackHandler
fox = FoxhoundClient(api_key="fox_...", endpoint="https://your-foxhound-instance.com")
handler = FoxCallbackHandler.from_client(fox, agent_id="my-langgraph-agent")
result = await graph.ainvoke(state, config={"callbacks": [handler]})
await handler.flush()
TypeScript / Node.js
import { FoxhoundClient } from "@foxhound-ai/sdk";
const fox = new FoxhoundClient({
apiKey: "fox_...",
endpoint: "https://your-foxhound-instance.com",
});
const tracer = fox.startTrace({ agentId: "my-agent" });
const span = tracer.startSpan({ name: "tool:search", kind: "tool_call" });
span.setAttribute("query", "user question");
span.end();
await tracer.flush();
View Traces
After running your agent, open the local viewer:
# Python
foxhound ui
# TypeScript / Node.js
npx foxhound ui
Or navigate to your Foxhound instance dashboard to explore the full span tree.
Next Steps
- Your First Trace → — explore the Foxhound UI
- Python SDK Reference → — all tracing APIs and framework integrations
- TypeScript SDK Reference → — OTel bridge and native SDK