Linchpin is an open-source managed-agent runtime. Deploy it on your VM with docker compose up and run AI agents against any cloud or local model. The data never leaves your environment.
Teams who cannot, will not, or do not want to send their data to a third-party hosted agent service. The most common reasons we hear:
You want an agent that reads PRs against an internal monorepo, runs lint and tests inside a sandbox, and posts review comments. The repo cannot leave your VPC. Linchpin runs the agent inside a per-session container on a network you control; the agent talks to your internal git host over the private network and to OpenRouter (or your own self-hosted gateway) for the model calls.
An agent that answers questions over a warehouse of customer data. The query plan, the SQL, the result rows, and the final answer all need to stay inside your perimeter. Run Linchpin on the same VPC as the warehouse. The agent's tool definitions point at internal services; nothing goes out except the LLM prompt itself, and you can route that through a self-hosted gateway if needed.
An agent that helps clinicians, claims adjusters, or analysts work through case files. HIPAA, SOC 2, internal audit — Linchpin's append-only event log gives you a tamper-evident record of every action. The runtime is yours; the audit trail is yours; the deployment posture is yours.
Everything runs on one machine — a small VM is enough to start. Three services plus Postgres, all in docker compose. Per-session sandbox containers spin up on demand.
flowchart LR
user[Your client] -->|HTTP| api[linchpin-api
FastAPI]
api --> pg[(Postgres 16
event log)]
api --> conn[linchpin-connector
docker exec]
conn --> sbx[per-session
sandbox container]
api -->|model call| router[OpenRouter
or Ollama]
api -->|SSE stream| user
style api fill:#B83A1A,color:#F4F2EC
style pg fill:#1A1A1A,color:#F4F2EC
Hardware sizing: 4 GB RAM minimum for the platform itself; 16 GB recommended once you are running multiple concurrent sessions. If your models are local (Ollama), the model is the binding constraint and you want a GPU. If your models are cloud (OpenRouter), CPU and RAM are plenty.
Clone, configure, run. The end-to-end is documented in the docs and the repo README. The short version:
# 1. clone git clone https://github.com/linchpinhq/linchpin cd linchpin # 2. configure cp .env.example .env # set OPENROUTER_API_KEY or OLLAMA_HOST + LINCHPIN_API_KEY + VAULT_ENCRYPTION_KEY # 3. run docker compose up --build
The console comes up at localhost:5173 and the API at localhost:8000. From there, create an environment, define an agent, and open a session. The homepage quickstart walks through the curl flow.