Skip to main content

Framework for reproducible autonomous research loops

Project description

helix

code checks unit tests codecov PyPI GitHub License

Inspired by karpathy/autoresearch, helix generalizes the idea of autonomous AI research loops beyond LLM training. Give an agent a codebase, a metric, and a fixed time budget. It experiments overnight. You wake up to results.

The git history is the research trail. experiments.tsv is the proof. Anyone can clone a helix, run it on their hardware, and independently verify every result.

Concepts

Term Meaning
helix A git repo containing helix.yaml + program.md + a codebase the agent can modify
helix.yaml Machine-readable spec: what to optimize, how to measure it, which files are editable
program.md Human-written instructions for the agent: domain knowledge, constraints, techniques to try
experiments.tsv Append-only ledger of every experiment: commit, metric, status, description
helix run CLI command that launches an autonomous session on your hardware

Quick start

helix is agent-agnostic. Pick a backend or bring your own.

Backend Install Requires
ClaudeBackend (default) pip install 'helices[claude]' Claude Code CLI
GeminiBackend pip install helices Gemini CLI
Custom pip install helices Implement the AgentBackend protocol

Run an existing helix

# from within a helix directory (one that has helix.yaml)
helix run              # start a session tagged with today's date
helix run --tag exp1   # custom tag
helix status           # show current best and recent experiments

Examples

helix-examples is a curated gallery of standalone helices, each in its own repo and included as a git submodule.

git clone --recurse-submodules git@github.com:VectorInstitute/helix-examples.git
cd helix-examples/inference-opt
uv run prepare.py   # one-time: download model + dataset
helix run

The first example, helix-inference-opt, optimizes inference throughput for a causal language model on WikiText-2. The agent modifies infer.py (batching, quantization, torch.compile, etc.) and automatically merges improvements back to main.

Writing your own helix

The typical starting point is an existing research codebase. helix init drops the helix layer on top without touching your code.

cd my-research-project        # your existing git repo
pip install 'helices[claude]'
helix init . --domain "AI/ML" --description "Optimize X for task Y."

helix init is non-destructive: it skips any file that already exists, so running it against a repo with an existing pyproject.toml or uv.lock is safe.

Then:

  1. Edit helix.yaml: set scope.editable to the files the agent may modify, and set evaluate.command to your evaluation script.
  2. Edit program.md: describe your codebase, goal, constraints, and techniques to try.
  3. Run helix run.

If you are starting from scratch:

helix init my-project --domain "AI/ML" --description "Optimize X for task Y."
cd my-project && git init
# add your codebase, fill in helix.yaml and program.md, then:
helix run

Minimal helix.yaml

name: my-helix
domain: AI/ML
description: Optimize X for task Y.

scope:
  editable: [train.py]
  readonly: [evaluate.py, program.md, helix.yaml]

metrics:
  primary:
    name: accuracy
    optimize: maximize
  evaluate:
    command: python evaluate.py
    timeout_seconds: 120
    output_format: pattern
    patterns:
      primary: '^accuracy:\s+([\d.]+)'

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

helices-0.1.5.tar.gz (116.8 kB view details)

Uploaded Source

Built Distribution

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

helices-0.1.5-py3-none-any.whl (32.1 kB view details)

Uploaded Python 3

File details

Details for the file helices-0.1.5.tar.gz.

File metadata

  • Download URL: helices-0.1.5.tar.gz
  • Upload date:
  • Size: 116.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for helices-0.1.5.tar.gz
Algorithm Hash digest
SHA256 0da3416340aecf273be185390b9f346967d9ec9290eb89522753671386c0427b
MD5 56f43e65539cf322a37b1d4b09337a70
BLAKE2b-256 d00e4e322f3858a9253959450d163711d7efa3fa1c3b6fff7b8ced846fdd441a

See more details on using hashes here.

Provenance

The following attestation bundles were made for helices-0.1.5.tar.gz:

Publisher: publish.yml on VectorInstitute/helix

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

File details

Details for the file helices-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: helices-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 32.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for helices-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 6711e2532f89987bfe5bb93f59748aea458feaeada6239fdf70028be595a1f2e
MD5 f7ca316bbd1a9e47a69b0efd20b5b536
BLAKE2b-256 52ee36dd4d8fd747e39a3afac84cd548688e66750ea1bf5b8591db263ade80b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for helices-0.1.5-py3-none-any.whl:

Publisher: publish.yml on VectorInstitute/helix

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