Skip to main content

Python API for NimbusImage

Project description

nimbusimage

Python API for NimbusImage — programmatic access to scientific imaging datasets, annotations, workers, and analysis.

Installation

pip install nimbusimage

For Docker worker development (includes large_image for writing TIFF files):

pip install nimbusimage[worker]

Authentication

The recommended setup uses a Girder API key, which is persistent and doesn't expire.

How to get an API key:

  • nimbusimage.com (hosted): Email support@cytopixel.com with your account email address to request an API key.
  • Local/self-hosted server: In the Girder admin UI, go to Users > select the user > Edit User > API Keys > create a new key and copy the key string.

Set environment variables for persistent access:

# Add to ~/.zshrc or ~/.bashrc

# For nimbusimage.com:
export NI_API_URL="https://nimbusimage.com/girder"
export NI_API_KEY="your-api-key-here"

# For a local server:
export NI_API_URL="http://localhost:8080/api/v1"
export NI_API_KEY="your-api-key-here"

Then connect with no arguments:

import nimbusimage as ni

client = ni.connect()

Or pass credentials explicitly:

client = ni.connect("http://localhost:8080/api/v1", api_key="your-api-key")

Quick start

import nimbusimage as ni

client = ni.connect()

# List datasets
for d in client.list_datasets():
    print(f"{d['name']} (ID: {d['_id']})")

# Open a dataset
ds = client.dataset(name="My Experiment")
print(f"{ds.name}: {ds.channels}, {ds.num_z} z-slices, {ds.shape}")

# Fetch an image
img = ds.images.get(channel=0, z=0)  # numpy array

# Get a composite RGB image
rgb = ds.images.get_composite(dtype="uint8")

# List annotations
polygons = ds.annotations.list(shape="polygon")

# Run a worker
job = ds.annotations.compute(
    image="annotations/random_squares:latest",
    channel=0, tags=["detected"],
    worker_interface={"Number of squares": 10, "Square size": 15},
)
job.wait()

# Export data
ds.export.to_csv(property_paths=[["prop_id", "Area"]], path="results.csv")

# Open in browser
ds.open(z=3)

API overview

The package follows an accessor pattern:

ni.connect() -> NimbusClient
    client.dataset(id) -> Dataset
        ds.images        # fetch frames, composites, z-stacks
        ds.annotations   # create, list, filter, delete annotations
        ds.connections   # parent-child annotation links
        ds.properties    # computed measurements
        ds.collections   # display configuration (layers, tools)
        ds.export        # JSON and CSV export
        ds.history       # undo/redo
        ds.sharing       # access control
    client.list_datasets()
    client.list_workers()
    client.list_projects()

See the full documentation for detailed API reference and examples.

Claude Code integration

NimbusImage includes skills for Claude Code that teach Claude how to use this API. After installing, you can ask Claude things like "connect to my NimbusImage server and list datasets" and it will write correct code.

Install the skills

Option A — Marketplace install (recommended):

# Add the NimbusImage marketplace (one-time)
claude plugin marketplace add arjunrajlaboratory/NimbusImage

# Install the nimbusimage plugin
claude plugin install nimbusimage@arjunrajlaboratory/NimbusImage

Option B — For this session only:

claude --plugin-dir /path/to/NimbusImage/plugins/nimbusimage

Option C — Permanent (project-scoped):

Add to your project's .claude/settings.local.json:

{
  "plugins": ["/path/to/NimbusImage/plugins/nimbusimage"]
}

Available skills

Command What it covers
/nimbusimage Connection, dataset discovery, metadata, projects
/nimbusimage:annotations Annotation CRUD, geometry helpers, bulk operations
/nimbusimage:images Frame retrieval, composites, z-stacks, crops
/nimbusimage:workers Docker worker discovery, execution, job tracking
/nimbusimage:analyze Properties, export, connections, sharing

The skills use progressive disclosure — Claude loads only what it needs for the current task.

Development

cd nimbusimage
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"

# Run unit tests (no backend required)
pytest tests/ --ignore=tests/integration -v

# Run integration tests (requires docker compose up)
pytest tests/integration/ -v -m integration

License

See the project root for license information.

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

nimbusimage-0.1.0.tar.gz (44.3 kB view details)

Uploaded Source

Built Distribution

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

nimbusimage-0.1.0-py3-none-any.whl (35.9 kB view details)

Uploaded Python 3

File details

Details for the file nimbusimage-0.1.0.tar.gz.

File metadata

  • Download URL: nimbusimage-0.1.0.tar.gz
  • Upload date:
  • Size: 44.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nimbusimage-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4cf1ddb8a6da96956c5d0db862abb33ed1261335048c00da3a0aed2607625be9
MD5 798ca618ded185a832f9d59266cdf9ec
BLAKE2b-256 a4143b36fe2c7edbefa3da163f00bd759f8d50bac6e8c8ac394a67d28a57ec46

See more details on using hashes here.

Provenance

The following attestation bundles were made for nimbusimage-0.1.0.tar.gz:

Publisher: publish-nimbusimage.yaml on arjunrajlaboratory/NimbusImage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nimbusimage-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: nimbusimage-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 35.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nimbusimage-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cdc4c5733a7d67f7e6087085bf3b642f71ef30b6285c4668a524774a93921541
MD5 8195014eb13e469c2d6c73702ad7276b
BLAKE2b-256 f13487e81abe573ad6dd26a410c1303b600fff9b83052cc26a0deabb8f9f6720

See more details on using hashes here.

Provenance

The following attestation bundles were made for nimbusimage-0.1.0-py3-none-any.whl:

Publisher: publish-nimbusimage.yaml on arjunrajlaboratory/NimbusImage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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