Skip to main content

CLI tool for AI Coding Gym platform

Project description

aicodinggym-cli

CLI tool for the AI Coding Gym platform. Supports three benchmarks: SWE-bench (code bug fixes), MLE-bench (ML competitions), and Code Review challenges.

Install: pip install aicodinggym-cli Entry point: aicodinggym


Quick Start

# 1. Configure (one-time setup)
aicodinggym configure --user-id YOUR_USER_ID

# 2. SWE-bench: fetch, solve, test, submit
aicodinggym swe fetch django__django-10097
# ... edit code to fix the issue ...
aicodinggym swe test django__django-10097    # run tests locally (requires Docker + act)
aicodinggym swe submit django__django-10097

# 3. MLE-bench: download, train, submit
aicodinggym mle download spaceship-titanic
# ... train model, generate predictions ...
aicodinggym mle submit spaceship-titanic -F predictions.csv

# 4. Code Review: fetch, review, submit
aicodinggym cr fetch keycloak-0008
# ... read diff.patch, write your review in review.md ...
aicodinggym cr submit keycloak-0008 -f review.md

Commands

aicodinggym configure

One-time setup. Generates SSH key, registers with server.

aicodinggym configure --user-id USER_ID [--workspace-dir DIR]
Option Required Description
--user-id Yes Your AI Coding Gym user ID
--workspace-dir No Default workspace directory (default: cwd)

aicodinggym swe — SWE-bench Commands

aicodinggym swe fetch PROBLEM_ID

Fetch a problem and clone the repo locally.

aicodinggym swe fetch PROBLEM_ID [--user-id ID] [--workspace-dir DIR]

aicodinggym swe submit PROBLEM_ID

Commit all changes and push to remote. Notifies backend.

aicodinggym swe submit PROBLEM_ID [--message MSG] [--force] [--user-id ID] [--workspace-dir DIR]
Option Description
--message, -m Commit message (auto-generated if omitted)
--force Force push with --force-with-lease

aicodinggym swe test PROBLEM_ID

Run the SWE-bench evaluation tests locally using nektos/act. Executes the GitHub Actions workflow from the problem repo on your machine via Docker.

aicodinggym swe test PROBLEM_ID [-W WORKFLOW] [--act-args ARGS] [--user-id ID] [--workspace-dir DIR]
Option Description
-W Specific workflow file in .github/workflows/ (default: all)
--act-args Extra arguments passed to act (e.g. '--container-architecture linux/amd64')

Prerequisites:

  • Docker — must be installed and running (install)
  • act — must be installed (install)
    • macOS: brew install act
    • Windows: choco install act-cli or winget install nektos.act
    • Linux: curl -s https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash

Notes:

  • On Apple Silicon, x86_64 emulation is auto-enabled when the workflow requires it (e.g. old Python or platform-specific conda packages). This adds overhead (~4-5 min vs ~2.5 min on native x86_64).
  • Output is filtered to show step progress and test results only. Full setup logs (conda, pip) are suppressed.
  • A test summary with pass/fail status and elapsed time is printed at the end.

aicodinggym swe reset PROBLEM_ID

Reset repo to original setup commit. Destructive — discards all local changes.

aicodinggym swe reset PROBLEM_ID [--user-id ID] [--workspace-dir DIR]

aicodinggym mle — MLE-bench Commands

aicodinggym mle download COMPETITION_ID

Download dataset files as a zip archive.

aicodinggym mle download COMPETITION_ID [--user-id ID] [--workspace-dir DIR]
Option Description
--workspace-dir Workspace directory (default: configured workspace)

Files are saved to <workspace>/<competition_id>/data/<competition_id>.zip.

aicodinggym mle submit COMPETITION_ID -F FILE

Upload prediction CSV for scoring.

aicodinggym mle submit COMPETITION_ID -F FILE [--user-id ID] [--message MSG]
Option Required Description
-F Yes Path to prediction CSV file
--message, -m No Submission description

aicodinggym cr — Code Review Commands

aicodinggym cr fetch PROBLEM_ID

Download the PR diff and create a review.md template.

aicodinggym cr fetch PROBLEM_ID [--user-id ID] [--workspace-dir DIR]

Creates in <workspace>/<problem_id>/:

  • diff.patch — the full diff between base and head branches
  • review.md — template to fill in your review (only created if not already present)

aicodinggym cr submit PROBLEM_ID

Submit your code review.

aicodinggym cr submit PROBLEM_ID -f review.md [--user-id ID]
aicodinggym cr submit PROBLEM_ID -m "Inline review text"
echo "My review" | aicodinggym cr submit PROBLEM_ID
Option Description
-f, --file Path to a file containing your review (e.g. review.md)
-m, --message Inline review text
stdin Pipe review text from stdin

File Structure

aicodinggym-cli/
├── __init__.py      # Version
├── cli.py           # Click CLI commands (entry point)
├── config.py        # Config + credentials persistence (~/.aicodinggym/)
├── api.py           # HTTP client for aicodinggym.com/api
├── git_ops.py       # SSH key generation, git clone/commit/push/reset
└── pyproject.toml   # Package metadata and build config

Configuration Files

File Purpose
~/.aicodinggym/config.json Global config (user_id, repo_name, key path, workspace)
~/.aicodinggym/credentials.json Per-problem credentials (repo_url, branch, cached after fetch)
~/.aicodinggym/{user_id}_id_rsa SSH private key
~/.aicodinggym/{user_id}_id_rsa.pub SSH public key

Backend API Summary

Endpoint Method Used By
/api/configure POST configure
/api/fetch-problem POST swe fetch
/api/submissions POST swe submit
/api/competitions/<id>/download GET mle download
/api/competitions/<id>/submit POST mle submit

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

aicodinggym_cli-0.5.0.tar.gz (20.5 kB view details)

Uploaded Source

Built Distribution

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

aicodinggym_cli-0.5.0-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

Details for the file aicodinggym_cli-0.5.0.tar.gz.

File metadata

  • Download URL: aicodinggym_cli-0.5.0.tar.gz
  • Upload date:
  • Size: 20.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for aicodinggym_cli-0.5.0.tar.gz
Algorithm Hash digest
SHA256 e98357235e9e2ef16cddba366f07b8c3bd0949718ab2d8e679683f02a6843fca
MD5 c8e2e14b6cf429acb3c0511820753b01
BLAKE2b-256 050a30dd820dfc172e0c7857789fb715b08c5f0798f07d86377d9307f28d9fc9

See more details on using hashes here.

File details

Details for the file aicodinggym_cli-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for aicodinggym_cli-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 eeab3022ebafeabb057cab2f19a7dbc075e052a22a80fbd0a6419719fa5a9429
MD5 2a2af8e59a6cc51f54ff9a3d6a8b396f
BLAKE2b-256 e83aae339cb68213d34d50571166d84f8bfbfe42b51b724d060105509a6d31d8

See more details on using hashes here.

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