# Environment variables

> Everything the CLI reads from .env.

The CLI reads `.env` from the folder you run it in. Every variable is optional until you need the feature behind it. Never commit `.env`.

## Mail

These four variables turn on per-prospect mailboxes.

| Variable | Value |
|---|---|

| `LEAKDOWN_IMAP_HOST` | Your IMAP server, e.g. imap.gmail.com |
| `LEAKDOWN_IMAP_USER` | The inbox login |
| `LEAKDOWN_IMAP_PASS` | An app password |
| `LEAKDOWN_MAIL_DOMAIN` | A domain whose catch-all forwards to that inbox |
| `LEAKDOWN_IMAP_PORT` | Optional. The port, for a host that is not on 993 |
| `LEAKDOWN_IMAP_TLS` | Optional. TLS is on unless this is exactly "false" |

## An external judge

Three questions have a yes or no answer rather than prose: was the goal reached, which flow checkpoints were reached, and does the page show an `--expect` value in other words. Your AI CLI answers them by default.

| Variable | Value |
|---|---|

| `LEAKDOWN_JUDGE` | Optional. A module path that exports createJudge(); it answers those three instead |
Its usage is recorded apart from the brain's, as `usageJudge` in `meta.json`. A judge that is missing, broken or slow never ends a session: each ruling it cannot make falls back to the same inconclusive path a failed model call takes.

## Website orders

These two variables let the CLI pick up requests from the website.

| Variable | Value |
|---|---|

| `LEAKDOWN_ORDERS_URL` | The request site's production URL |
| `LEAKDOWN_ORDERS_TOKEN` | The site's ORDERS_TOKEN |

```
LEAKDOWN_IMAP_HOST=
LEAKDOWN_IMAP_USER=
LEAKDOWN_IMAP_PASS=
LEAKDOWN_MAIL_DOMAIN=
LEAKDOWN_IMAP_PORT=
LEAKDOWN_IMAP_TLS=
LEAKDOWN_ORDERS_URL=
LEAKDOWN_ORDERS_TOKEN=
LEAKDOWN_JUDGE=
```

## Passed to your AI CLI

`ANTHROPIC_API_KEY`, `OPENAI_API_KEY` and their `*_BASE_URL` reach the AI CLIs if you set them. That path is untested.

Older names

`CLIENTSIM_*` still works with a deprecation warning. Rename to `LEAKDOWN_*`.

---
Source: https://docs.leakdown.dev/environment
