Runkite is what LangSmith Deployments would be if it were open source, framework-agnostic, and shipped as one Go binary — and then some.
A self-hosted Agent Protocol control plane you own — not a LangSmith API clone, not LangGraph-only. Pluggable runners (LangGraph, CrewAI, LlamaIndex, AutoGen, LangChain, LangGraph.js), agent-to-agent delegation, embedded Admin UI, and honest backend tiers beyond a single PG+Redis stack.
On the plane, not only in the agent: fail-closed connector grants, durable policy audit, connector HITL, kill/pause, and break-glass on SQL backends — with Admin pages for each. Prove the announce bar with make smoke-governance. Details: Trust & governance · Admin UI.
- Website: https://getrunkite.github.io/runkite/
- Releases / binaries: https://github.com/getrunkite/runkite/releases
- PyPI runner: https://pypi.org/project/runkite-runner/
- npm runner: https://www.npmjs.com/package/runkite-runner
Admin UI — ops + SQL governance (grants, HITL, kill, audit)
http://localhost:2026/admin/ after runkite serve or runkite dev
| Agent Protocol, in Go | HTTP / SSE / WebSocket, auth, streaming, job dispatch, persistence, connectors — one static binary |
| Bring your framework | LangGraph, CrewAI, LlamaIndex, AutoGen, LangChain, LangGraph.js over the same gRPC Runner Protocol |
| Agent-to-agent | One agent calls another mid-run (call_agent / callAgent) — docs/a2a.md |
| Ops without a second deploy | React Admin UI embedded via embed.FS — no Node runtime for end users |
| Plane governance | Run-bound connectors; grants, HITL, kill, break-glass, audit (SQL). Trust & governance · make smoke-governance |
| Honest backends | Supported: Postgres + Redis HA. Also wired: SQLite, MySQL, MongoDB, NATS, Kafka, vectors — tiers |
Catalog of parts — Agent Protocol on top; Runner Protocol to workers; state / transport / vectors under the plane
sequenceDiagram
autonumber
participant C as Client / SDK
participant LB as Load balancer
participant CP as CP replica
participant PG as Postgres
participant RD as Redis
participant R as LangGraph runner
Note over C,CP: Agent Protocol (HTTP / SSE / WebSocket)
C->>LB: POST create thread + run
LB->>CP: route to a replica
CP->>PG: persist thread + run
CP->>RD: enqueue job
Note over CP,R: Runner Protocol (gRPC) — Runkite-defined
R->>CP: GetJob
CP->>RD: dequeue
CP-->>R: RunAssignment (graph_id, input, config…)
Note over R: Runner loads the graph and runs the agent / LLM turn
R->>CP: StreamEvents
CP->>RD: publish events (multi-replica fan-out)
Note over C,CP: Agent Protocol again
CP-->>C: SSE / WebSocket live output
sequenceDiagram
participant Coord as Coordinator agent
participant CP as Control plane
participant Work as Worker agent
Note over Coord,CP: Parent run already executing on a runner
Coord->>CP: call_agent / callAgent (internal A2A)
CP->>CP: depth check · parent/root bookkeeping
CP->>Work: enqueue child run (Runner Protocol)
Work-->>CP: result
CP-->>Coord: child output (wait=True)
Protocol table, backend tiers, dual-mode notes: docs/architecture.md · A2A details: docs/a2a.md.
| Piece | Get it |
|---|---|
| Control plane | GitHub Releases · docker pull ghcr.io/getrunkite/runkite:latest · or make build |
| Python runner | pip install runkite-runner |
| TypeScript runner | npm install -g runkite-runner |
| Helm | deploy/helm/runkite |
git clone https://github.com/getrunkite/runkite && cd runkite && make build
# terminal 1 — zero-deps (SQLite + in-memory)
./runkite dev --config examples/echo_agent/langgraph.json
# terminal 2
pip install runkite-runner
runkite-runner --config examples/echo_agent/langgraph.json \
--grpc-address 127.0.0.1:50051 --http-address http://127.0.0.1:2026Admin: http://localhost:2026/admin/ · Health: http://localhost:2026/health
Full walkthrough (SDK stream, Postgres/Redis, auth): docs/quickstart.md · docs/client-sdk.md
| Quick start · Client SDK · Configuration · Auth | Getting started |
| Admin UI · Runners · Architecture · API | Core |
| Connectors · A2A · MCP · Registry · Vectors | Features |
| Deployment · Trust & governance · Limitations · All docs | Ops |
Examples under examples/ (echo_agent, approval_agent, a2a_agent, policy_webhook, …).
make test # SQLite + in-memory
make smoke-governance # governance announce bar (Postgres)
make test-e2e # black-box binary + runnerFull targets, kind Helm smokes, matrix: CONTRIBUTING.md · docs/deployment.md.
Business Source License 1.1. Licensor: Sharan Harsoor.
Use, modify, and self-host freely (including production). You may not offer Runkite as a hosted/managed service to third parties without a commercial license. Converts to Apache 2.0 four years after each release — see LICENSE.
See CONTRIBUTING.md. Security issues: SECURITY.md, not a public issue.

