OmniBioAI SDK is a lightweight Python client for interacting with the OmniBioAI platform APIs, including:
- Object Registry (datasets, studies, jobs, workflows)
- Development APIs (
/api/dev/*) - Jupyter-based interactive analysis workflows
The SDK is intentionally thin and explicit — it does not hide API behavior and is designed to evolve alongside the OmniBioAI platform.
- Simple Python client (
OmniClient) - Works with local OmniBioAI development servers
- No Docker required
- Designed for notebooks, scripts, and pipelines
- Explicit auth and base URL control
- Easy to extend with new API endpoints
pip install omnibioai-sdkOr during development:
pip install -e .from omnibioai_sdk import OmniClient
c = OmniClient(
base_url="http://127.0.0.1:8001",
token="dev"
)
objects = c.objects_list()
print(objects["count"])The SDK uses header-based authentication.
For development:
Authorization: Bearer dev
You can pass credentials explicitly or via environment variables.
export OMNIBIOAI_BASE_URL=http://127.0.0.1:8001
export OMNIBIOAI_TOKEN=devThen simply:
c = OmniClient()lst = c.objects_list()
lst["count"]
lst["items"][0]obj = c.object_get("56d3fc3a-709b-4ed0-bf17-8cb73c6746b0")
print(obj["object_type"])
print(obj["metadata"])OmniBioAI supports launching object-aware Jupyter notebooks.
Typical flow:
- User clicks “Analyze in Notebook” in the OmniBioAI UI
- Django endpoint generates a notebook
- JupyterLab opens with the object context preloaded
Inside the notebook:
import os
from omnibioai_sdk import OmniClient
OBJECT_ID = os.environ["OMNIBIOAI_OBJECT_ID"]
c = OmniClient()
obj = c.object_get(OBJECT_ID)
obj["object_type"], obj["metadata"]Recommended dev command:
jupyter lab \
--port 8890 \
--port-retries=0 \
--no-browser \
--notebook-dir . \
--IdentityProvider.token=devtokenAnd set:
export OMNIBIOAI_JUPYTER_BASE=http://127.0.0.1:8890
export OMNIBIOAI_JUPYTER_TOKEN=devtokenomnibioai_sdk/
├── omnibioai_sdk/
│ ├── __init__.py
│ └── client.py
├── pyproject.toml
├── README.md
- No magic: SDK mirrors REST APIs closely
- Dev-first: optimized for local servers and notebooks
- Composable: meant to be imported into pipelines, workflows, and notebooks
- Extensible: new APIs = new methods, not rewrites
Add new API calls by extending OmniClient:
def workflow_list(self):
r = requests.get(
f"{self.base_url}/api/dev/workflows/",
headers=self.headers,
timeout=self.timeout
)
r.raise_for_status()
return r.json()No regeneration or codegen required.
The SDK follows semantic versioning:
0.x→ fast iteration1.0+→ stable API surface
Apache License 2.0
Active development Used internally by the OmniBioAI workbench and services.
For opening objects in JupyterLab, VS Code, or RStudio, see the
omnibioai-launcher
repository. The launcher is a standalone React UI that accepts an
object_id via URL parameter and handles environment dispatch.