Skip to main content

AI-powered autonomous ML research framework — agent runs experiments against frozen evaluation contracts on your existing pipelines.

Project description

🥋 Dojo — An AI-powered autonomous ML research framework.

Dojo.ml logo

Run controlled, reproducible ML experiments on your existing pipelines and build a memory of what actually works.



What is Dojo?

You define a domain — a research area pointing at your data with a fixed evaluation contract. An AI agent runs experiments inside that contract: writing training code, calling frozen load_data and evaluate tools, logging metrics, and recording findings as durable knowledge atoms.

The agent owns the training code. The framework owns evaluation. That separation is what makes the metrics trustworthy run-over-run, and what makes it safe to leave the agent unsupervised.

What's a domain?

A domain is a frozen research contract: one load_data + one evaluate + one workspace. Many experiments live inside it.

  • Create a new domain when the data source, target variable, or evaluation metric changes.
  • Don't create a new domain when you want to try a new model, hyperparameter, or feature — that's an experiment, and experiments are the agent's job.

⚠️ Proof of Concept — under active development. Single-tenant, local-first, open source. Today only RegressionTask is supported; more task types are coming once regression is solid.


Quickstart — recommended path

The recommended way to onboard a real project is the dojo-onboard Claude Code skill. It reads your code, asks a few targeted questions about the data + evaluation, writes PROGRAM.md + SETUP.md from the conversation, and drives the framework to generate + verify + freeze the contract.

uv tool install dojoml              # one-time
dojo skill install dojo-onboard     # one-time, requires Claude Code
cd path/to/your/python/project
claude                              # in Claude Code, run: /dojo-onboard
dojo run                            # after the skill finishes

Prerequisites:

  • Python 3.13+
  • Claude Code installed (for the skill path)
  • The claude CLI logged in — Dojo shells out to it for agent runs (no ANTHROPIC_API_KEY needed)

Fallback — dojo onboard (no Claude Code)

If you don't have Claude Code, the built-in Typer wizard does the same setup interactively:

uv tool install dojoml
cd path/to/your/python/project
dojo onboard                        # interactive prompts
dojo run

For scripted / CI use, dojo onboard --non-interactive --name my-project writes default PROGRAM.md + SETUP.md templates and stops; edit the files, then run dojo domain setup.

Try a preset (tire-kicker)

To see Dojo work end-to-end on a canned dataset with no existing project:

mkdir housing && cd housing
dojo onboard --preset california_housing
dojo run --max-turns 30

Configuration

.dojo/config.yaml in your project root:

agent:
  backend: claude      # "stub" (no LLM, deterministic) or "claude"
tracking:
  backend: file        # "file" or "mlflow"

Env-var overrides use double underscore for nested fields: DOJO_AGENT__BACKEND=stub, DOJO_TRACKING__BACKEND=mlflow.

Pointers

Development

Clone, then:

just dev                           # install backend (uv sync) + frontend (npm install)
just test                          # pytest -v
just lint                          # ruff check + format check

Full server + web UI dev loop: just run-stub (or just run-claude). Backend at http://localhost:8000, frontend at http://localhost:5173. The React frontend is not bundled in the PyPI release yet — run it from a checkout.

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

dojoml-0.0.21.tar.gz (116.4 kB view details)

Uploaded Source

Built Distribution

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

dojoml-0.0.21-py3-none-any.whl (161.1 kB view details)

Uploaded Python 3

File details

Details for the file dojoml-0.0.21.tar.gz.

File metadata

  • Download URL: dojoml-0.0.21.tar.gz
  • Upload date:
  • Size: 116.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dojoml-0.0.21.tar.gz
Algorithm Hash digest
SHA256 41017dbca08d29d68fa5a84123bc882d437e6ba641fefbf9c6c277655fd439fb
MD5 bdaae40bc2fa4a55a6099c735dc92e1e
BLAKE2b-256 676d790adc0082122f832267b060bd726eab706b07d5c3ab58e324f65df43840

See more details on using hashes here.

Provenance

The following attestation bundles were made for dojoml-0.0.21.tar.gz:

Publisher: release.yml on Garsdal/Dojo

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

File details

Details for the file dojoml-0.0.21-py3-none-any.whl.

File metadata

  • Download URL: dojoml-0.0.21-py3-none-any.whl
  • Upload date:
  • Size: 161.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dojoml-0.0.21-py3-none-any.whl
Algorithm Hash digest
SHA256 0404c4f41a0dbc7463facc6bb0cda3a021b9220619313949cc0d864b190c488a
MD5 a030d2198bf51bf8906c30c82b8b9754
BLAKE2b-256 7e45422c83451d77a40c6beea63808cc595078c74719124b9a1131d146bb03d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for dojoml-0.0.21-py3-none-any.whl:

Publisher: release.yml on Garsdal/Dojo

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