The ARC-AGI-3 Kaggle Starter is a local dev kit for the ARC Prize 2026 - ARC-AGI-3 Kaggle competition. You edit one Python file on your laptop, see it play the real game environments locally, and push it to Kaggle as a submission with a single command. Repository: github.com/arcprize/ARC-AGI-3-Kaggle-StarterDocumentation Index
Fetch the complete documentation index at: https://docs.arcprize.org/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
- Python 3.12 (the competition’s
arc-agipackage requires it)- macOS:
brew install python@3.12 - Ubuntu:
sudo apt install python3.12 python3.12-venv - Windows: install from python.org
- macOS:
- A Kaggle account with the competition rules accepted (accept here).
- A Kaggle API token created at Kaggle Settings → Create New Token. You’ll drop it into the project (no
~/.kaggle/kaggle.jsonrequired).
Quick start
make status shows complete, open the notebook on kaggle.com, find your kernel, click Submit to Competition in the top right, and pick submission.parquet from the Output File dropdown.
Steps 4-7 are the iteration loop; clicking Submit to Competition is the deliberate moment you spend a daily submission.
The one file you edit: agent/my_agent.py
This is the only file you normally touch. It defines a MyAgent class with two methods:
choose_action with your strategy. Kaggle plumbing, submission file format, and game orchestration are all handled for you.
What happens when you run make submit
The competition is a code competition: you submit a notebook, Kaggle runs it twice.
- Phase A: Save & Run All. Kaggle runs your notebook in their real environment and validates that the code executes without errors.
make statuswill reportcomplete. - Phase B: Competition Rerun. Triggered when you click Submit to Competition on the kernel page. Your agent plays the hidden game set and your leaderboard score appears.
Before your first
make submit, open notebooks/kernel-metadata.json and replace REPLACE_WITH_YOUR_USERNAME with your Kaggle handle. The Makefile will refuse to push until you do.Choosing an accelerator
The notebook is generated with a T4 GPU by default (matches Kaggle’s sample submission). To change it, openscripts/build_notebook.py and edit one line near the top:
make submit. Both the notebook metadata and notebooks/kernel-metadata.json get updated automatically.
| Value | Hardware | When to use |
|---|---|---|
"cpu" | No GPU | The random starter, or any non-ML agent |
"t4" | Nvidia T4 ×2 | Default. Small models, fast iteration |
"p100" | Nvidia P100 | Single big-memory GPU |
"rtx6000" | Nvidia RTX 6000 (g4-standard-48) | Heavy ML; ARC-AGI-3 exclusive, burns GPU quota faster |
All the commands
| Command | What it does |
|---|---|
make setup | One-time install: Python venv, arc-agi, kaggle CLI, clones the framework |
make play-local | Runs your agent against every game in the dataset, locally |
make play-local GAME=ls20 | Same, but only one game (faster while debugging) |
make verify-local | 30-second smoke test on two games |
make list-games | Print every game id available |
make pull-sample | Download the official sample agent for reference |
make notebook | Build the Kaggle notebook from your agent (no push) |
make submit | Build the notebook and push it to Kaggle |
make status | Check the status of your most recent Kaggle run |
make clean | Remove the venv, downloads, and generated notebook |
Why this setup instead of editing in the Kaggle notebook?
- Iteration speed. Editing in your IDE then running
make play-localgives you a real-game-engine feedback loop in seconds. Kaggle’s editor loop is minutes per change. - No environment surprises. The local
arc-agiPyPI package hosts the same game engine the Kaggle gateway runs. If it works locally, it works on Kaggle. - Your code stays in git. Notebooks are awful for diffs and code review. Your real work lives in
agent/my_agent.py; the notebook is an auto-generated deployment artifact.
Project layout
Troubleshooting
make setup fails: python3.12: command not found. Install Python 3.12; the arc-agi package requires it. macOS: brew install python@3.12.
make submit says “edit kernel-metadata.json”. You haven’t replaced REPLACE_WITH_YOUR_USERNAME in notebooks/kernel-metadata.json yet.
make submit says 401 Unauthorized. Your Kaggle token is missing or invalid. Generate a fresh one from your Kaggle Settings page and overwrite .kaggle/access_token.
make play-local says “Could not create environment”. Your machine couldn’t reach the ARC-AGI API to download the game source on first run. Check your internet, then try again. Once downloaded, games are cached in environment_files/ and you’re fully offline.
My local score is 0.0. That’s expected for the random starter agent. Your job is to make it non-zero.
Where to go next
- Read the rest of the ARC-AGI-3 docs to understand the benchmark.
- Run
make pull-sampleto study Kaggle’s reference agent. - Join the competition’s discussion forum for community Q&A.

