# `aocf_cli` - Advent of Code fetch CLI
[](https://crates.io/crates/aocf_cli)
A CLI helper tool for [Advent of Code](https://adventofcode.com/).
This is a wrapper around the `aocf` crate, and freely interoperates with it if
needed.
## Install
```
cargo install aocf_cli
```
Or from source:
```
git clone https://github.com/aocf
cd aocf/aocf_cli
cargo install --path .
```
The tool will now be available as `aocf` for the user who ran this command. The
cargo binary install path provided after cargo completes may need to be added
to your shell's `PATH` variable.
## Commands
### `init`
Initialise an aocf repository, similar to how you would initialise a git
repository. Data and configuration for aocf is kept in `./.aocf`.
### `set-cookie`
Write the cookie into cache using provided session cookie string.
### `get-cookie`
Extract your session cookie from the Firefox cookie store. You should have
previously logged in to Advent of code using Firefox. This command will then
set the cookie as with `set-cookie`.
### `checkout`
Move to a given day, and optionally year. May be combined with `--now`.
### `fetch`
Fetch input and brief for the current day.
### `brief`
Show the brief for the currently checked out day.
### `input`
Print the currently checked out day's input.
### `status`
Show the current status (for the currently checked out day).
### `summary`
Show a summary of all challenges which exist in the cache, and stars achieved,
for a given challenge year. The year shown is either the currently checked out
year, or the year provided by the `--year` command line option.
### `completion`
Generate a shell completion script.
Supported shells are Bash, Zsh, Fish, Powershell, Elvish.
### `help`
Get help on command usage, for a given subcommand.
## Option flags
### Time based flags
* `--now`
* `--year`
* `--day`
These can be used to override the current day or year used when fetching, or
other commands. Generally commands will get the day and year from the
root configuration if it exists, and these are not provided.
### Viewing flags
* `--view`
If no flags are given, `aocf` will generally output content on standard output
or stderr; if `--view` is provided, output will be piped to the pager programme
specified in the root configuration (`.aocf/config`) as e.g. `pager = "less"`.
* `--pretty`
Only available for the `brief` subcommand, pretty formats the challenge brief
in a similar format to viewing on the Advent of Code website, in a scrollable,
pager fashion.
* `--web`
Only available for the `brief` subcommand, opens the brief in a web browser.
### Retrieval flags
* `--force`
This will force retrieval from the AoC site, even if a cache exists already for
the current day/problem part.
### Cache
The cache for data for each day is stored as JSON under `.aocf/cache`.