GitHub - derive-to/derive: Review and approval for work made by AI agents. Fair Source, self-hostable, and MCP-native.
Publish, review, and own your AI artifacts.
[](https://github.com/derive-to/derive#publish-review-and-own-your-ai-artifacts) One durable URL for every version, comment, revision, and decision. Your team reviews the work; any compatible agent can act on the feedback. Hosted, or one self-hosted container.


Try it now
[](https://github.com/derive-to/derive#try-it-now) No account or install is needed. One request publishes a live page:
curl -F file=@page.html https://derive.to/v1/drafts # or a .zip of a whole site
→ a live URL, plus a claim link that turns the draft into a
permanent, versioned artifact in your workspace
Give your agent a durable place to publish, find, and improve work:
npx skills add derive-to/derive --skill derive # any agent that reads skills claude mcp add --transport http derive https://derive.to/mcp # or connect over MCP
Or paste this into a compatible coding agent and let it set itself up:
``` I'd like you to set up Derive: where the work we make gets published, reviewed, and kept.
Install the skill if I have npm: npx skills add derive-to/derive --skill derive Otherwise, read https://derive.to/skill.md and follow it (MCP server: https://derive.to/mcp).
Then pick a plan, report, or designed page we've worked on recently and publish it. If I'm not connected to Derive, use the anonymous draft flow. It needs no account and returns a live URL with a claim link. Send me both links. ```
What is Derive
[](https://github.com/derive-to/derive#what-is-derive)
Derive is a workspace for work made with agents. Give an HTML page, Markdown document, deck, or built site a lasting URL and version history. Publish from the browser, CLI, HTTP API, or a compatible agent over MCP. Keep the work private or share it, leave comments, edit it directly, and publish the next version at the same URL.
The content, version history, and comments stay with each artifact. A teammate or another agent can open the same URL and see what changed without reconstructing the work from a chat.
A workspace can also keep **Contexts**: reusable packages of instructions, skills, sources, and permissions. Agents use them to answer questions or do work, then publish results to the same artifact library.
Derive is Fair Source and self-hostable. Run it as one container on your own infrastructure or use the hosted app.
Features
[](https://github.com/derive-to/derive#features)
### Publish anything, get a permanent URL
[](https://github.com/derive-to/derive#publish-anything-get-a-permanent-url) HTML, Markdown, or a whole built site. Every revision is a new version at the same URL, so a link you shared last week still resolves, and still shows its history.
Comments and changes stay with the work
[](https://github.com/derive-to/derive#comments-and-changes-stay-with-the-work)
Share an artifact and @mention the people or agents who should weigh in. Comments pin to the exact text, direct edits create new versions, and connected agents can read feedback and publish focused revisions. When a decision truly needs sign-off, request a formal review of that version.
### A library for published work
[](https://github.com/derive-to/derive#a-library-for-published-work) Every artifact lands in a library with a live preview. Pin the work you use often, find work shared with you, and organize related artifacts in collections.
Also included:
- **Portable work.** Content, versions, and comments stay with the artifact so another person or agent can continue the work.
- **Contexts.** Reuse the same instructions, skills, sources, and permissions across questions and delegated work.
- **Checkpoints.** Save the state of ongoing work in a page that a later session can open.
- **Sandboxed viewer.** Artifacts run on an opaque origin, isolated from cookies and other artifacts.
- **Flexible storage.** Use SQLite and local disk, or Postgres and S3/R2 at scale.
- **Live collaboration.** Comments, optional approvals, and presence update over Server-Sent Events.
- **Share previews.** Links show an artifact preview in Slack, Discord, X, and Notion.
- **CLI and MCP.** Publish from the terminal or connect a compatible agent.
- **Access controls.** Make work private, visible to the workspace, or public. Public links can also use a password.
Roadmap
[](https://github.com/derive-to/derive#roadmap) The current roadmap lives at **derive.to/roadmap** and keeps its history at the same URL.
Get started
[](https://github.com/derive-to/derive#get-started)
Hosted
[](https://github.com/derive-to/derive#hosted) The fastest path. No install.
1. Go to derive.to 2. Create an account 3. Publish your first artifact
You get a library, in-browser publishing, version history, and comments.### Self-host
[](https://github.com/derive-to/derive#self-host) One container is the whole product: API, web, sign-in, publishing, comments, and the sandboxed viewer, with SQLite and blobs in one volume.
Follow the **self-hosting quick start** to install a digest-pinned release or build the current checkout. It includes secure first-user bootstrap, readiness checks, and a verified first backup. See the deployment guide for Postgres, S3/R2, and cloud hosts.
Want a complete artifact rather than a blank starter? Open or publish one of the **official examples**: a designed launch page, a research brief, or a living status report. Each shows a different starting point.
From the terminal
[](https://github.com/derive-to/derive#from-the-terminal)
npm i -g @derive-to/cli derive init my-doc --template slides # templates: md · html · slides cd my-doc derive publish # versioned URL; the id is saved to derive.json
Connect your coding agent (MCP)
[](https://github.com/derive-to/derive#connect-your-coding-agent-mcp)
or one line for Claude Code: `claude mcp add --transport http derive https://derive.to/mcp`
Derive is a remote MCP server (OAuth). Connect either client:
claude mcp add --transport http --scope project derive https://derive.to/mcp codex mcp add derive --url https://derive.to/mcp
or run a local stdio server (set DERIVE_SERVER; DERIVE_TOKEN for a static bearer):
npx -y @derive-to/mcp
The agent acts at the role you grant. Publish access publishes directly, as a kept and restorable version with the workspace notified; a lower scope suggests changes in comments for a person to apply. Full setup and tool guidance is in packages/mcp/SKILL.md.
How it works
[](https://github.com/derive-to/derive#how-it-works) One Node container is the whole product; storage is pluggable behind interfaces. The same image self-hosts on SQLite and local disk, scales on Postgres and S3/R2, or runs on Cloudflare Workers.
``` apps/api HTTP API, sandboxed artifact serving, viewer apps/web web UI (TanStack Start, SPA mode, static bundle) packages/core domain: ports, publish, markdown render, viewer shell packages/db MetaStore: sqlite (default) · postgres · d1 packages/storage BlobStore: fs (default) · s3/r2 packages/cli derive init (md/html/slides) · derive publish <file|dir> · derive runner serve (serve a Context) packages/mcp Local compatibility MCP: eight agent tools + derive://guide ```
Every artifact ships OG and Twitter meta plus an oEmbed document, serves a live Server-Sent Events stream, and renders under a strict sandbox CSP on an opaque origin. See the artifact authoring standard for authoring and embed details.
License
[](https://github.com/derive-to/derive#license)
Functional Source License (FSL-1.1-ALv2), fair source. Run, modify, and self-host Derive freely for any purpose except offering it as a competing commercial product or service. Each release automatically converts to Apache-2.0 two years after it ships. See the plain-English licensing guide.