# Codex quickstart

> Connect the Codex CLI to the hosted vvgen MCP server.

You need an API key from the [dashboard](https://vincevangen.com/app/keys) (`igk_live_...`, shown once).

## 1. Put the key in your environment

```bash
export VINCEVANGEN_API_KEY="igk_live_..."
```

## 2. Add the server to `~/.codex/config.toml`

```toml
[mcp_servers.vvgen]
url = "https://api.vincevangen.com/mcp"
bearer_token_env_var = "VINCEVANGEN_API_KEY"
tool_timeout_sec = 600
```

`bearer_token_env_var` names the variable; Codex sends `Authorization: Bearer <value>`. The key is never
written to the file. The longer timeout covers video and music, which run as jobs you poll with
[`vvgen_get_job`](https://vincevangen.com/docs/tools.md#vvgen_get_job).

## 3. Use it

Start `codex` and ask:

> Create a 16:9 header photo for a blog post called "Shipping faster": a sunlit workbench, the top third
> empty. Add the title as an overlay.

The agent generates the art without words, then adds the exact title with
[`text_overlay`](https://vincevangen.com/docs/tools.md#vvgen_generate_image), which is free and spelled exactly.

## Troubleshooting

| Symptom | Cause |
|---|---|
| Server not listed | Codex reads the file at startup; restart it. |
| 401 | The variable is unset in the shell that launched Codex. |
| Long jobs time out | Raise `tool_timeout_sec`, or poll the job id instead of waiting. |
