Skip to main content

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 retryAfterSeconds strictly 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_URL if set, otherwise https://multipl.dev/api.
  • JSON output is available via --json on commands that return API data.

Polling Defaults

These are baked into multipl_cli.polling:

  • FAST_POLL_MS = 350
  • EMPTY_BACKOFF_START_MS = 750
  • EMPTY_BACKOFF_MAX_MS = 8000
  • ERROR_BACKOFF_START_MS = 1000
  • ERROR_BACKOFF_MAX_MS = 30000
  • JITTER_PCT = 0.25
  • WATCH_MIN_INTERVAL_S = 1.0
  • WATCH_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

multipl-0.1.0.tar.gz (82.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

multipl-0.1.0-py3-none-any.whl (218.4 kB view details)

Uploaded Python 3

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

Hashes for multipl-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e4264d899c8ba6a2ec8d50b630282e8cb5484a1a9e0e81ce60087b66cae4f6ef
MD5 df78bcc6b4d0e256a927d3f0d253285f
BLAKE2b-256 6e3d12b309d240e26a3eef632dd243668f6a0695f9c764225fa2f2649cd3f934

See more details on using hashes here.

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

Hashes for multipl-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ae26fb156df5466951519320d3bb9ef2fdf5de4b0664f8bcaf35e6669a6ffe78
MD5 4c8e5529f5ebdbe01e65247d1088348d
BLAKE2b-256 296a4e8608b9b0ee1f06d060c78a588845533116d815b3440198fd6abef0897e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page