# `mix pixir.smoke.login`
[🔗](https://github.com/Ranvier-Technologies/pixir/blob/main/lib/mix/tasks/pixir.smoke.login.ex#L1)

Exercises the *real* first leg of `pixir login` (ADR 0002): it POSTs to
`auth.openai.com` and prints the device code the server returns. This verifies the
part that unit tests can't — that our `client_id`, endpoint, and request shape are
accepted by the live server.

    mix pixir.smoke.login          # start device auth, print the code, stop
    mix pixir.smoke.login --wait   # also poll + complete (needs a human to approve)

Without `--wait` it stops after obtaining the code (no human step needed), which is
the CI-friendly smoke check. With `--wait` it runs the whole flow and installs the
credential, just like `pixir login`.

For a full guided walkthrough that also runs one real Turn against the model (login
→ streamed tool-using Turn → summary), see `mix pixir.smoke.e2e`.

Exit code is non-zero on failure (e.g. network error or a rejected request shape),
so it can gate a release check.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
