Adaptive coding interview practice powered by Claude
Project description
autocurricula

Adaptive technical interview practice, powered by Claude. Problems are generated on-the-fly based on your role and skill level, with real-time code execution, structured test results, and AI-driven feedback.
Covers coding, algorithms, math, probability, statistics, and brainteasers.
Installation
pip install autocurricula
Prerequisites: Claude CLI must be installed and authenticated.
Quick start
autocurricula
This opens the app in your browser at http://localhost:8420.
On first launch, create a workspace by choosing a role (e.g. "ML Engineer", "Quant Researcher", "Backend Developer"). Claude generates problems tailored to that role and adapts difficulty as you progress.
A sandboxed virtual environment is automatically created at
~/.autocurricula/.sandbox_venvwith numpy, pandas, scipy, torch, and pytest for executing solutions.
How it works
autocurricula uses a self-adjusting curriculum loop:
- Claude generates a problem matched to your role, category, and current difficulty level.
- You solve it in the built-in editor with full autocompletion and live test feedback.
- Claude reviews your submission, gives a verdict (solved / retry / move on), and explains the reasoning.
- The system tracks your solve rate and self-rated difficulty to calibrate what comes next.
Categories rotate automatically to ensure broad coverage.
Features
Problem types
| Type | Description |
|---|---|
| Code | Write a function, run open tests, then submit for hidden tests and Claude review. |
| Derivation | Written answers for math proofs, probability puzzles, system design reasoning, and conceptual questions. |
Code editor
Monaco editor with Python syntax highlighting, autocompletion, hover documentation, and function signatures powered by Jedi. Supports numpy, pandas, scipy, and torch out of the box.
Test runner
Each code problem includes an open test suite (visible while solving) and a hidden test suite (run on submit). Tests execute in an isolated sandbox with a 30-second timeout. Results show structured pass/fail/error status with expandable failure details.
Scaffolding
Stuck? Request a scaffold and Claude generates an easier prerequisite targeting the specific concept you're missing. Solve it, then return to the original problem.
Theory
Each problem comes with background material covering relevant formulas, derivations, algorithmic intuitions, and worked examples. Rendered with LaTeX support.
Chat
Ask Claude for hints without getting the answer. Claude sees your current code and problem statement for context. Chat history is preserved per problem.
Progress tracking
Track solve counts, attempt counts, and success rates across all categories. Rate each solved problem's difficulty (1–5) to help the system calibrate. Problems solved but rated as hard are flagged for revisiting.
Workspaces
Maintain separate workspaces for different roles, each with its own problem history, progress state, and difficulty curve.
Configuration
| Option | Default | Description |
|---|---|---|
--port, -p |
8420 |
Port for the web server |
License
MIT — free to use, modify, and distribute.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file autocurricula-0.3.0.tar.gz.
File metadata
- Download URL: autocurricula-0.3.0.tar.gz
- Upload date:
- Size: 53.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e18bbe7dfc6a823fbadc055d25b6d6739d142b512895a07e56d8983006031915
|
|
| MD5 |
e575f498816ae33aaa397bf0b79a7297
|
|
| BLAKE2b-256 |
5deb41269d5ab65dc53b170077b68c935d77d83c6af05c56dfc30bba0238b2cb
|
Provenance
The following attestation bundles were made for autocurricula-0.3.0.tar.gz:
Publisher:
publish.yml on RobinLmn/autocurricula
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
autocurricula-0.3.0.tar.gz -
Subject digest:
e18bbe7dfc6a823fbadc055d25b6d6739d142b512895a07e56d8983006031915 - Sigstore transparency entry: 1272463132
- Sigstore integration time:
-
Permalink:
RobinLmn/autocurricula@39fe4705c98dccf236c00251ec040831f2b95d22 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/RobinLmn
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@39fe4705c98dccf236c00251ec040831f2b95d22 -
Trigger Event:
push
-
Statement type:
File details
Details for the file autocurricula-0.3.0-py3-none-any.whl.
File metadata
- Download URL: autocurricula-0.3.0-py3-none-any.whl
- Upload date:
- Size: 60.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9009fbd2eaf8e3d5e8dbf95709df63b9d22639c415eaafa81b8f8ede061e254
|
|
| MD5 |
b0ff6ad9cc6f32487f99e409b96e3dad
|
|
| BLAKE2b-256 |
8840024325bbb87d17c1e65ebb38441572a75709d6d96e7b791c5bb5610b52e9
|
Provenance
The following attestation bundles were made for autocurricula-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on RobinLmn/autocurricula
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
autocurricula-0.3.0-py3-none-any.whl -
Subject digest:
f9009fbd2eaf8e3d5e8dbf95709df63b9d22639c415eaafa81b8f8ede061e254 - Sigstore transparency entry: 1272463156
- Sigstore integration time:
-
Permalink:
RobinLmn/autocurricula@39fe4705c98dccf236c00251ec040831f2b95d22 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/RobinLmn
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@39fe4705c98dccf236c00251ec040831f2b95d22 -
Trigger Event:
push
-
Statement type: