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. For more information, consult the documentation and o-o --help.

Contributing

Suggestions, bug reports, and patches are welcome and should be sent to the o-o mailing list. For patches, use git send-mail and refer to git-send-email.io for instructions.

o-o is made by humans. We do not accept any contributions fully or partially authored by coding agents, large language models (LLMs), or similar generative AI technologies.

Metadata

Release files for o-o 0.7.5

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.5
File Size Uploaded
o_o-0.7.5.tar.gz 36.3 kB Details

Built distribution (wheel)

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

Total release size: 75.8 kB

Release files / o_o-0.7.5.tar.gz

Download URL o_o-0.7.5.tar.gz
Size 36.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e38c6d2e10b201bc314c170ea3a2e4c9657d23805fc82debf2cf18488ca15d10
BLAKE2b-256 checksum
How to use checksums
ea67d3528210f63449d06d7c9922652480eb074b07b1119b688f5cce2d9840aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.11

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

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

Release history Release notifications | RSS feed

This release

0.7.5 This release

2 release files

0.7.4

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