Skip to main content

Isodrome Python SDK and CLI

isodrome is the official Python package for Isodrome, and installs the iso command line.

Install

pipx install isodrome        # or: uv tool install isodrome, or pip install isodrome

Getting started

iso login                                    # signs in with your browser and saves a key
iso feed create weather                      # events are timed when they arrive
iso feed push weather --data '{"temperature": 18.5, "city": "Dublin"}'
iso feed query weather --since 1h
iso feed tail weather                        # the last 10 events, then new ones live

Events are JSON objects. A feed times each event when it arrives, unless created with --time-field FIELD to use a time carried in the events (needed for late data and meaningful as-of queries), and with --key FIELD keeps the newest event per key for iso feed latest. iso feed push reads --data, --file (JSON Lines, a JSON array, or one object) or standard input, and prints every rejected event and why. Pushing the same file twice is recognised and not written twice (within the server's 15-minute window).

Commands

Command What it does
iso login / logout sign in with the browser (or --api-key); logout revokes the key
iso whoami, iso server, iso --version your identity; the server's version and limits
iso namespace create / list / delete / use namespaces; use sets the one commands act on
iso key create / list / revoke API keys for scripts and services (personal by default); your sessions
iso feed create / list / show / describe / update feeds; describe shows how to send and query
iso feed delete / undelete / errors soft deletion (7 days to undo); recent rejections
iso feed push / query / tail / latest send and read events; -o table|json|csv

iso <command> --help describes each one.

Configuration and profiles

iso keeps its settings in ~/.config/isodrome/config.toml (mode 0600, as it holds API keys). Each profile has an endpoint, a key and a namespace; iso login signs in to the cloud (https://stg.api.isodrome.ai for now). A local server has no browser sign-in, so give it its key:

iso --profile local login --endpoint http://localhost:7470 --api-key iso_...
iso profile use local          # or pass --profile local per command

ISODROME_PROFILE, ISODROME_ENDPOINT and ISODROME_API_KEY override the configuration.

Development

python -m venv .venv && . .venv/bin/activate
pip install -e '.[dev]'
pytest                                       # unit tests, against an in-process fake server

The API client in src/isodrome/v1 is generated from proto/isodrome/v1/isodrome.proto, a copy of the server's. After the server's API changes, with isodrome-server checked out next to this repository (or ISODROME_SERVER=path):

scripts/sync_proto.sh             # copy the proto and regenerate
scripts/sync_proto.sh --check     # what CI runs: fails if either is out of date

End-to-end tests run the CLI against a real server:

docker compose -f tests/e2e/docker-compose.yml up -d --wait   # ISODROME_SERVER_IMAGE=… for another image
ISODROME_E2E_ENDPOINT=http://localhost:7470 pytest -m e2e tests/e2e

Releases: publishing a GitHub release builds the package and uploads it to PyPI.

Metadata

Release files for isodrome 0.1.0

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

Source distribution (sdist)

Source distribution for isodrome 0.1.0
File Size Uploaded
isodrome-0.1.0.tar.gz 52.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for isodrome 0.1.0
File Interpreter ABI Platform
isodrome-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 94.0 kB

Release files / isodrome-0.1.0.tar.gz

Download URL isodrome-0.1.0.tar.gz
Size 52.3 kB
Tags Source
SHA-256 checksum
How to use checksums
efeebb0a4187a6f5831d8795c9d469ee7e60ac42574664cf69420f4ad6420381
BLAKE2b-256 checksum
How to use checksums
ed1f98901954cdd4a8b8e80c5f5f9d008b0a35611dc9493c83cbbaff1839e0d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / isodrome-0.1.0-py3-none-any.whl

Download URL isodrome-0.1.0-py3-none-any.whl
Size 41.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e61fdd9bd51ad5f1c478a489ad29bea9132b82fea40c279220c7e3bc9b664b73
BLAKE2b-256 checksum
How to use checksums
49c443705fc2badf4a455537c2cbe6dd939ed80984db856134b16d54a1187c40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.0

2 release files

This release

0.1.0 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

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