Skip to main content

o-o

o‑o is a command line interface for running jobs on ephemeral cloud instances with tracked inputs and outputs. Building data or MLOps pipelines is as simple as stringing together multiple commands, as easily as running locally, but with the power of cloud compute and storage.

Highlights

  • Easily run any command in any language in cloud compute environments
  • Flexible. Define your own run environments with docker images and machine types
  • Traceable. Trace all inputs to the commands that produced them
  • You control your data. Data and source code is stored in your managed buckets
  • Support for Scaleway and Google Cloud (more to come...)

Getting Started

Follow the installation instructions to configure o-o. Once setup, define environments and datastores in an .ooconfig file:

project: test-project
environments:
  - name: scaleway
    provider: scaleway
    image: docker.io/debian:stable-slim
    machinetype: STARDUST1-S
    region: fr-par-1
  - name: gcp
    provider: gcp
    image: docker.io/debian:stable-slim
    machinetype: e2-highcpu-2
    region: northamerica-northeast1-b
  - name: scaleway-l4
    provider: scaleway
    image: docker.io/nvidia/cuda:11.0.3-base-ubuntu20.04
    machinetype: L4-1-24G
    region: fr-par-1
datastores:
  - name: my-datastore
    provider: scaleway
    bucket: o-o-data
    region: fr-par

Lets start with a simple example that creates a data.txt file containing "Hello World" (under the hood, o-o will start and configure our scaleway environment, execute our command, copy output files to our datastore, and finally, delete the Scaleway instance).

$ o-o run --environment scaleway --message "create data.txt" -- \
    'echo "Hello World" > o://output/data.txt'

We completed our first run! o-o run --list displays the run's id (in this case ntus965ryy) and message:

$ o-o run --list
ntus965ryy create data.txt

You are free to run commands in any configured environment. Let's run a second command in our gcp environment that uses the output of ntus965ryy as input, and simply prints the contents of data.txt:

$ o-o run --environment gcp --message "print data.txt" -- \
    cat o://ntus965ryy/data.txt
Hello World

$ o-o run --list
ntus965ryy create data.txt
cxdbx8am38 print data.txt

GPUs are also available with properly configured environments. The scaleway-l4 environment we configured above supports GPU workloads:

$ o-o run --environment scaleway-l4 --message "try gpu environment" -- nvidia-smi
Sat Feb 1 10:00:00 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.195.03             Driver Version: 570.195.03     CUDA Version: 12.8     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA L4                      Off |   00000000:01:00.0 Off |                    0 |
| N/A   36C    P0             27W /   72W |       0MiB /  23034MiB |      2%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

And that's the basics. Find out more in the documentation and with o-o --help.

Metadata

Release files for o-o 0.7.4

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

Source distribution (sdist)

Source distribution for o-o 0.7.4
File Size Uploaded
o_o-0.7.4.tar.gz 35.9 kB Details

Built distribution (wheel)

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

Total release size: 75.1 kB

Release files / o_o-0.7.4.tar.gz

Download URL o_o-0.7.4.tar.gz
Size 35.9 kB
Tags Source
SHA-256 checksum
How to use checksums
fae6c83c34e072825dfc9c9290d3d90eb080eb00f9d1b9218f6ede33e593432a
BLAKE2b-256 checksum
How to use checksums
992b80b4de08d5bf9f2d55cfd0c6dfc06424012e02e5ba90602bedf2502e6037
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.11

Release files / o_o-0.7.4-py3-none-any.whl

Download URL o_o-0.7.4-py3-none-any.whl
Size 39.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f03eb3a98b43e9fe0ead568655ce628af0787499495159fd1272373a675131d1
BLAKE2b-256 checksum
How to use checksums
580b3e5faa6177ee61765c26ca3c6df830cae009e504211e1e0de7157e5e5550
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.11

Release history Release notifications | RSS feed

0.7.5

2 release files

This release

0.7.4 This release

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.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