Skip to main content

Overview

The configure command allows you to update specific sections of your Paperclip configuration without going through the full onboarding process. It provides interactive prompts for each configuration area.

Syntax

Options

--config <path>

Path to config file to update. Default: ~/.paperclip/instances/default/config.json

--data-dir <path>

Paperclip data directory root.

--section <section>

Specific section to configure. Skip section selection menu. Valid sections:
  • llm - LLM Provider
  • database - Database
  • logging - Logging
  • server - Server
  • storage - Storage
  • secrets - Secrets

Configuration Sections

LLM Provider

Configure AI model provider for agents. Options:
  • Provider: claude or openai
  • API Key: Your provider API key
  • Skip: Remove LLM configuration entirely
Interactive prompts:
Example:
Resulting config:
API keys are stored in the config file. For production, consider using environment variables or secret management.

Database

Configure database connection. Database modes:

Embedded PostgreSQL

Built-in PostgreSQL server (no external database required). Options:
  • Data directory: Where to store database files
  • Port: PostgreSQL listen port
Defaults:
  • Data dir: ~/.paperclip/instances/default/db
  • Port: 54329
Interactive prompts:
Resulting config:

External PostgreSQL

Connect to external PostgreSQL server. Options:
  • Connection string: Full PostgreSQL connection URL
Format:
Interactive prompts:
Resulting config:
Example:
Changing database mode requires restarting the server and may require data migration.

Logging

Configure where and how logs are written. Logging modes:

File Logging

Write logs to files on disk. Options:
  • Log directory: Where to store log files
Default: ~/.paperclip/instances/default/logs Interactive prompts:
Resulting config:

Console Logging

Output logs to stdout/stderr (useful for Docker/systemd). Interactive prompts:
Resulting config:
Example:

Server

Configure server network and authentication settings. Options:

Deployment Mode

local_trusted:
  • No authentication required
  • Recommended for local development
  • All requests trusted
authenticated:
  • Full authentication required
  • Recommended for production
  • Requires user login

Exposure

private:
  • Only allowed hostnames can connect
  • Requires allowedHostnames configuration
  • Most secure
public:
  • Open access (within deployment mode constraints)
  • Use with caution

Network Settings

Host:
  • 127.0.0.1 - Localhost only (most secure)
  • 0.0.0.0 - All interfaces (network accessible)
  • Specific IP - Bind to specific interface
Port:
  • Default: 3100
  • Any available port

Additional Settings

Serve UI:
  • true - Serve web UI from API server
  • false - API only (UI hosted separately)
Allowed Hostnames:
  • List of hostnames allowed to connect (for authenticated/private mode)
  • Example: ["alice-laptop", "bob-desktop"]
Interactive prompts:
Resulting config:
Example:
Security: Use authenticated mode and private exposure for production deployments.

Storage

Configure file storage backend. Storage providers:

Local Disk

Store files on local filesystem. Options:
  • Base directory: Where to store files
Default: ~/.paperclip/instances/default/data/storage Interactive prompts:
Resulting config:

S3 Storage

Use AWS S3 or S3-compatible storage (MinIO, DigitalOcean Spaces, etc.). Options:
  • Bucket: S3 bucket name
  • Region: AWS region (e.g., us-east-1)
  • Endpoint: Custom endpoint for S3-compatible services (optional)
  • Prefix: Object key prefix (optional)
  • Force path style: Enable for non-AWS S3 providers
Interactive prompts:
Resulting config:
S3 credentials are read from environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) or IAM roles.
Example:

Secrets

Configure secrets management and encryption. Options: Provider: (Currently only local_encrypted supported)
  • Encrypts secrets with a master key
  • Stores encrypted values in database
Strict Mode:
  • true - Require secret references for sensitive environment keys
  • false - Allow plain text values
Key File Path:
  • Path to master encryption key
  • Auto-generated if missing
Default: ~/.paperclip/instances/default/secrets/master.key Interactive prompts:
Resulting config:
Key file creation: If the key file doesn’t exist:
Example:
Backup your master key! Without it, encrypted secrets cannot be decrypted.

Interactive Workflow

Without --section

Shows section selection menu:
After configuring:

With --section

Directly configures specified section:
No “configure another section” prompt - exits after updating.

Examples

Update LLM provider

Switch to external database

Change server port

Switch to S3 storage

Enable strict secrets mode

Interactive multi-section update

Custom config location

Configuration Updates

Each update:
  1. Reads existing config
  2. Shows current values (where applicable)
  3. Prompts for new values
  4. Writes updated config
  5. Updates $meta.updatedAt and $meta.source
Metadata:

Validations

Config File Must Exist

If no config found:
Solution:

Invalid Section Name

If using unknown section:

Invalid Config File

If existing config is corrupted:
You can proceed to fix the configuration.

After Configuration

Verify Changes

Check updated config:
Or view environment:

Test Configuration

Run health checks:

Restart Server

Configuration changes require restart:
Most configuration changes require a server restart to take effect.

Troubleshooting

Permission denied writing config

Check file permissions:
Fix ownership:

Changes not taking effect

Ensure server is restarted:

Lost configuration

Config files are not backed up automatically. To restore:

Invalid database connection

Test connection separately:

Best Practices

Backup Before Changes

Use Version Control

For production configs:

Test in Staging First

Document Changes

Keep a changelog:

Next Steps

Verify configuration

Run health checks after configuration changes

Restart server

Apply configuration changes

Environment variables

See CLI environment variables