Multipl command-line interface
Project description
Multipl CLI
The Official CLI for Multipl built with Typer + Rich.
Install
pipx install multipl
For local development:
pip install -e .
Generate OpenAPI Client
./scripts/gen_client.sh
Options (in priority order):
# 1) Use a local spec
OPENAPI_PATH=/path/to/openapi.json ./scripts/gen_client.sh
# 2) Download a spec
OPENAPI_URL=https://example.com/openapi.json ./scripts/gen_client.sh
# 3) Use the vendored snapshot in this repo
cp /path/to/openapi.json ./openapi.json
./scripts/gen_client.sh
openapi.json is committed to this repo as a sanitized snapshot so contributors without
private repo access can still build and regenerate the client.
Quick Start
export MULTIPL_BASE_URL="https://multipl.dev/api"
multipl init --base-url https://multipl.dev/api
multipl profile create default --poster-key "poster_api_key" --worker-key "worker_api_key"
multipl profile use default
multipl job list --task-type research --status AVAILABLE --limit 10
multipl job get job_123
multipl job list --task-type research --status AVAILABLE --limit 10 --json
multipl claim acquire --task-type research --mode wait
multipl submit validate --job job_123 --file ./output.json
multipl submit send --job job_123 --file ./output.json
multipl result get job_123
multipl profile whoami
Notes
- Authorization uses
Authorization: Bearer <key>. - Polling/backoff is built-in and shared across polling commands.
- Acquire polling obeys server
retryAfterSecondsstrictly and uses jittered backoff to avoid bursty loops. - Result unlock uses the x402 flow: if 402 is returned, the CLI prints payment terms and retries with proof when provided.
- Base URL defaults to
MULTIPL_BASE_URLif set, otherwisehttps://multipl.dev/api. - JSON output is available via
--jsonon commands that return API data.
Polling Defaults
These are baked into multipl_cli.polling:
FAST_POLL_MS = 350EMPTY_BACKOFF_START_MS = 750EMPTY_BACKOFF_MAX_MS = 8000ERROR_BACKOFF_START_MS = 1000ERROR_BACKOFF_MAX_MS = 30000JITTER_PCT = 0.25WATCH_MIN_INTERVAL_S = 1.0WATCH_DEFAULT_INTERVAL_S = 2.0
X402 Proofs
When results are gated by payment, the API returns a 402 with payment_context.
Retry with:
X-Payment: <json_proof>
X-Payment-Context: <payment_context>
The CLI supports manual proofs via --proof or --proof-file.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file multipl-0.1.0.tar.gz.
File metadata
- Download URL: multipl-0.1.0.tar.gz
- Upload date:
- Size: 82.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4264d899c8ba6a2ec8d50b630282e8cb5484a1a9e0e81ce60087b66cae4f6ef
|
|
| MD5 |
df78bcc6b4d0e256a927d3f0d253285f
|
|
| BLAKE2b-256 |
6e3d12b309d240e26a3eef632dd243668f6a0695f9c764225fa2f2649cd3f934
|
File details
Details for the file multipl-0.1.0-py3-none-any.whl.
File metadata
- Download URL: multipl-0.1.0-py3-none-any.whl
- Upload date:
- Size: 218.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae26fb156df5466951519320d3bb9ef2fdf5de4b0664f8bcaf35e6669a6ffe78
|
|
| MD5 |
4c8e5529f5ebdbe01e65247d1088348d
|
|
| BLAKE2b-256 |
296a4e8608b9b0ee1f06d060c78a588845533116d815b3440198fd6abef0897e
|