mirror of
https://github.com/paperclipai/paperclip-docs.git
synced 2026-11-09 04:09:33 -10:00
Syncs docs to parent release **v2026.831.1** (cumulative from
`v2026.824.1`, via merge-base `664052f`). Authored fresh against the
release tag; every claim verified at the tag.
## What changed
**New**
- **Kimi Code adapter** (`kimi_local`) — new reference page, wired into
the adapters overview, nav, and anchor-map source mapping.
**Reference**
- **Env vars** — `PAPERCLIP_WORKSPACE_REAPER_COOLDOWN_DAYS`, opt-in
`SENTRY_DSN`, and the operator controls `PAPERCLIP_HIDDEN_SETTINGS` /
`PAPERCLIP_SETTING_DEFAULTS`.
- **Instance Settings** — new "operator controls for hosted deployments"
section (hide surfaces / override defaults).
- **Node.js floor → 24.11.0** across installation, setup,
local-development, plugin dev, Modal, and the getting-started/terminal
guides.
- **Grok adapter** — `permissionMode` no longer defaults to `dontAsk`;
when unset no flag is passed, and `--always-approve` is the unattended
policy.
- **CLI `agent`** — Kimi skills install path (`~/.kimi-code/skills`) +
`KIMI_CODE_HOME`.
**Guides**
- **Onboarding** — rebuilt around a single-card wizard that opens on
creating your agent; the mission step is gone, the goal is set
afterward.
- **Settings unification** — Invites folded into a Members tab, one
shared settings nav, and the company brand color + per-company
attachment size limit removed (also reflected in the Companies and Cases
APIs).
- **Governance behavior** — silent-run detection and stranded-task
recovery no longer act on their own; agent thought text is excluded from
automatic comments; invalid agent credentials now return `401`.
**Changelog** — entry added for v2026.831.1.
## Gates
- `docs:build`, SEO metadata, crawlable-links, sitemap-lastmod
(194/194), lint-links, verify-nav — all pass.
- **Edit verification:** every new high-confidence claim verified at the
tag.
- **Tag-accuracy gate:** 31 files checked, **0 post-tag leaks**, 30
clean, 1 review (below).
## ⚠ Drift (Verify before acting — not auto-resolved)
Medium-confidence REST-route drift in `docs/reference/api/companies.md`
— the import-transfer routes may no longer exist at these paths (likely
a false negative from prefix/dynamic registration; confirm before
editing):
- `POST /api/companies/import/transfers`
- `PUT /api/companies/import/transfers/{transferId}/parts/{partIndex}`
- `GET /api/companies/import/transfers/{transferId}`
- `POST /api/companies/import/transfers/{transferId}/preview`
- `POST /api/companies/import/transfers/{transferId}/apply`
## ⚠ Review
- `docs/reference/adapters/kimi-local.md` — new page; the only flagged
claim is the `secret-id` JSON **example placeholder** (not a real
identifier). Authored directly from the adapter's config surface at the
tag.
## Screenshots (deferred)
288 of 342 registered screenshots are stale (org-wide rename +
settings/onboarding rewrites), tracked in `SCREENSHOTS_PENDING.md`.
Recapture is a follow-up pass — **the merged pages describe the new
onboarding/settings UI while screenshots still show the old flow until
then.**
---------
Co-authored-by: Claude Opus 4.8 <[email protected]>
164 lines
3.9 KiB
Markdown
164 lines
3.9 KiB
Markdown
---
|
|
seo_title: Local Development Setup
|
|
seo_description: The fastest way to run Paperclip locally, using embedded PostgreSQL, local disk storage, and the local trusted deployment mode by default.
|
|
---
|
|
|
|
# Local Development
|
|
|
|
This is the fastest way to run Paperclip locally. The default path uses embedded PostgreSQL, local disk storage, and the local trusted deployment mode.
|
|
|
|
Use this page if you want to get the app running quickly, reset a local install, or start a private-network dev instance.
|
|
|
|
---
|
|
|
|
## Prerequisites
|
|
|
|
- Node.js 24+ (24.11.0 or newer)
|
|
- pnpm 9+
|
|
|
|
> **Note:** You do not need a separate PostgreSQL install for the normal local workflow.
|
|
|
|
---
|
|
|
|
## Start The Server
|
|
|
|
```sh
|
|
pnpm install
|
|
pnpm dev
|
|
```
|
|
|
|
This starts:
|
|
|
|
- the API server at `http://localhost:3100`
|
|
- the UI from the API server in dev middleware mode
|
|
|
|
The first start automatically uses embedded PostgreSQL if `DATABASE_URL` is unset. See [Database](./database.md) for the storage modes behind that behavior.
|
|
|
|
---
|
|
|
|
## One-Command Bootstrap
|
|
|
|
If you want setup and startup in one step, use:
|
|
|
|
```sh
|
|
pnpm paperclipai run
|
|
```
|
|
|
|
This is the best command for a first-time install because it:
|
|
|
|
1. auto-onboards if no config exists
|
|
2. runs `paperclipai doctor` with repair enabled
|
|
3. starts the server once checks pass
|
|
|
|
Use this when you want Paperclip to behave like an app, not a manually assembled stack.
|
|
|
|
---
|
|
|
|
## Managed Dev Runner
|
|
|
|
The dev runner is idempotent for the current repo and instance. If the matching Paperclip dev runner is already alive, Paperclip reports the existing process instead of starting a duplicate.
|
|
|
|
Inspect or stop it with:
|
|
|
|
```sh
|
|
pnpm dev:list
|
|
pnpm dev:stop
|
|
```
|
|
|
|
---
|
|
|
|
## Private Network Dev
|
|
|
|
If you want to access a local instance over Tailscale or another private network, run the authenticated private dev mode:
|
|
|
|
```sh
|
|
pnpm dev --tailscale-auth
|
|
```
|
|
|
|
Alias:
|
|
|
|
```sh
|
|
pnpm dev --authenticated-private
|
|
```
|
|
|
|
This configures the instance for authenticated private exposure and binds the server to `0.0.0.0`.
|
|
|
|
If you need to allow additional private hostnames:
|
|
|
|
```sh
|
|
pnpm paperclipai allowed-hostname dotta-macbook-pro
|
|
```
|
|
|
|
See [Tailscale Private Access](./tailscale-private-access.md) for the full workflow.
|
|
|
|
---
|
|
|
|
## Health Checks
|
|
|
|
After startup, verify the instance is alive:
|
|
|
|
```sh
|
|
curl http://localhost:3100/api/health
|
|
```
|
|
|
|
Expected response:
|
|
|
|
```json
|
|
{"status":"ok"}
|
|
```
|
|
|
|
You can also confirm the API is serving company data:
|
|
|
|
```sh
|
|
curl http://localhost:3100/api/companies
|
|
```
|
|
|
|
---
|
|
|
|
## Reset Local Data
|
|
|
|
To wipe the embedded database and start over:
|
|
|
|
```sh
|
|
rm -rf ~/.paperclip/instances/default/db
|
|
pnpm dev
|
|
```
|
|
|
|
This removes the local database only. It does not change your repo checkout or any other workspace data.
|
|
|
|
---
|
|
|
|
## Worktrees And Isolated Instances
|
|
|
|
If you work from multiple git worktrees, do not point two Paperclip servers at the same embedded PostgreSQL data directory.
|
|
|
|
Create a repo-local isolated instance instead:
|
|
|
|
```sh
|
|
pnpm paperclipai worktree init
|
|
```
|
|
|
|
That command creates a repo-local `.paperclip` config and an isolated instance under `~/.paperclip-worktrees` so the new worktree does not share the default embedded database.
|
|
|
|
> **Tip:** This is the safest way to test docs or feature work in parallel across multiple branches.
|
|
|
|
---
|
|
|
|
## Default Data Paths
|
|
|
|
| Data | Path |
|
|
|---|---|
|
|
| Config | `~/.paperclip/instances/default/config.json` |
|
|
| Database | `~/.paperclip/instances/default/db` |
|
|
| Storage | `~/.paperclip/instances/default/data/storage` |
|
|
| Secrets key | `~/.paperclip/instances/default/secrets/master.key` |
|
|
| Logs | `~/.paperclip/instances/default/logs` |
|
|
|
|
These paths are under `PAPERCLIP_HOME` and `PAPERCLIP_INSTANCE_ID`. Override them when you want an isolated local instance:
|
|
|
|
```sh
|
|
PAPERCLIP_HOME=/custom/path PAPERCLIP_INSTANCE_ID=dev pnpm paperclipai run
|
|
```
|
|
|
|
> **Tip:** If you are working in a second checkout or worktree, give it its own instance ID so you do not share the same embedded database by accident.
|