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

# Installing Slomo: Requirements, pip, and Integrations

> Install Slomo via pip, verify the install, and understand the Python 3.12+ requirement and optional integrations for requests, httpx, and SQLAlchemy.

Slomo is distributed as a pure Python package on PyPI. It has no compiled extensions, no external services to configure, and its only dependencies are `typer` and `rich`, which power the CLI and are installed automatically — install it and you're done.

## Requirements

| Requirement                | Details                                                     |
| -------------------------- | ----------------------------------------------------------- |
| **Python version**         | 3.12 or later (required for `sys.monitoring` / PEP 669)     |
| **License**                | MIT                                                         |
| **External services**      | None — fully local                                          |
| **Mandatory dependencies** | `typer` and `rich` — installed automatically, power the CLI |

<Note>
  Python 3.12 is a hard requirement. Slomo's instrumentation layer is built on `sys.monitoring`, the low-overhead monitoring API introduced in PEP 669 and only available from Python 3.12 onward. Earlier Python versions are not supported.
</Note>

## Install Slomo

<CodeGroup>
  ```bash pip theme={null}
  pip install slomo
  ```

  ```bash uv theme={null}
  uv add slomo
  ```

  ```bash pipx theme={null}
  pipx install slomo
  ```
</CodeGroup>

Install into your project's virtual environment (`pip` / `uv add`) so the CLI uses the same Python as your application. Use `pipx` only if you want the `slomo` CLI globally available as a standalone tool.

## Verify the installation

Confirm that Slomo is installed and check its version:

```bash theme={null}
python -c "import slomo; print(slomo.__version__)"
```

You should see a version string printed to stdout, for example `0.1.1`. You can also confirm the CLI is on your `PATH`:

```bash theme={null}
slomo --version
```

## Optional integrations

Slomo auto-detects the following libraries at runtime. If they are present in your environment, Slomo instruments them automatically — no extra install steps, no configuration, and no additional packages to add to your dependencies.

| Library        | What Slomo captures                                                            |
| -------------- | ------------------------------------------------------------------------------ |
| **requests**   | All outbound HTTP requests and responses (sync)                                |
| **httpx**      | Outbound HTTP requests and responses (sync and async)                          |
| **SQLAlchemy** | SQL queries routed through the SQLAlchemy engine (Postgres, MySQL, and others) |

<Tip>
  sqlite3 is always instrumented — it's part of the Python standard library and requires no extra packages.
</Tip>

If none of these libraries are installed, Slomo records everything else (function calls, exceptions, log records, session metadata) without any warnings or errors.

## Scaffold a configuration file with `slomo init`

Running `slomo init` in your project directory creates a `.slomo/config.toml` file pre-populated with every available option and inline documentation comments:

```bash theme={null}
slomo init
```

This step is entirely optional. Slomo works out of the box without any configuration. Use `slomo init` when you want to customize recording behavior — for example, to exclude specific modules, change the storage path, or adjust log-level thresholds — before your first run.

## The `.slomo/` directory

The first time you call `slomo.enable()` in your application, Slomo automatically creates a `.slomo/` directory in your current working directory. All session recordings are stored there as append-only JSONL files.

```
.slomo/
├── config.toml              # present only if you ran `slomo init`
├── sessions/
│   └── <timestamp>-<id>/
│       ├── metadata.json
│       ├── timeline.jsonl
│       ├── snapshots/       # oversized variable captures
│       └── attachments/
├── issues/
│   └── index.sqlite         # derived index, rebuildable
├── exports/
└── cache/
```

<Note>
  Slomo auto-manages a `.gitignore` inside `.slomo/` so recordings are excluded from version control by default. The `config.toml` file is safe to commit.
</Note>

## Next steps

* **[Quickstart](/quickstart)** — add Slomo to an app and explore your first crash recording
* **[Core Concepts](/concepts/how-it-works)** — learn how `sys.monitoring` instrumentation works
* **[CLI Reference](/reference/cli/overview)** — full documentation for `slomo issues`, `slomo doctor`, `slomo replay`, and more
