Both are open-source and self-hostable. They aim at different users: Dify is a visual LLMOps platform with a drag-and-drop workflow builder for non-developer-led teams. Linchpin is a code-first agent runtime exposed as an HTTP API. Different audience, different abstraction.
Linchpin is an open-source managed-agent runtime. Three services and Postgres on a single VM. You define agents (system prompt + tools + model), environments (capabilities and policies), and open sessions over an HTTP API. Output streams back via SSE from an append-only event log. Code-first, language-agnostic via HTTP. Apache-2.0. Stack: FastAPI, React, Postgres 16, Docker. Models: OpenRouter (~200) and Ollama (local).
Dify is an open-source LLMOps platform. The headline feature is a visual workflow builder where you wire blocks — prompts, tools, branches, datasets — into a chatbot or agent. It ships with a polished web UI, dataset / RAG ingestion, prompt management, and observability. Self-hostable via Docker. Broad model provider integration. License: Apache-2.0 with some commercial restrictions historically; check the LICENSE file in the version you install.
Frame: Dify is a platform for building agent products through a visual UI. Linchpin is a runtime layer exposed as an HTTP API for engineering teams who write code.
| Dimension | Linchpin | Dify |
|---|---|---|
| Primary surface | HTTP API + SSE (code-first) | Visual workflow builder (UI-first) |
| License | Apache-2.0 | Apache-2.0 (verify the version's LICENSE for commercial-use clauses) |
| Self-host | Single VM, docker compose up | Single VM, docker compose up |
| Target user | Engineers building agent products | Non-engineering teams + engineers building chatbots / RAG apps |
| Model providers | OpenRouter (~200) + Ollama only | Broad: OpenAI, Anthropic, Azure, Bedrock, Hugging Face, etc. |
| RAG / datasets | Not built-in; you wire your own retrieval via tools or MCP | Built-in dataset ingestion, vector store, retrieval |
| Sandbox | Per-session Docker container, per-env network policy | No per-session container sandbox |
| Built-in tools | 8 (bash, read, write, edit, glob, grep, web_fetch, web_search) | Wide catalog via visual builder |
| MCP support | Yes (stdio MCP servers in the sandbox) | Has MCP integration in recent versions |
| Event log | Append-only Postgres, SSE replay, cursor-paginated | Conversation history + observability traces |
| UX out of the box | Functional session console, not opinionated | Polished chatbot UI, embeddable widgets |
| Multi-tenant | No (single-tenant) | Yes (workspaces, members) |
bash, file ops, and a real shell is built for agents that execute, not just chat./v1 API. No visual builder to maintain; your agent definitions live in your repo.They are compatible. A pragmatic split: Dify for customer-facing chatbots and RAG apps where the workflow is mostly LLM calls + retrieval. Linchpin for internal agents that need to run code, hit the filesystem, or call MCP tools in a sandbox. Both run on the same host under docker compose.
If you must pick one and your agents need to do things in a shell, pick Linchpin. If your agents are mostly chatbots over your data, pick Dify.
Dify is more mature, has more community, more contributors, more polish. Linchpin is younger, smaller, more focused. If "agent that runs code in a sandbox" is the load-bearing requirement, Linchpin is the better-shaped tool. If it is not, Dify is the safer general-purpose bet.