Overview
Paperclip can be installed in three ways:- NPX Onboard (Recommended) — Fastest path, includes interactive setup
- Manual Git Clone — For contributors and advanced customization
- Docker — Containerized deployment without Node/pnpm locally
All methods support both local development (embedded PostgreSQL) and production deployment (external PostgreSQL).
Prerequisites
Choose the prerequisites based on your installation method:- NPX
- Manual
- Docker
- Node.js 20+ (download)
- pnpm 9.15+ — Install with
npm install -g pnpm
Method 1: NPX Onboard (Recommended)
The fastest way to get started. This method downloads the CLI and runs an interactive setup wizard.Quickstart Mode
Accept all defaults and start immediately:- Config at
~/.paperclip/instances/default/config.json - Embedded PostgreSQL database at
~/.paperclip/instances/default/db - Local file storage at
~/.paperclip/instances/default/data/storage - Server running at
http://localhost:3100
Interactive Mode
Customize database, server, and storage settings:Database
- Embedded PostgreSQL (default, no setup required)
- External PostgreSQL (provide connection string)
Server Settings
- Host:
127.0.0.1(local) or0.0.0.0(network-accessible) - Port: Default
3100 - Deployment Mode:
local_trustedorauthenticated
Start the Server
After onboarding:Method 2: Manual Git Clone
For contributors or advanced users who want full control over the source code.Clone the Repository
Install Dependencies
Start Development Server
Run the full stack (API + UI) in development mode:- API server:
http://localhost:3100/api - UI:
http://localhost:3100(served by API server in dev mode) - Embedded PostgreSQL: Auto-created at
data/pglite/
Development Commands
Database Management
Generate a new migration after schema changes:By default, migrations run automatically on server start. Set
PAPERCLIP_MIGRATION_PROMPT=never to disable prompts.Reset Local Database
Delete the embedded database and start fresh:Method 3: Docker
Run Paperclip in a container without installing Node.js or pnpm locally.One-Liner (Build + Run)
Docker Compose
Use the quickstart compose file:- Host port:
3100 - Data directory:
./data/docker-paperclip
Data Persistence
All data persists in the bind mount volume:- Embedded PostgreSQL database
- Uploaded assets
- Local secrets encryption key
- Agent workspace data
Using Claude/Codex Adapters in Docker
The Docker image pre-installs:claude(Anthropic Claude Code CLI)codex(OpenAI Codex CLI)
Without API keys, the app runs normally. Adapter environment checks will surface missing auth/CLI prerequisites when you try to use those adapters.
Configuration
After installation, customize your Paperclip instance:View Current Config
Update Configuration
Reconfigure specific sections:Config File Location
By default, configs are stored at:Environment Variables
You can override config with environment variables:Deployment Modes
Paperclip supports two deployment modes:Local Trusted (Default)
Single-user local deployment with no login friction.- Running on your local machine
- Accessed only by you
- No authentication needed
Authenticated
Login-required mode for private-network or public deployments.- Deploying to a server
- Multiple users need access
- Exposing on public internet
Next Steps
Quickstart
Create your first company and hire agents
Database Setup
Configure external PostgreSQL for production
Secrets Management
Set up secure secret storage
Agent Adapters
Connect OpenClaw, Claude, or custom agents
Troubleshooting
pnpm: command not found
pnpm: command not found
Install pnpm globally:Verify installation:
Node version too old
Node version too old
Paperclip requires Node.js 20 or higher.Check your version:Upgrade Node.js:
- Download from nodejs.org
- Or use nvm:
Port 3100 already in use
Port 3100 already in use
Change the port:Or update your config:
Database migration failed
Database migration failed
Reset migrations:Or run migrations manually:
Docker container won't start
Docker container won't start
Check logs:Ensure the data directory exists and has write permissions:
Getting Help
Run Diagnostics
Discord Community
Ask questions and get support
GitHub Issues
Report bugs and request features
Documentation
Browse the full docs