# VPS and n8n Relmio can add private n8n companions beside an existing VPS installation, update them, and turn on optional image generation. The ChatGPT sidecar uses a separately authorized SIWC registration; SuperGrok and Claude use their own sessions and do not require or read ChatGPT credentials. The VPS model setup is tested on Hostinger KVM VPS. Other Linux VPS hosts, including Hetzner, are experimental. Use the actual SSH username for your image and an approved local SSH agent or password; provider defaults are guidance, not credentials to try automatically. | Connection | Private Base URL | n8n API-key field | Use Responses API | | --- | --- | --- | --- | | ChatGPT plan use | `http://n8n-openai-oauth:10531/v1` | One-time local Relmio bearer | **On** for OpenAI Chat Model node 1.3 | | SuperGrok OAuth | `http://n8n-supergrok:14502/v1` | One-time local Relmio bearer | **Off** for workflow model nodes and Chat Hub | | Claude (experimental) | `http://relmio-claude:14502/v1` | One-time local Relmio bearer | **Off**; text only | | Local Ollama model | `http://n8n-local-model:11434/v1` | `local-only` ignored placeholder | **Off** for the documented Chat Completions recipe | The local plan route is not an OpenAI Platform API key. ChatGPT identity, plan-use permission, model availability, and successful requests are distinct. See the [2026-11-11 source check](openai-source-check-2026-11-11.md) for the current comparison. The [2026-10-04 source check](openai-source-check-2026-10-04.md) is historical. Relmio's managed files stay below `/docker/n8n-openai-oauth`. The root-owned, non-symlink `/docker` parent must already exist, and Relmio does not create it. On your own server, create that parent with: ```sh sudo install -d -o root -g root -m 0755 /docker ``` That command prepares only the parent directory. It does not authorize an install, and `sudo` does not unlock the root-only ChatGPT, Assistant, SuperGrok or Claude routes. If `/docker` is already there, inspect it first. Do not replace a symlink. A new `/docker/n8n-openai-oauth` folder is created as mode `0700` root:root. An existing folder from an earlier release is set to mode `0700` the next time you confirm a change on that server, such as an install, update, removal, sign-in or sign-out. Checking status, reviewing a plan, sign-in polling and cancelling an image sign-in never change it. That change does not reset the folder's existing group. Updating the npm package does not change an older install either. The nested `siwc` store stays mode `0700`, owned by UID/GID `1000:1000`, and remains mounted at `/home/node/.relmio-siwc`. Tokens are not moved or given to root. Before that change, a host account with that same UID could read the session through a mode-`0755` parent. After the parent is `0700`, that account cannot traverse it. Root, a Docker administrator and a backup of the folder can still read the files. This is file permission, not encryption. Docker manages the companion's approved images, containers and volumes in its own data root. Relmio does not edit, rebuild, recreate, execute inside, stop, or restart your n8n Compose project or image. No companion publishes a host port. Build-capable actions use temporary mode-`0700` Buildx state inside the reviewed operation lock. Verified cleanup removes owned temporary state only; ambiguous or interrupted cleanup retains the lock for administrator inspection. Registry credentials are not copied, moved or printed for this state. The local-model companion is not a provider sign-in or an OpenAI API-key connection. Ollama's API has no authentication by default, so any container on the selected Docker network can reach its model-management API. Choose a trusted network. It runs one CPU-based model and needs outbound internet to download the runtime and model weights even though Ollama cloud features are disabled. See [Private local models](local-models.md) and [Hosting compatibility](hosting-compatibility.md). ## Use the wizard The browser wizard has five steps: **Choose setup**, **Check server**, **Choose n8n**, **Review**, and **Ready**. The route chooser appears before ChatGPT sign-in. It is available from stable `@latest` and hosted installers. 1. Choose the ChatGPT route and complete SIWC sign-in on this computer before choosing the server. An identity-only registration stays connected but cannot use models until you separately allow plan use in ChatGPT. SuperGrok uses its own device sign-in; Claude signs in in your own terminal and needs no ChatGPT sign-in; **Local model · your VPS** needs no provider sign-in. 2. Enter the server address and port, then independently compare and confirm the SSH host fingerprint. Only after that, enter the actual SSH username and choose **Local SSH agent** or approved password authentication. Never upload a private key or enable root/password SSH just for this wizard. 3. Connect and check the verified administrative identity. The ChatGPT sidecar, SuperGrok, Claude and Assistant VPS operations require the approved direct-root connection; agent authentication does not change that privilege boundary. **Passwordless sudo -n (model only)** is limited to local-model management and common read-only discovery. 4. Select a running official n8n container and one eligible existing Docker network. Rootful Docker Engine and Compose v2 must use the same local daemon in the selected administrative context. Buildx is expected; without it the review warns and does not refuse. If SSH connected but this read-only check fails, fix the problem on the server and choose **Retry discovery**. The wizard keeps the verified connection and does not ask for the password again. Changing the server details requires a fresh identity check. Relmio then checks the installed sidecar on that n8n. The check does not change the sidecar, but a running sidecar may renew its ChatGPT sign-in and ask OpenAI for the account's model list. The main button then says what comes next: **Review the exact plan** for a new install, **Review sidecar update** when Relmio's sidecar already runs there, **Refresh ChatGPT sign-in** when that sidecar's sign-in needs a fresh sign-in, **Finish sidecar update** after an interrupted update, **Open recovery** for an interrupted install or migration, and **Review replacement** after the installed sign-in was signed out. A second install on the same n8n is refused, so these buttons open the matching controls instead. 5. Review the selected registration, verified SSH identity, target, and exact write plan. Confirm the SSH fingerprint before authentication and separately confirm the final remote write. Explicitly approve background n8n use. After installation, enter the one-time Relmio bearer manually in n8n. Select **Disconnect from VPS** when finished. The first time you open the wizard, it asks whether to start the setup guide. The guide points at each box and button in turn and explains errors with the next step. See [Use the setup guide](getting-started.md#use-the-setup-guide). **Help** remains available when the walkthrough is off. If **Check the server** is disabled, read the account status and choose **Help with Check the server**. The mascot points to the actual prerequisite: **Allow ChatGPT plan use** only for missing plan permission, **Use ChatGPT plan** for a paused plan, **Review plan notice** for an unread notice, or the relevant installed-account recovery for a transferred or unresolved registration. A pending sign-in is not a verified account. **Show me** highlights the control without approving it. The plan review shows short IDs for the selected n8n container and network. Relmio checks those exact IDs again before its first write and before the credential transfer. If either changed, the install stops and asks for a new review. An interrupted install stays bound to the full reviewed target. After the install completes, status and sign-out need only the same SSH host identity and Docker network ID, so they keep working if n8n is recreated or you change the SSH login method. A changed network is still refused. ### What the server check reports After you connect, the page shows a host report built from the connection probe and cached discovery. It does not open a second connection or call OpenAI. The connection keeps bounded host facts: operating system, kernel, architecture, Docker Engine, Compose and Buildx versions, memory, CPU count, and short Docker security-option names. Unknown facts stay empty. The report starts closed, with one summary line that counts warnings and names a failed check, if any. Opening it shows the facts line and only warnings and problems, not a row for every pass. These facts do not prove a later build, network connectivity, model access, or provider approval. After authentication, Relmio removes the password property from its SSH config objects. That is not secure erasure of the password from memory. Missing Buildx is a warning. Compose can still build. If a build fails, install Docker's Buildx plugin and try the reviewed action again. Docker Engine older than 28, Compose older than 2.38, less than 2 GiB of memory, or fewer than two CPUs are warnings, not refusals. An arm64 CPU warns on every flow: Relmio is untested on arm64 servers. A known CPU other than `x86_64` or `aarch64` refuses a new SuperGrok, Claude or self-hosted model install. The ChatGPT bridge and the Assistant get a warning on that CPU and are not refused by it. Unknown CPU facts do not refuse the install. Claude's Replace companion and key action runs the architecture check again; other management actions on an installed companion do not. A refusal carries a code, and **Help** states what to do. The [symptom table](troubleshooting.md#symptom-table) lists each code. In short: - `ssh_root_login_disabled`, `ssh_not_root` and `ssh_auth_refused`: use a direct root login for ChatGPT, Assistant, SuperGrok and Claude. Only the self-hosted model accepts passwordless `sudo -n`. Relmio does not ask you to enable root login or edit sudoers. - `vps_prereq_docker_dir`: create `/docker` yourself with the command above, then check again. - `vps_prereq_linux`, `vps_prereq_uid`, `vps_prereq_tools`, `vps_prereq_probe`, `vps_prereq_docker_cli`, `vps_prereq_docker_context`, `vps_prereq_docker_engine`, `vps_prereq_compose` and `vps_prereq_rootless`: fix the named Linux, Docker or Compose prerequisite on the server. Relmio does not switch the Docker context, start a rootless engine or repair the host. - `vps_prereq_builder_config` and `vps_prereq_default_builder`: have an administrator review the saved builder settings. Do not run `docker buildx inspect`. Relmio does not switch builders. - `vps_operation_lock`: wait if another action is running. Otherwise leave the lock folder and follow [operation-lock recovery](maintenance.md#vps-build-state-and-operation-lock-recovery). - `vps_network_unsupported`: choose another network already attached to n8n, or have n8n's administrator prepare a user-defined network. Relmio does not change n8n. - `vps_step_compose_config`, `vps_step_build`, `vps_step_start` and `vps_step_image_check`: the helper's Compose check, image build, start or image inspection failed. Read the next action on the page. n8n was not changed. - `vps_host_unsupported_cpu`: use an `x86_64` or `aarch64` server for that setup. Nothing was written. **Hosting options** shows root-sign-in guidance beside Managed for the root-only components. Choosing a provider does not change the sign-in name, authentication or privilege you already entered. See [SSH agent and administrative access](hosting-compatibility.md#ssh-agent-and-administrative-access). The catalog marks Hostinger KVM VPS and Local Docker as tested; every other VM provider stays Experimental. Installed SuperGrok status, sign-in, sign-out and removal require the same Docker network and n8n container name. They keep working if n8n is recreated under that name on that network. A different n8n on that network is refused. A different or recreated network is refused, and the message names the network SuperGrok was installed on. A fresh install plan is still bound to the n8n container you reviewed. If the selected n8n already runs n8n's own `sandbox-api` service, the Assistant plan warns that installation adds a second privileged runner. It does not refuse the install. The destination runtime has a distinct persistent host ID. Relmio freezes the source registration before transferring it and clears sender tokens only after the destination returns an attested receipt. Unknown transfer outcomes stay frozen for inspection; the destination is the only refresh owner after a confirmed handoff. The published SIWC VM guide and Terms do not resolve persistent remote token storage, so these implementation safeguards are not a provider approval claim. ### Recover an interrupted install - **Install stopped partway:** status shows the install as staged. Select the account, choose the resume action, review the plan, and confirm it. Relmio continues the same installation without deleting data or starting a second refresh writer. Turning plan use on or off, or a token refresh, before you resume does not block it. If the session had already moved, the one-time key is replaced. - **Destination accepted the session but the acknowledgment was lost:** choose the reconcile action and confirm it within five minutes of the review. Relmio reads the destination's receipt and finishes the handoff. Without a receipt, the sender stays frozen and needs a fresh sign-in; old tokens are never restored. - **Switching to a fresh account after "not accepted":** allowed only after a confirmed not-accepted result. Relmio refuses while a one-off sidecar helper container is still present or if the original receipt appears. - **Ownership moved but a finishing step failed:** the result still shows the one-time key once. Save it, but do not use it until the reported issue is resolved. Relmio never restarts an old writer automatically. See [Hosting compatibility](hosting-compatibility.md) for image-qualified accounts on Hetzner, Contabo, AWS, DigitalOcean and OCI, local-agent setup, the existing `/docker` prerequisite, and Render's separate manual private service. A provider choice does not provision or repair the host. Relmio also closes the authenticated SSH session after 15 minutes of inactivity. An active VPS operation holds a bounded lease so discovery or an approved install can finish before the idle timer resumes. Every remote command has a finite deadline: 45 minutes by default, 30 minutes for an image build, 2 minutes for the destination's handoff acceptance, and 5 minutes for publishing a managed file. When a deadline passes, Relmio closes that command and reports an unknown remote outcome. It does not retry automatically; inspect the target before trying again. Managed files are published atomically under `/docker/n8n-openai-oauth` through an exclusive temporary file and a rename. Relmio rejects symlinked, non-root-owned or group/other-writable parent directories and symlinked or hard-linked targets. ## Install or manage the ChatGPT sidecar The first install signs in locally, selects an authorized registration, and reviews a fresh n8n target and network. Enter the one-time local Relmio bearer shown after installation manually as n8n's credential: ```text Base URL: http://n8n-openai-oauth:10531/v1 API key: Use Responses API: On ``` The sidecar uses the selected registration to discover public models and send supported Responses requests. It rejects unsupported routes and parameters; model discovery does not guarantee account entitlement or host admission. Legacy credential-copy installations are never adopted automatically. The reviewed VPS migration attests the exact old sidecar, image, network, and protected credential ownership, archives the old managed Docker files under `/docker/n8n-openai-oauth/legacy`, and writes a pending-migration marker before stopping only that sidecar. The old `/docker/n8n-openai-oauth/auth/auth.json` and credential volume stay offline; their token bytes are not copied into the SIWC runtime. The new SIWC record lives in `/docker/n8n-openai-oauth/siwc`, mounted inside the container at `/home/node/.relmio-siwc`. It receives its own host identity and becomes the only refresh owner after a matching transfer receipt. n8n is unchanged. If stop or transfer is uncertain, the pending marker and old data are retained, the old sidecar is not resumed automatically, and the transfer must be inspected rather than retried blindly. For an installed VPS account, Relmio verifies the managed Compose configuration and target identity, stops the exact owned sidecar, confirms it is stopped, then performs the selected sign-out or plan-disable operation. If it cannot attest that state, it does not mutate the registration. No port is published and n8n remains unchanged. ChatGPT plan use through a VM is not described here as provider-approved: OpenAI's self-hosted VM guide and SIWC Terms leave persistent remote token storage unresolved. ### Update the installed sidecar Installing a newer Relmio package does not change a sidecar that is already running. To rebuild an installed VPS sidecar from your current Relmio version, connect to the server and select its n8n container and network. The main button then reads **Review sidecar update**. It opens **Manage the installed ChatGPT session**, checks the installed account again if the last check is more than four minutes old, and runs the review in step 2. To do the same by hand: 1. Open **Manage the installed ChatGPT session** and choose **Check installed account**. The panel says whether a newer sidecar runtime is available. 2. Choose **Review sidecar update**. The review shows how many runtime files change and the short image and container IDs. If nothing needs rebuilding, it says `Already current. Nothing to update.` 3. Select **I approve rebuilding and restarting only this owned sidecar**, which also names your SSH user, host and port. Then choose **Update the sidecar**. The account check and the review each expire after five minutes; check and review again if they do. Relmio uploads this version's runtime files, builds a new image and replaces only the sidecar container. The old container keeps serving while the image builds, so the sidecar is unavailable only while it restarts. Relmio does not rewrite the Compose file, so the one-time Relmio key stays the same. The ChatGPT session stays in `/docker/n8n-openai-oauth/siwc` and is not transferred again. n8n is not stopped or restarted, and no host port is published. Relmio disconnects from the VPS when the update ends. The sidecar must be running with plan use on. Pausing plan use stops the sidecar, and Relmio refuses to update a stopped sidecar. If the image build fails and Relmio can confirm the old sidecar is still the one running, it keeps that sidecar and marks the install as complete again, so status, pause and sign-out keep working. Review the update again later. If the update stops partway for another reason, status reports `updating` and the panel says the update did not finish. The main button reads **Finish sidecar update**; it runs the same review. You can also choose **Check installed account**, then **Review sidecar update**, and confirm to finish it. Relmio rebuilds the image on every attempt. The staged-install resume and new install plans for this server are refused until the update finishes. If the new sidecar fails its checks, Relmio stops it and the update stays open for another review. If Relmio cannot confirm that the sidecar stopped, do not use it until you inspect it. ### Refresh the ChatGPT sign-in The installed sidecar renews its own ChatGPT sign-in. If OpenAI stops accepting it, or Relmio cannot confirm that a renewal worked, **Check installed account** shows `Needs a fresh sign-in.`, and model checks may pause with `Checks paused: ChatGPT sign-in is needed.` Relmio does not yet renew the registration that the server's sidecar owns. OpenAI's guides renew a sign-in by repeating it with the registration's saved client ID. Relmio instead makes a new registration for the same ChatGPT account and gives it to the sidecar through the reviewed replacement: 1. Open **Manage the installed ChatGPT session**, choose **Check installed account**, then **Refresh ChatGPT sign-in**. The button appears only when the panel says `Needs a fresh sign-in.`, and the main button on **Choose your n8n** then reads **Refresh ChatGPT sign-in** too. Sign in with the same ChatGPT account, and choose the same workspace, on the ChatGPT sign-in page Relmio opens. ChatGPT treats this as a new connection: it asks you to approve it again, and usage settings for the old connection, such as a weekly app limit, do not carry over. You can change the app name ChatGPT shows so you can tell the two apart. 2. If the new sign-in has a different email from the installed account, Relmio stops the refresh. To move the sidecar to another account on purpose, sign it out and use **Review replacement**. Relmio cannot tell two workspaces that share one email apart. Otherwise, allow ChatGPT plan use and read the plan notice if Relmio asks, then choose **Check the server**. Relmio reuses the verified SSH connection while it is open. 3. On **Choose your n8n**, the main button reads **Continue sign-in refresh** and opens the installed account's controls. Select the approval box and choose **Sign out and revoke**. Relmio stops only the sidecar, signs out the old sign-in and disconnects. 4. Reconnect to the same server and choose **Review replacement** within four minutes of the sign-out. After that, Relmio first asks for a one-off inspection of the stopped sidecar. Keep the account from the new sign-in selected: during a refresh, Relmio refuses to review the replacement with any other account saved on this computer. 5. Review the plan, select the replacement approval and the other approvals, and choose **Replace the sidecar**. 6. Copy the new one-time Relmio key into your n8n OpenAI credential, and into the Assistant's API key if you use it. The old key no longer works. 7. If you used image generation, turn it on again under [Turn on image generation](#turn-on-image-generation-optional). **Sign out and revoke** also signed out of images. The sidecar is unavailable from the sign-out until the replacement finishes. n8n is not stopped or restarted. The old registration's mapping stays offline on the server, and its tokens and history are not reused. Revoking the old sign-in does not remove its connection from ChatGPT. Once the replacement works, you can disconnect the old Relmio connection under **Settings > Security and login > Login connections** if ChatGPT lists it. Check that you pick the old one. ### Turn on image generation (optional) Image generation and editing are an opt-in add-on for an installed VPS sidecar. The local sidecar has the same add-on; see [Turn on image generation on this computer](local-endpoints.md#turn-on-image-generation-optional). Read these points before you turn it on: - It uses a separate Codex sign-in, the way Hermes Agent's "OpenAI (Codex auth)" provider does. It is not Sign in with ChatGPT. The ChatGPT plan session is never used for images, and the Codex sign-in is never used for text. - OpenAI does not document this route for other apps. It can stop working at any time without notice. OpenAI recommends an API key for automation. - Images use your plan's Codex limits 3 to 5 times faster than text, then credits. Free plans can't use it. - Device code sign-in must be on in ChatGPT security settings, or allowed by your workspace admin. - Sign in with the same ChatGPT account as the sidecar. - The Codex access and refresh tokens are stored on the VPS in files owned by the sidecar user under `/docker/n8n-openai-oauth/siwc/codex-images`. The shared parent is mode `0700` after the next confirmed change on that server, such as an install, update, removal, sign-in or sign-out, so a host account with the sidecar user's UID can no longer walk in through an older mode-`0755` parent. Root, a Docker administrator, or a copy of that folder can still read the tokens. Checking status, reviewing a plan, sign-in polling and cancelling an image sign-in never change the mode. The easiest time to turn it on is while you install the sidecar. On the **Review** step, open **Image generation (optional)**, read the notes and select **I understand. After installation, start Codex sign-in for images on …**. After the install, the Ready step shows `Image generation: Sidecar installed. Image sign-in pending.` below your one-time Relmio key. Open **Enter the Codex sign-in code**, choose **Open the Codex sign-in page** and enter the code at `https://auth.openai.com/codex/device`. Relmio keeps the SSH connection open until you finish or cancel, so keep the tab open. When you approve, the Ready step says `Codex image sign-in complete`. Leave the box unticked to install without images; the install is the same either way, and a failed image sign-in never fails the install. To turn it on later for an installed sidecar, connect to the server and select its n8n container and network, then: 1. Open **Manage the installed ChatGPT session** and choose **Check installed account**. The image controls appear when this install owns the running sidecar. If the panel says `Update the sidecar first (Review sidecar update) to add image generation.`, [update the sidecar](#update-the-installed-sidecar) and check again. 2. Select **I understand. Sign in to Codex for images on …**, which names your SSH user, host and port, then choose **Sign in for images**. 3. Choose **Open the Codex sign-in page** (`https://auth.openai.com/codex/device`), sign in, and enter the code the panel shows. The code expires after 15 minutes. Relmio checks every 5 seconds while this browser tab is visible. Hiding the tab waits, then checks once when the tab is shown again. That pause does not stop n8n requests, ChatGPT plan use, or every other wizard poll, and it does not revoke the image sign-in. Use **Cancel image sign-in** to stop. When you approve, the panel says `Images on for` your account and Relmio disconnects from the VPS. If you decline or the code expires, image generation stays off. In n8n, add an **OpenAI** node and choose **Image**, then **Generate an Image** or **Edit Image**. Use the same OpenAI credential as your chat nodes (the same Base URL and one-time Relmio key). For **Model**, pick `gpt-image-2` from the list or choose **ID** and enter it. The OpenAI Chat Model node and Chat Hub do not list it. Flare and Sunburst need your own OpenAI API key; see [the image test](n8n-configuration.md#generate-and-edit-images). Limits: - Only `gpt-image-2`, one image per request, and prompts up to 32,000 characters. - No masks and no URL responses; images come back as base64, which n8n saves as binary data. - Sizes `1024x1024`, `1024x1536`, `1536x1024` or `auto`. OpenAI treats size and quality as requests: a `1024x1024` test on 2026-10-06 came back 1254x1254. - Edits take 1 to 16 PNG, JPEG, WebP or GIF images, each up to 25 MiB, and at most 48 MiB per request. - Relmio waits up to 5 minutes for an image and does not retry a failed one. To turn it off, choose **Check installed account**, select **I approve signing out of images on this server**, then choose **Sign out of images**. Relmio deletes the Codex sign-in from the server and asks OpenAI to revoke it. If OpenAI does not confirm the revocation, the panel says so; the files are deleted anyway. Relmio then disconnects from the VPS. The image controls need a running sidecar. **Sign out and revoke** first signs out of images too, as a best effort. **Pause plan use** stops the sidecar and keeps the Codex image sign-in on the server, so sign out of images first if you want it gone. For errors, see [Troubleshooting](troubleshooting.md#symptom-table). ### See models and turn on model checks **Check installed account** also loads a Models group when this install owns the running sidecar. It lists up to 64 models from your catalog. Each row has the model's name and ID, a **Copy ID** button, and two labels: - **In n8n** or **Not in n8n**: whether the sidecar lists the model to n8n right now. - **Ready** (it answered a test or a real request), **Not working** (OpenAI rejected it within the last day) or **Not checked yet**. If copying fails, the ID is selected so you can copy it with the keyboard. The status line names the Codex version the catalog was read as. How models are found and hidden is explained in [Model discovery and checks](n8n-configuration.md#model-discovery-and-checks). If the panel says `Update the sidecar first (Review sidecar update) to show models.`, [update the sidecar](#update-the-installed-sidecar) and check again. Model checks are off by default. The panel explains them: > When on, the sidecar sends one short test request ('Reply with OK') to > models in your catalog: now for up to 12 of them, then for each new model, > and again once a day for a model that failed. A test that gets no answer is > tried again after an hour. n8n lists a model only after it answers; until any > model has answered, n8n shows the full catalog except models that recently > failed. Each test uses a small amount of your plan. To turn them on, select **I approve model checks on …**, which names your SSH user, host and port, then choose **Turn on model checks**. The sidecar tests up to 12 models one at a time, which can take a few minutes. These controls show only when the catalog could be read. To turn them off, select **I approve turning off model checks. New models then show in n8n without a test request.**, then choose **Turn off model checks**. This makes no request to OpenAI and works even when the catalog is unavailable. **Sign out and revoke** also turns model checks off, as a best effort. Turning checks on or off needs the same running sidecar that was checked, and the check expires after 20 minutes; choose **Check installed account** again if it does. For the status messages, see [Troubleshooting](troubleshooting.md#symptom-table). ### See plan and usage **Check installed account** also shows **Plan and usage** when this install owns the sidecar. It lists the account and its email, whether plan use is on, the image add-on's plan type while that add-on is signed in, and how many models OpenAI lists and how many a completed request verified. Choose **Refresh usage** to read the sidecar's request counts for the last 30 days: total requests and tokens, active days, the peak day, how requests ended, and the three busiest models, with the rest under a **more models** disclosure. Days are UTC days. A plan-usage error stays on the panel with what to do next until a later request completes; for a usage limit it offers **Manage usage**. These are requests sent through Relmio, not your plan's usage. Relmio shows no plan percent, reset time or credits; they stay on ChatGPT's Usage page, which **Manage usage** opens. Refresh usage only reads from the server. The wizard allows 10 reads in 15 minutes. The account check lasts five minutes, so choose **Check installed account** again when it expires. A sidecar built before this Relmio version counts nothing until you [update the sidecar](#update-the-installed-sidecar), and requests from before the update never appear. The Ready screen after an install points here. What the sidecar stores is in [Request counts](security.md#request-counts), and the panel's messages are in [Troubleshooting](troubleshooting.md#symptom-table). ## Claude on a VPS (experimental) Since Relmio 0.24.0, choose **Claude on my server**, or **Claude** under **Other companions** on the detected-n8n screen, to add a private Claude Code companion beside an existing n8n. It uses your own Claude Pro or Max plan. The companion is `relmio-claude` at `http://relmio-claude:14502/v1`. Relmio writes only to `/docker/n8n-openai-oauth/claude`, under the operation lock `/docker/n8n-openai-oauth/.claude-operation.lock`. It publishes no host port and does not change or restart n8n. It needs the direct-root connection described above. You sign in yourself, in your own terminal, with `ssh -t root@ sh /docker/n8n-openai-oauth/claude/login.sh`. Relmio never handles the paste code or Claude credentials. The wizard can then check sign-in, list the approved models, renew approval (it expires within 7 days), sign out, replace the companion and remove it. In n8n use a Basic LLM Chain with an OpenAI Chat Model: Use Responses API off, Max Retries 0, Timeout at least 135000 ms, Batch Size 1. It is text only. See [Set up in the browser wizard](claude-subscription.md#set-up-in-the-browser-wizard), [Security](security.md#claude-companion-custody) and [Troubleshooting](troubleshooting.md#symptom-table). ## Next guides - [Configure n8n nodes](./n8n-configuration.md) - [SuperGrok on a VPS](./vps-supergrok.md) - [Claude subscription (experimental)](./claude-subscription.md) - [AI Assistant companion](./ai-assistant.md) - [Manual installation](./manual-install.md) - [Troubleshooting](./troubleshooting.md) ## Unsupported ChatGPT plan capabilities The gateway provides model discovery and supported `/v1/responses` requests. Audio, video, Files API management, moderation, stored responses/conversations, and unsupported parameters are rejected, except output-token caps, which are dropped. The Responses `image_generation` tool stays unsupported; image routes work only through the [optional image add-on](#turn-on-image-generation-optional). The Chat Completions compatibility route accepts function tools through `additional_tools`, with limits of 32 tool calls, 128 KiB of arguments per call, and 2 MiB of streamed arguments in total. It rejects a named `tool_choice`, tool namespaces, custom tools in streamed requests, and system messages. Tool roundtrips passed live on one ChatGPT account on a local macOS setup on 2026-10-05; a VPS install was not tested live. Discovery does not establish account access. See [Configure n8n nodes](n8n-configuration.md) and the [2026-11-11 source check](openai-source-check-2026-11-11.md). The [2026-10-05 source check](openai-source-check-2026-10-05.md) is historical.