Skip to main content

autooptm

Measured GPU speedups for your training and inference code, from the terminal, an agent, or Python. The estimate is free; continuing takes a 2-credit analysis deposit, credited in full against the patch; the patch is what costs credits.

pipx install autooptm          # a CLI tool: pipx or `uv tool install autooptm`, not a bare pip
                               # (Homebrew's Python on macOS and recent Debian/Ubuntu refuse it)
autooptm login                 # opens the browser to approve this machine (30-day token)
autooptm run https://github.com/you/repo --entrypoint train.py
autooptm wait <jobId>          # resume waiting after a dropped connection or --no-wait
autooptm unlock <jobId>        # asks before spending credits
git apply autooptm.patch

A local directory (autooptm run .) is packed on your machine, and you see the list before it leaves: .git, caches and virtualenvs are dropped without asking; weight files, data files, files over 8 MB and directories with over 200 files are each shown and asked about (they stay out unless you say yes, or answer d to send a directory up as the private dataset instead, unpacked at the same path in the sandbox); then the packing list is printed and upload? [Y/n] waits. --dry-run only shows the list, --include PATH / --exclude PATH answer from the command line, and --yes takes the defaults without asking (off a terminal, run will not upload without it).

run first gets the free estimate and shows it (expected speedup, the range, a lossless line, and the reviewer's note if something in the submission would stop the run); it then asks before taking the analysis deposit. --yes continues without asking, --no-estimate skips the estimate (the deposit is taken at submit). A job left at the estimate can be answered later:

autooptm estimate <jobId>            # the numbers again
autooptm decide <jobId> continue     # takes the deposit, credited against the unlock
autooptm decide <jobId> stop         # free

autooptm login --email you@example.com is the no-browser door (a mailed code) for servers and CI shells; --no-browser prints the approval link instead of opening it.

Python:

from autooptm import AutoOptm
ao = AutoOptm()
job = ao.submit(".", entrypoint="bench.py", workload="inference")
done = ao.wait(job["jobId"])
print(done["speedup"], done["unlock_credits"])

MCP (Claude Code, Cursor, any MCP client), pipx install 'autooptm[mcp]':

{ "mcpServers": { "autooptm": { "command": "autooptm-mcp" } } }

Tools: optimize_submit, optimize_status, optimize_wait, unlock_patch (requires explicit user confirmation), download_patch, account_balance.

API keys (CI and scripts)

autooptm login saves a 30-day token that slides on use, which is the right credential for a laptop and the wrong one for a build machine: it expires while the pipeline is idle, it needs a mailbox to renew, and it can spend credits. A key fixes all three.

autooptm login                      # a key is minted from a session
autooptm keys create "CI pipeline"  # printed once, never again
autooptm keys list
autooptm keys revoke aok_1a2b3c4d5e6f

Put it in CI as AUTOOPTM_TOKEN and it works everywhere a login token does.

Keys carry scopes, and the default is read,submit. unlock is opt-in, so a build machine can submit work and read the result without being able to spend a credit, whatever the build does. Add --scopes read,submit,unlock only if you mean it, and --expires-in-days N to make it die on its own.

Release files for autooptm 0.6.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 autooptm 0.6.0
File Size Uploaded
autooptm-0.6.0.tar.gz 28.8 kB Details

Built distribution (wheel)

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

Total release size: 60.8 kB

Release files / autooptm-0.6.0.tar.gz

Download URL autooptm-0.6.0.tar.gz
Size 28.8 kB
Tags Source
SHA-256 checksum
How to use checksums
339be8b589d5a2926026f81ba370b556b7476c535a8f08db42efb4ac49c875a6
BLAKE2b-256 checksum
How to use checksums
4f8cbc0f296304d815ca279818f11e14b7dbaa563e75ce4084ebe55817660d19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release files / autooptm-0.6.0-py3-none-any.whl

Download URL autooptm-0.6.0-py3-none-any.whl
Size 32.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
68644236db3b962a551c3f054f057eba7e50c86b3848532a7b6bcb79718e5870
BLAKE2b-256 checksum
How to use checksums
b15f34fb3536511ad2c9740970e93d927c15ea65a872d7bbcb9e7b178f330ff4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

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