Latest release v2026.1106.0 is live (November 6, 2026).
See what's newPaperclip publishes a Docker image with the server, the web UI and the main agent CLIs. One command starts it, and your data stays in one folder.
docker pull ghcr.io/paperclipai/paperclip:latest
$ node --version
v24.11.0
$ npx paperclipai onboard --yes
✓ Paperclip running at http://localhost:3100
→ Hire your first agent to get started
Pull the image ghcr.io/paperclipai/paperclip, create one secret and start the container with a data folder mounted at /paperclip. Then open http://localhost:3100 and claim the instance in the browser. You don’t need to clone the repository.
$ node --version
v24.11.0
$ npx paperclipai onboard --yes
✓ Paperclip running at http://localhost:3100
→ Hire your first agent to get started
You need Docker and about 10 GB of free disk space. We ran these steps on November 11, 2026.
Create the file once and keep it. Use the same file on every restart. BETTER_AUTH_SECRET is required, and the container exits without it.
cat > paperclip.env <<EOF
BETTER_AUTH_SECRET=$(openssl rand -hex 32)
PAPERCLIP_TOOL_ACTION_SIGNING_SECRET=$(openssl rand -hex 32)
EOFThe data folder paperclip-data is created next to the secrets file. The first start took about 10 seconds in our test.
docker run -d --name paperclip \
-p 3100:3100 \
--env-file paperclip.env \
-e PAPERCLIP_PUBLIC_URL=http://localhost:3100 \
-v "$PWD/paperclip-data:/paperclip" \
ghcr.io/paperclipai/paperclip:latestOpen http://localhost:3100. Choose Sign in / Create account, then Create one, then Claim this instance. The first person to claim the instance becomes its admin, so do this before you share the address.
Onboarding asks for an organization name, a first agent and a model connection. You can sign in to a Claude or ChatGPT subscription in the browser, or set an API key.
Pull the new image, remove the container and run the same start command again. Your data stays in paperclip-data.
docker pull ghcr.io/paperclipai/paperclip:latest
docker rm -f paperclipYes, by default. Paperclip starts each agent’s CLI inside the same container, and the agent works in folders on the data volume. For stronger isolation, the experimental Environments feature runs agents in separate sandboxes.
| Setting | Value | Notes |
|---|---|---|
| Image | ghcr.io/paperclipai/paperclip:latest | Other tags: beta, nightly, canary |
| Port | 3100 | Change the left side of -p to use another host port |
| Data volume | /paperclip | Database, uploads, the secrets key and agent workspaces |
BETTER_AUTH_SECRET | Required | A random value. Keep it the same across restarts |
PAPERCLIP_PUBLIC_URL | Recommended | The address people use to open Paperclip |
ghcr.io/paperclipai/paperclip:latestbeta, nightly, canary3100-p to use another host port/paperclipBETTER_AUTH_SECRETPAPERCLIP_PUBLIC_URLThe image already sets the host, the home folder and authenticated mode. You don’t need to pass them.
The image is large, because it carries the agent CLIs. The compressed download is about 3 GB on arm64 and about 5 GB on amd64. If you delete the data folder, the instance starts fresh.
host.docker.internal from inside the container, not 127.0.0.1-cloud image tags are not for self-hosting. Use the plain tagsYes. It is ghcr.io/paperclipai/paperclip, with the tags latest, beta, nightly and canary, for amd64 and arm64.
No. The container uses an embedded database that it stores on the data volume. The repository also has a Compose file with a separate PostgreSQL service if you want one.
In the browser. Open the instance, create an account and choose Claim this instance. No terminal command is needed.
Yes, if you keep the data folder and the secrets file. In our test, a new container with the same folder kept the account and the organization.
Yes. A Compose file that uses the same image, port, volume and secrets works. The repository also ships a Compose quickstart that builds from source.
“One container holds the server, the database and the agents. One folder holds everything you need to keep.”
Pull the image, create one secret and claim your instance in the browser.