Skip to main content
Run polpo <command> --help for the installed build’s authoritative option list.

Cloud project setup

polpo create

Template IDs are empty, chat, chat-widget, and multi-agent. Scenario IDs are none, data-analyst, marketing-researcher, and product-manager. Skill scope is global, project, or skip. Links a directory, pulls the project resources, writes .polpo/project.json, and creates local environment configuration.

polpo migrate

Converts legacy aggregate project files to the directory-based project layout. Migration is explicit: normal CLI and runtime operations continue to read legacy projects without rewriting them.
Run with --dry-run first to validate every agent, team, and destination path. A successful migration writes one directory per agent and one file per team, moves a legacy polpo.json config to project.json when present, and retains the original aggregate files as *.v1.json backups.

polpo install

Known client IDs include claude-code, cursor, codex, copilot, windsurf, cline, trae, roo-code, qoder, and opencode.

Authentication

Deployment

polpo deploy synchronizes the local .polpo/ project to Cloud, including agents, teams, skills, runtime hook packs, memory, missions, playbooks, schedules, vault metadata, loop definitions, custom tools, and avatars when present.
--all imports tasks and sessions. There is no run-history deploy option. --force overrides supported remote resources without prompting. Project commands default to Development on every invocation. Use --prod or --env production explicitly for Production. The target is not persisted in .polpo/project.json, and --prod --env development is rejected. The same environment options apply to tools, Connections, Channels, volumes, Memory, BYOK, Data, status, logs, and skill commands that deploy.

Custom tools

Custom tools are TypeScript files that default-export defineTool(...).
run --args must be a JSON object. rm and remove are aliases.

Runtime hooks

Hook packs live in .polpo/hooks/<name>.json; the filename and pack name must match. polpo deploy validates and uploads packs before the agents that reference them.

Active Run steering

steer submits a durable instruction for the next safe agent boundary. follow_up waits until the Run would otherwise finish. Reuse --id when retrying an uncertain request, then inspect whether delivery became delivered, too_late, cancelled, or failed with steering get.

Connections

These commands manage non-secret bindings and grants. They never accept or print access tokens, API keys, passwords, or provider credentials.

Sandbox volumes

Every volume command also accepts --env <development|production> and --prod. The catalog defines the maximum volume policy. A grant can only preserve or narrow that policy. Runtime sandbox.volumes selections may narrow it again, but cannot create a volume, add a grant, change its mount path, or widen access. Deletion and revocation require confirmation; use --yes only in deliberate non-interactive automation.

Agentic loops

validate checks JSON and TypeScript definitions under .polpo/loops. compile emits canonical loop JSON; --out is valid only when compiling one source file.

BYOK

Projects and organizations

Cloud monitoring

Local runtime

The OSS CLI also exposes local project operations:

Update

update and upgrade are aliases.

Application databases

create accepts {name,schema}. execute accepts {operations,idempotencyKey?}. query accepts {sql,params?,mode?,maxRows?,idempotencyKey?}; the default mode is read and writes require "mode":"write". migrate is additive and accepts {expectedVersion,schema}. migrate-sql accepts {id,expectedVersion,statements:[{sql,params?}],allowDestructive?}. Schema administration requires manage access. Data uses the same selected project environment and the same Polpo key as the other runtime APIs. Commands default to Development; use --prod or --env production for Production. polpo deploy and polpo pull do not execute database migrations. For a self-hosted endpoint, set POLPO_API_KEY and pass --url http://localhost:3890/api. See Databases for SQL coverage, grants and request/result limits.