> ## Documentation Index
> Fetch the complete documentation index at: https://bakefile.wisl.dev/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> bakefile is a Python task runner with two CLIs: bake runs tasks from bakefile.py, bakefile manages the project. It is not a service or platform.
> Tasks are methods on Bakebook classes in bakefile.py, decorated with @command. Subprocesses run through self.ctx.run().
> Examples are backed by tests; copy them verbatim.

# Bakebook must be a Bakebook, got Typer

> The bakebook variable must be a Bakebook instance, not a typer.Typer() app or a dict. Tasks use Typer syntax, but the bakebook itself is a Bakebook.

```
BakebookError: Bakebook 'bakebook' must be a Bakebook, got Typer
```

The `bakebook` variable must be a `Bakebook` instance (or a subclass, like a bakelib Space). A `typer.Typer()` app or a plain dict does not work.

Tasks use Typer syntax, but the bakebook itself is a `Bakebook`:

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
from bake import Bakebook

bakebook = Bakebook()
```

See [Bakebook](/concepts/bakebook) and [Commands](/concepts/commands) for the difference between the two.
