Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

c3po-sdk

Python SDK and CLI for the C3PO research platform.

Installation

uv tool install c3po-sdk

Modules

Client (c3po_sdk.client)

Python SDK for the C3PO API.

from c3po_sdk.client.client import C3poClient

async with C3poClient() as client:
    cursor: str | None = None
    while True:
        page = await client.datasets.list(last_evaluated_key=cursor, limit=50)
        for dataset in page.items:
            ...
        if not page.has_more:
            break
        cursor = page.last_evaluated_key

CLI (c3po_sdk.cli)

c3po --help

CLI commands

Global options (where supported): --output / -o (rich | plain | json), --profile, --no-pager (skip paging for JSON on a TTY), --output-file / -O PATH (write JSON to a file; requires -o json), --version / -V. Set C3PO_NO_PAGER=1 to disable paging without a flag. Use c3po <group> <command> --help for flags and arguments.

login

  • c3po login — browser-based AuthKit login (device flow)

datasets

  • c3po datasets list
  • c3po datasets get
  • c3po datasets update
  • c3po datasets tree
  • c3po datasets assets

kb (analytics knowledge base — POST /v1/kb/query: NL question → generated SQL and executed result rows in one response)

  • c3po kb query [QUESTION] — pass the question as an argument or pipe text on stdin; use --output json for the raw sql / columns / rows object.
  • Timeouts: In CDK this route uses the streaming API Lambda with a 15-minute Lambda and API Gateway integration timeout (c3po_backend/services/api/_constructs/api.py). The SDK applies the same ceiling for the HTTP read timeout so long NL2SQL + Redshift runs are not cut off early by the default httpx limits used elsewhere.

nodes (all subcommands take a NODE_ID unless noted)

  • c3po nodes get NODE_ID — node details; optional --tree for dataset subtree
  • c3po nodes update NODE_ID — --name, --description
  • c3po nodes reset NODE_ID — clear pipeline outputs (--force / -f)
  • c3po nodes cluster NODE_ID — cell clustering (--obs-variable, repeatable --obs-values, --run-pipeline)
  • c3po nodes assets NODE_ID — presigned asset URLs; --download to fetch files

nodes pipeline

  • c3po nodes pipeline run NODE_ID — start execution; optional --gpu-executor (ec2_gpu_small, ec2_gpu_medium, or ec2_gpu_large; default selects the executor from the cell count); --watch / --no-watch
  • c3po nodes pipeline list NODE_ID — paginated history (--all / -a, --limit)
  • c3po nodes pipeline status NODE_ID EXECUTION_ID — Step Functions payload; --watch to poll until terminal

nodes programs (gene programs for a node)

  • c3po nodes programs list NODE_ID — paginated (--all / -a, --limit)
  • c3po nodes programs get NODE_ID PROGRAM_ID — full program record

nodes clusters (cell clusters for a node)

  • c3po nodes clusters list NODE_ID — paginated (--all / -a, --limit)
  • c3po nodes clusters get NODE_ID CLUSTER_ID — full cluster record

tenants

  • c3po tenants me
  • c3po tenants users list
  • c3po tenants credentials generate
  • c3po tenants credentials regenerate

users

  • c3po users me
  • c3po users update
  • c3po users tenants list
  • c3po users tokens list
  • c3po users tokens create
  • c3po users tokens revoke

Hosted MCP

See docs/MCP.md for Streamable HTTP + AuthKit setup. Point Cursor, Claude, or OpenCode at https://mcp.c3po.weirdsheeplabs-dev.com (production: https://mcp.c3po.bio). The SDK does not ship an MCP server process.

Metadata

Release files for c3po-sdk 1.1.0a2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for c3po-sdk 1.1.0a2
File Size Uploaded Provenance Actions
c3po_sdk-1.1.0a2.tar.gz 42.4 kB Without provenance Details for c3po_sdk-1.1.0a2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for c3po-sdk 1.1.0a2
File Interpreter ABI Platform Actions
c3po_sdk-1.1.0a2-py3-none-any.whl Python 3 none any Details for c3po_sdk-1.1.0a2-py3-none-any.whl

Total release size: 104.1 kB

Release files / c3po_sdk-1.1.0a2.tar.gz

Download URL c3po_sdk-1.1.0a2.tar.gz
Size 42.4 kB
Tags Source
SHA-256 checksum
How to use checksums
9cdbf2e8fb788449a8fc74543c78135c21de9b36981137f036ad954bca6691c0
BLAKE2b-256 checksum
How to use checksums
d2ddeef863433aa5ec7d3d1edc5165eba98c6c77b73c22dc13354c14d5f32ef8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / c3po_sdk-1.1.0a2-py3-none-any.whl

Download URL c3po_sdk-1.1.0a2-py3-none-any.whl
Size 61.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
51ecaddd9932053853dd822e3e8626474ddb5b7e349684f09a469db5e4ed2336
BLAKE2b-256 checksum
How to use checksums
496a82c62c5624da483fc6aa4c59446926ad9fc06d767f8d57d666f2e3e04558
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for c3po-sdk 1.1.0a2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page