Skip to main content

runkite-runner

Python runner for Runkite — a self-hosted Agent Protocol control plane.

This package is the process that does the work: it connects to a Runkite control plane over gRPC, claims jobs, loads your agent from langgraph.json, executes it (LangGraph by default), and streams events, heartbeats, and terminal status back so clients see live SSE / WebSocket progress in the Admin UI.

  Client / SDK ──HTTP/SSE──► Runkite control plane (Go)
                                    │ gRPC Runner Protocol
                                    ▼
                           runkite-runner (this package)
                                    │
                              your LangGraph agent
PyPI pip install runkite-runner
CLI runkite-runner · python -m runkite_runner
Companion (TS) runkite-runner on npm
Control plane GitHub Releases · ghcr.io/getrunkite/runkite
Docs Runners · Quick start · Site
License BUSL-1.1

Why a separate runner?

Runkite keeps the control plane framework-agnostic (auth, threads, runs, queues, Admin UI). Framework-specific execution lives in a runner so you can scale workers independently, mix Python and TypeScript agents on one plane, and upgrade LangGraph without redeploying the Go binary.


Install

pip install runkite-runner

Requires Python 3.11+. Pulls in LangGraph, gRPC, checkpoint Postgres support, httpx, uvicorn, and OpenTelemetry exporters (see pyproject.toml).


Quick start

1. Control plane (pick one):

# Docker
docker pull ghcr.io/getrunkite/runkite:latest
docker run --rm -p 2026:2026 -p 50051:50051 \
  -e RUNKITE_ALLOW_INSECURE_SERVE=1 \
  ghcr.io/getrunkite/runkite:latest \
  dev --config /app/examples/echo_agent/langgraph.json

# or binary from https://github.com/getrunkite/runkite/releases

2. Runner (this package):

runkite-runner \
  --config path/to/langgraph.json \
  --grpc-address 127.0.0.1:50051 \
  --http-address http://127.0.0.1:2026

3. Admin UI: http://127.0.0.1:2026/admin/

Minimal langgraph.json:

{
  "graphs": {
    "echo_agent": "./graph.py:graph"
  },
  "dependencies": ["."]
}

Examples live in the Runkite repo (echo_agent, react_agent, approval_agent, …).


Features

  • LangGraph graphs with streaming chunks, cancel, and HITL interrupt/resume
  • Durable checkpoints via AsyncPostgresSaver when POSTGRES_DSN is set; otherwise in-process MemorySaver (fine for local demos)
  • Store / vector dual-mode against the control plane’s APIs
  • Concurrency--concurrency N / RUNKITE_CONCURRENCY for overlapping I/O-bound jobs
  • OpenTelemetryrunkite.run span under the control plane traceparent, plus thin runkite.llm / runkite.tool children when OTLP env is set
  • Production auth — runner kind tokens (RUNNER_TOKEN / RUNNER_TOKEN_*) matching control-plane config

Framework adapters (same repo, not separate PyPI packages yet)

CrewAI, LlamaIndex, AutoGen, and plain LangChain runners live under python/adapters/ in the Runkite source tree and share runkite_runner.generic_worker. Install those from a clone with an isolated venv when you need them — see docs/runners.md.


Configuration

Flag / env Purpose
--config Path to langgraph.json
--grpc-address Control plane gRPC (default from env / localhost)
--http-address Control plane HTTP for store/proxy helpers
--concurrency / RUNKITE_CONCURRENCY Max in-flight jobs (default 1)
POSTGRES_DSN Direct-mode checkpoints + store pool
RUNNER_TOKEN Shared secret presented on gRPC / /internal/*
OTEL_EXPORTER_OTLP_* Enable tracing export (same contract as the control plane)
LOG_LEVEL / LOG_FORMAT Logging (info, debug, … · text / json)

Related artifacts

Artifact Install
Control plane binary GitHub Releases
Control plane image docker pull ghcr.io/getrunkite/runkite:latest
Python runner image docker pull ghcr.io/getrunkite/runkite-runner:latest
TypeScript runner npm install -g runkite-runner
Helm deploy/helm/runkite

Links

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

runkite_runner-0.2.0.tar.gz (107.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

runkite_runner-0.2.0-py3-none-any.whl (74.1 kB view details)

Uploaded Python 3

File details

Details for the file runkite_runner-0.2.0.tar.gz.

File metadata

  • Download URL: runkite_runner-0.2.0.tar.gz
  • Upload date:
  • Size: 107.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for runkite_runner-0.2.0.tar.gz
Algorithm Hash digest
SHA256 300f2ea04a4da0a3c16af12eb699959e71861b7a2d10b5a3bd1237ea2f618a85
MD5 3285494fcf606e1e6b8c9f0e1c8da060
BLAKE2b-256 83cce0c387a8e50574b4b561481a1e3738ace282b499c6ae705c097e1cbf3ab5

See more details on using hashes here.

File details

Details for the file runkite_runner-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: runkite_runner-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 74.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for runkite_runner-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5af1d374ff5b3005e9d8ef49d0801620a0fd908b82dc0e7f5b4d41002272d659
MD5 9cce71d1550318374ca60075d9ceda43
BLAKE2b-256 e628311a61f48e58f6f3dd5035494ca20f084b50187212a85a6f497b40307fe5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page