arc-agi-rsis a multi-language toolkit for interacting with the ARC-AGI-3 REST API. The core is written entirely in Rust and compiled to native extensions, so Python and Node.js callers enjoy the same performance and correctness guarantees as the Rust library 🗿.
| 🦀 Rust | 🐍 Python | 🟩 Node.js |
|---|---|---|
| Rust Guide | Python Guide | Node.js Guide |
cargo add arc-agi-rs |
pip install arc-agi-rs |
npm install arc-agi-rs |
The library exposes the full ARC-AGI-3 client API:
- Environment discovery - list and inspect all available game environments.
- Scorecard management - open, retrieve, and close scored sessions.
- Game interaction -
reseta game to its initial state andstepthrough it action-by-action. - Anonymous access - obtain an anonymous API key when no personal key is available.
A fluent builder API (mirroring the Python Arcade class) covers all client configuration: API key, base URL, cookie storage, and HTTP proxy.
The Rust crate is available on crates.io. It provides a high-performance, async-first interface for building ARC-AGI agents.
For a complete API reference, installation guide, and examples, visit the Rust Usage Guide.
The Python bindings are published to PyPI as arc-agi-rs. They provide a native extension that operates a robust tokio runtime under the hood, ensuring top-tier performance with a simple synchronous API.
For installation instructions, configuration options, and full method signatures, see the Python usage guide.
The Node.js bindings are published to npm as arc-agi-rs. Built with napi-rs, they offer extremely fast, native synchronous bindings that save you from deep async closures for one-off game calls.
For installation instructions, type definitions, and examples, read the Node.js usage guide.
All credentials can be supplied via environment variables as a fallback:
| Variable | Description | Default |
|---|---|---|
ARC_API_KEY |
API key for authentication | (empty) |
ARC_BASE_URL |
Base URL of the ARC-AGI-3 server | https://three.arcprize.org |
Licensed under the MIT License.
If you find this library useful, please leave a star on GitHub! It helps others discover the project and keeps the momentum going ☕.
