?)
如何从源码克隆并在本地开发模式启动 Paperclippnpm install pnpm dev【免费下载链接】paperclipThe open-source app everyone uses to manage agents at work项目地址: https://gitcode.com/GitHub_Trending/papercl/paperclip如果你的目标是把 Paperclip 克隆到本地、装上依赖、用开发模式把它跑起来——而不是通过 npm 安装成品——那么主路径只有两条命令pnpm install和pnpm dev。启动成功后API server 运行在http://localhost:3100UI 由同一个 server 以 dev middleware 模式同源提供数据库是自动创建的 embedded PostgreSQL不需要 Docker也不需要你自己装 Postgres。本文的操作路径来自 快速开始、本地开发文档、DEVELOPING.md 和 README.md。环境准备三篇文档对前置环境的要求一致Node.js 24.11pnpm 9README.md 中写的是 pnpm 9.15仓库根目录的 package.json 里packageManager字段固定为pnpm9.15.4按 pnpm 9 大版本任一满足要求的版本安装即可若你使用 corepack 或 pnpm 版本管理器建议直接对齐 9.15.x。克隆仓库并安装依赖git clone https://gitcode.com/GitHub_Trending/papercl/paperclip cd paperclip pnpm installpnpm install会在仓库根目录解析整个 workspace 的依赖monoreposerver、ui、cli 等包都在其中。安装完成即可启动不需要执行任何数据库初始化步骤。有一点需要在后面记住pnpm paperclipai ...这种写法只在克隆下来的仓库副本内部有效如果你是在没有仓库的情况下安装则一律用npx paperclipai。本文所有pnpm paperclipai命令都以「你在克隆的仓库目录中」为前提。用 pnpm dev 启动开发服务器pnpm dev启动后得到两个入口都在同一 originAPI serverhttp://localhost:3100UI由 API server 在 dev middleware 模式下提供与 API 同源几个影响日常开发行为的事实pnpm dev以 watch 模式运行workspace 包包括 adapter 包的代码变更会触发重启不想被文件监听打扰时用pnpm dev:once它在启动 dev server 前默认会先自动应用待执行的本地迁移。pnpm dev与pnpm dev:once对当前仓库和实例是幂等的如果对应的 dev runner 已经存活Paperclip 会报告已存在的进程而不是再起一个重复实例。检查或停止当前仓库的受管 dev runnerpnpm dev:list pnpm dev:stopREADME.md 的 Development 小节还列出了其他变体按需选用pnpm dev:server # 仅启动 server pnpm dev:mobile # 构建一次 UI在 :3101 提供生产 bundle/api 代理到 :3100适合手机/平板 pnpm dev:both # 同时运行 pnpm dev 和 pnpm dev:mobiledev:mobile属于可选分支它构建的是打包后的 UIUI 源码改动需要手动重新构建才会生效本地开发主路径仍然是pnpm dev。验证启动结果在另一个终端里执行文档给出的健康检查curl http://localhost:3100/api/health curl http://localhost:3100/api/companies文档给出的预期输出/api/health返回{status:ok}/api/companies返回 JSON 数组全新实例上是[]/api/health返回{status:ok}即说明 server 已就绪浏览器打开http://localhost:3100应能看到 UI。备选一条命令引导启动在克隆的仓库里除了pnpm dev文档还给出了一条引导式启动命令pnpm paperclipai run它依次做三件事配置缺失时自动 onboard运行启用修复的paperclipai doctor检查通过后启动 server适合首次本地安装时一步到位。如果希望把状态写到非默认位置同一文档给出的写法是PAPERCLIP_HOME/custom/path PAPERCLIP_INSTANCE_IDdev pnpm paperclipai run这里PAPERCLIP_HOME替换成你想要的 home 目录PAPERCLIP_INSTANCE_ID替换成实例 id。也可以只隔离数据目录而不改 homepnpm dev --data-dir ./tmp/paperclip-dev pnpm dev:list --data-dir ./tmp/paperclip-dev pnpm dev:stop --data-dir ./tmp/paperclip-devdev runner 会在迁移检查或启动 server 之前把--data-dir翻译成隔离的PAPERCLIP_HOMEembedded PostgreSQL 等默认实例状态都落在这个目录下管理命令要带上同样的--data-dir才能作用到同一份隔离状态。开发数据落在哪里默认情况下所有运行状态位于实例根~/.paperclip/instances/default/下数据路径Config~/.paperclip/instances/default/config.jsonDatabase~/.paperclip/instances/default/dbStorage~/.paperclip/instances/default/data/storageSecrets key~/.paperclip/instances/default/secrets/master.keyLogs~/.paperclip/instances/default/logs开发模式下保持DATABASE_URL不设置server 会自动使用 embedded PostgreSQL 并持久化到上表db目录一旦设置了DATABASE_URLserver 改用该外部 Postgres。上传存储默认是local_disk落在data/storage。如果本地数据被改乱了想重来本地开发文档 给出的做法是rm -rf ~/.paperclip/instances/default/db pnpm dev注意第一条命令是破坏性操作会直接删除默认实例的整个本地开发数据库目录之后再pnpm dev重建。执行前确认你要清空的就是这个默认实例的数据用--data-dir或自定义PAPERCLIP_HOME的实例对应各自自己的目录。需要知道的限制与分支默认只绑 loopback。默认pnpm dev停留在local_trusted且仅绑定 loopback。要开放到私有网络并启用登录用pnpm dev --bind lan只在 Tailscale 可达的用pnpm dev --bind tailnet。这两个是可选分支本地自测不需要。linked git worktree 会快速失败。在关联的 git worktree 里如果缺少仓库本地的.paperclip/.envpnpm dev会直接报错而不是静默连到默认实例/端口此时先在该 worktree 里执行paperclipai worktree init再跑pnpm dev。worktree 与主检出共用数据库目录是不安全的多个 git worktree 并行开发时不要指向同一个 embedded PostgreSQL 数据目录用上面的 worktree 初始化或--data-dir隔离。下一步server 跑起来后快速开始 给出的后续操作是在 Web UI 里创建第一个 company定义公司目标创建 CEO agent 并配置其 adapter然后逐步扩充 org chart、设置预算并分配初始任务。更完整的开发指南测试命令、Storybook、worktree 实例等见 doc/DEVELOPING.md。【免费下载链接】paperclipThe open-source app everyone uses to manage agents at work项目地址: https://gitcode.com/GitHub_Trending/papercl/paperclip创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考