Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

265 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Runkite

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.

CI Matrix License: BUSL-1.1 Go PyPI npm GHCR Site

Runkite Admin UI walkthrough

Admin UI — ops + SQL governance (grants, HITL, kill, audit)
http://localhost:2026/admin/ after runkite serve or runkite dev


Why Runkite

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

Architecture

How Runkite fits together: clients to control plane to runners, with pluggable state, transport, and vector backends

Catalog of parts — Agent Protocol on top; Runner Protocol to workers; state / transport / vectors under the plane

One run on the HA profile

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
Loading

Agent-to-agent

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)
Loading

Protocol table, backend tiers, dual-mode notes: docs/architecture.md · A2A details: docs/a2a.md.

Quick start

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:2026

Admin: http://localhost:2026/admin/ · Health: http://localhost:2026/health

Full walkthrough (SDK stream, Postgres/Redis, auth): docs/quickstart.md · docs/client-sdk.md

Documentation

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, …).

Development

make test                 # SQLite + in-memory
make smoke-governance     # governance announce bar (Postgres)
make test-e2e             # black-box binary + runner

Full targets, kind Helm smokes, matrix: CONTRIBUTING.md · docs/deployment.md.

License

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.

Contributing

See CONTRIBUTING.md. Security issues: SECURITY.md, not a public issue.

About

Self-hosted Agent Protocol control plane. Framework-agnostic runners, embedded Admin (ops + SQL governance), pluggable Postgres/Redis HA, connector policy and audit.

Topics

Resources

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages