@plori/cli
v0.1.0
Published
plori on the command line: give your AI agent its own cloud computer.
Maintainers
Readme
plori CLI
plori drives your hosted agents (each one a cloud computer with its own
disk, tools, and memory) from a terminal or a script. It is the CLI+skills
counterpart to the remote MCP server at https://api.plori.ai/mcp: same
account, same agents, same REST API underneath, and the commands mirror the
MCP tool names (create_agent → create, invoke_agent → run,
get_run_result → result, …).
Install
Build from this repository (Go ≥ 1.25):
go build -o plori ./cli/cmd/ploriBinary releases and an npm wrapper (@plori/cli) are published per
docs/release-channels.md.
Authenticate
Create an API key at https://plori.ai/settings, then either:
plori login # prompts for the key, validates it, stores it 0600
export PLORI_API_KEY=… # or: environment (CI, agents)PLORI_BASE_URL (or --base-url) points the CLI at a non-production
control-plane, e.g. a local uat-server.
Use
plori create mate # get-or-create an agent named "mate"
plori run mate "clone repo X and run the tests"
plori run mate "long job" --no-wait # returns a run id immediately
plori result mate <run-id> --wait # poll it later
plori run mate "build it" --follow # stream the turn live (tools on stderr)
echo "summarize this" | plori run mate - # message from stdin
plori schedule mate "daily report" --in 86400
plori inputs mate # runs paused on a human question
plori answer <run-id> <tool-call-id> --approve
plori credits && plori diskAgents are addressed by name or UUID. Every command accepts --json; when
stdout is not a TTY the output is JSON automatically, so scripts and agents
can parse without flags. Errors go to stderr; exit codes: 0 success, 1 API
failure, 2 usage error.
For agent authors
The reply text of plori run is the only thing written to stdout (tool
narration streams to stderr), so a calling agent can pipe it directly. A run
that pauses on a human approval reports status: "awaiting_input"; surface
it and answer with plori answer. Prefer one long-lived agent (create
returns the existing agent for a reused name) over creating new ones.
Wire-level acceptance cases live in UAT.md.
