Install & Compatibility
Where this runs
tested against v2024.21.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.910 runs
installs and imports cleanly · install 0.0s · import 0.000s · 19.7MB
glibcpy 3.10–3.910 runs
installs and imports cleanly · install 2.1s · import 0.000s · 20MB
18MB installed
● package 18MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
download_input
✓ from aoc.api import download_input
✗ import aoc.download_input
Directly import functions from the 'aoc.api' submodule for programmatic use.
submit
✓ from aoc.api import submit
✗ from advent_of_code import submit
The top-level 'advent_of_code' package does not directly expose helper functions; use 'aoc.api'.
The primary way to use `advent-of-code` is via its `aoc` command-line interface. This quickstart demonstrates how to set up a new year, fetch puzzle inputs, run your solutions, and submit answers, emphasizing the critical `AOC_SESSION` environment variable for authentication.
# 1. Install the library (if you haven't already)
# pip install advent-of-code
# 2. Set your Advent of Code session cookie as an environment variable.
# This is crucial for fetching inputs and submitting answers.
# Find your 'session' cookie in your browser's developer tools on adventofcode.com
# export AOC_SESSION="YOUR_SESSION_COOKIE_HERE"
# 3. Initialize a directory for a specific year (e.g., 2023)
aoc init 2023
# 4. Navigate into the year directory
cd 2023
# 5. Download input and create boilerplate for a specific day (e.g., Day 1)
aoc download 1
# 6. Your solution code will be in a file like '01.py'. Edit it.
# 7. Run your solution (e.g., for Day 1)
aoc run 1
# 8. Submit your answer for Part 1 (replace <answer> with your actual result)
# aoc submit 1 1 <answer>
aoc --version
Debug
Known issues
breakingThe official GitHub repository for `advent-of-code` (`fornwall/advent-of-code`) has been archived since November 2023. Despite this, the PyPI package continues to receive new versions, leading to a discrepancy where publicly available source code is outdated or missing for recent releases.fixBe aware that the latest source code may not be publicly available. Consider exploring forks or alternative tools if source visibility is critical for your workflow.
affects: 2023.0.0 and above
gotchaThe `AOC_SESSION` environment variable is mandatory for most `aoc` commands and API calls that interact with the Advent of Code website (e.g., `download`, `submit`). Without it, authentication errors will occur.fixSet `export AOC_SESSION="<your_session_cookie>"` in your shell environment. Find the 'session' cookie value from `adventofcode.com` in your browser's developer tools.
affects: All
gotchaThe library typically expects a specific directory structure (`<year>/<day_padded>.py`, `<year>/<day_padded>/input.txt`). Commands like `aoc run` and `aoc submit` rely on this structure, usually generated by `aoc init` and `aoc download`.fixAlways initialize your project with `aoc init <year>` and download inputs with `aoc download <day>` within the year's directory to ensure the correct file structure.
affects: All
gotchaRepeatedly fetching inputs or submitting incorrect answers too quickly can lead to rate limiting or temporary bans from Advent of Code. Use the tool responsibly.fixOnly fetch inputs once per day. If submitting, ensure your answer is correct before attempting multiple submissions. Review Advent of Code's puzzle rules and etiquette.
affects: All
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'advent_of_code'
Attempting to import the library using the PyPI package name (`advent_of_code`) instead of its internal module name (`aoc`).
fixChange your import statement to `import aoc` or `from aoc.api import ...`.
AdventOfCodeError: A session cookie is required to access Advent of Code.
The `AOC_SESSION` environment variable is either not set or contains an invalid/expired Advent of Code session cookie.
fixSet the `AOC_SESSION` environment variable with a valid session cookie from `adventofcode.com`. Refresh your browser to get a new cookie if it's expired.
AttributeError: module 'aoc' has no attribute 'download'
Attempting to call `aoc.download(...)` directly. The download functionality is exposed via the `api` submodule.
fixUse `from aoc.api import download_input` and then call `download_input(...)`.
Error: Input already downloaded for day X.
You tried to run `aoc download <day>` for a day for which input has already been successfully fetched and saved.
fixThis is a warning, not an error preventing operation. If you need to re-download, delete the existing input file first (e.g., `rm <year>/<day>/input.txt`).
Upgrade
Version history
2025.6.0latest on PyPI · released Mar 7, 2026
Audit
Dependencies
No dependency data recorded yet.
Resources
No resource links recorded.