runkite

mcp
Security Audit
Warn
Health Warn
  • License — License: NOASSERTION
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 6 GitHub stars
Code Pass
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

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

README.md

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

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)

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.

Reviews (0)

No results found