Both are open-source. They sit at different layers of the stack. OpenHands is a coding agent with a UI; Linchpin is the runtime you would build a coding agent on top of. You can run them side by side.
Linchpin is an open-source managed-agent runtime. It is a platform — three services and Postgres — that runs agents as long-lived sessions. You define an agent (system prompt, tools, model), create an environment (capabilities and policies), open a session, send events, and stream the agent's replies back via SSE. Linchpin does not ship a coding-agent UI; it ships the runtime layer beneath one. License: Apache-2.0. Stack: FastAPI, React, Postgres 16, Docker. Models: OpenRouter (cloud) and Ollama (local).
OpenHands (formerly OpenDevin) is an open-source coding agent that runs tasks end-to-end in a sandbox. It ships its own web UI, its own agent loop, its own evaluation harness. The primary use case is "give me an agent that writes and runs code for me." OpenHands supports a wide set of LLM providers via litellm and runs the agent in a Docker sandbox. License: MIT. Stack: Python, React.
Different abstraction layers. OpenHands is a coding agent you use. Linchpin is the platform on which you would build a coding agent (or a research agent, or a customer-support agent — whatever).
| Dimension | Linchpin | OpenHands |
|---|---|---|
| What it is | Managed-agent runtime (platform) | Coding agent with UI (product) |
| License | Apache-2.0 | MIT |
| Self-host | Yes — docker compose up | Yes — docker run |
| Ships a UI | Yes — a console for sessions, but no opinionated agent UX | Yes — a full coding-agent UI |
| Model providers | OpenRouter + Ollama only | Wide (via litellm — OpenAI, Anthropic, etc.) |
| Sandbox model | Per-session Docker container, dedicated network | Per-task Docker container |
| Event log | Append-only, cursor-paginated, SSE replay | In-memory + persistence; tied to agent loop |
| API surface | HTTP /v1 for agents/environments/sessions/events | HTTP API focused on tasks; primarily UI-driven |
| Tools | Built-in eight (bash, read, write, edit, glob, grep, web_fetch, web_search) plus MCP via stdio | Built-in (file ops, browser, bash, etc.); domain-tuned for coding |
| MCP support | Yes (stdio MCP servers) | Yes (recent versions) |
| RBAC / SSO | No (single-tenant) | No |
| Typical use | Build your own agent product on top of it | Have an agent code for you |
They are not exclusive. OpenHands runs as a coding agent; Linchpin runs as a runtime for whatever agents you define. A reasonable architecture: use OpenHands for ad-hoc coding tasks (developer-facing), and use Linchpin as the runtime for the production agents your application actually ships to users (customer-facing). Different layers, different jobs.
If you are choosing only one and your need is "an agent that codes for me on demand," pick OpenHands. If your need is "infrastructure to run agents inside my product," pick Linchpin. See the docs for the quickstart.
Linchpin is younger and smaller than OpenHands. If you want to bet on the largest open-source agent project today, OpenHands is the safer bet. If you want a runtime layer that you can read top-to-bottom in an afternoon, Linchpin is the right shape.