One destination. SDKs, OTel, webhooks.
Ingest from anywhere, trace across every hop, stream events out to wherever you need them — without locking in to a proprietary agent.
Three SDKs, one endpoint.
Publish from Python, subscribe from TypeScript, or drop in as an OTel exporter — whichever your stack already speaks.
from axonpush import AxonPush
from axonpush.integrations.langchain import (
AxonPushCallbackHandler,
)
client = AxonPush(api_key="ak_...")
llm.invoke(
"Plan a trip",
callbacks=[AxonPushCallbackHandler(client)],
) import { AxonPush } from "@axonpush/sdk";
import { axonPushMiddleware }
from "@axonpush/sdk/vercel-ai";
const client = new AxonPush({ apiKey: "ak_..." });
const model = wrapLanguageModel({
model: openai("gpt-4o"),
middleware: axonPushMiddleware({ client }),
}); export OTEL_EXPORTER_OTLP_ENDPOINT=\
https://api.axonpush.xyz
export OTEL_EXPORTER_OTLP_HEADERS=\
"authorization=Bearer ak_..."
# OTLP/HTTP + JSON normalizer, same endpoint.
# every OTel span now lands in axonpush. Already on Sentry? Point your DSN at us.
We accept the Sentry envelope unmodified — error, transaction, and session payloads — and normalize them to OTLP + agent events. Zero code change, one config line.
Ingest. Environments. Trace. Stream.
Four primitives. Every agent framework and every backend language maps to them.
Ingest
Any agent framework, any backend language, any OpenTelemetry collector — routed to the same destination. Sentry DSNs work unmodified too.
- Python + TypeScript SDKs (Go + Rust on the way)
- OTLP/HTTP + OTLP/JSON normalizer on api.axonpush.xyz
- LangChain, OpenAI Agents, CrewAI, Anthropic, Pino, Winston, loguru out of the box
- Async queue-based persistence — ingest stays fast under bursty agent traffic
Environments
Scope every token, channel, and event to dev, staging, or prod. Promote an ephemeral sandbox when it's ready; tear it down when it isn't.
- Per-environment public tokens — rotate without downtime
- Production badge on the dashboard trigger — no accidental cross-env writes
- Ephemeral envs for preview branches, default env per app
Trace
Follow a single request across agents, tool calls, and service boundaries — correlated from OTel spans and agent events.
- Waterfall viewer with nested span collapse
- Cross-source correlation (agent ↔ backend ↔ OTel)
- Lucene search by trace ID, agent, tool, duration, or status
Stream
Push events downstream as they happen. No polling, no batch lag — useful for live UIs, alerting, and pipeline fan-out.
- Server-Sent Events for sub-second client push
- Signed outbound webhooks filtered by channel/agent/type
- OTLP export to Datadog, Tempo, Honeycomb, your own collector
Point your collector at api.axonpush.xyz.
If you already ship OTel, the change is one config line. If you don't, run `npx skills add axonpush/skills` and your AI coding agent (Claude Code, Cursor, Codex, +47 others) wires the SDK into your project.