README.md
Rama main · réplica de lectura del repositorio original.
<p align="center">
<img src="docs/images/brand/relmio-banner-animated.svg" alt="Animated Relmio mascot carrying a private n8n connection through its doorway" width="1200">
</p>
<h1 align="center">Relmio</h1>
<p align="center"><strong>Bring your AI sign-ins to your tools. Keep every credential where it belongs.</strong></p>
<p align="center">
<a href="https://www.npmjs.com/package/relmio"><img alt="npm version" src="https://img.shields.io/npm/v/relmio?logo=npm&color=0f8f83"></a>
<a href="https://www.npmjs.com/package/relmio"><img alt="npm monthly downloads" src="https://img.shields.io/npm/dm/relmio?color=0f8f83"></a>
<a href="https://github.com/Demonbane18/relmio/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/Demonbane18/relmio?style=flat&logo=github&color=0f8f83"></a>
<a href="https://github.com/Demonbane18/relmio/actions/workflows/ci.yml"><img alt="CI status" src="https://img.shields.io/github/actions/workflow/status/Demonbane18/relmio/ci.yml?branch=main&label=CI"></a>
<a href="LICENSE"><img alt="Apache 2.0 license" src="https://img.shields.io/badge/license-Apache--2.0-0f8f83"></a>
</p>
Relmio provides separate local integrations for ChatGPT, Codex clients, and
SuperGrok. SuperGrok setup does not require or read ChatGPT credentials.
ChatGPT's local flow uses OpenAI's documented Sign in with ChatGPT plan-usage
protocol. Identity, separately granted plan permission, and model/request access
are checked separately. Relmio does not import a personal Codex login or turn
ChatGPT sign-in into an OpenAI Platform API key. SuperGrok uses its own session.
The website's `/api/chat` remains off and returns `410 Gone`; local setup does
not enable hosted chat. See the
[2026-11-11 source check](docs/openai-source-check-2026-11-11.md) for the
current comparison. The
[2026-10-05 source check](docs/openai-source-check-2026-10-05.md) and the
[v0.22.2 addendum](docs/openai-source-check-2026-10-07.md#addendum-v0222-release)
stay historical. The
[Claude wizard source check](docs/claude-wizard-source-check-2026-11-04.md)
covers the Claude path. Requested ChatGPT scopes and the SIWC token path are
unchanged in this wave. Shared-folder protection, SSH config password
retention, error diagnostics, help, and image-sign-in polling did change.
The persistent remote token storage and connected-application questions stay
open. This check claims no Terms compliance.
Relmio 0.25.0 is the current stable release. It clarifies errors and next
steps in the wizard and setup guide, adds a server check with experimental
provider guidance, tightens the shared server folder and local ngrok setup,
and is available through npm `latest` and the hosted installers.
The local wizard's **Test AI Chat** console keeps partial response text visible
while it streams. Status distinguishes connection setup, waiting for the first
words, active streaming, completion, interruption, and failure without
announcing every token to assistive technology. **Stop response** preserves
text already received, and reduced-motion preferences keep the same state cues
without animation. This does not change external clients such as n8n.
SuperGrok is a first-class local and VPS setup option in 0.14.0, but the adapter
remains experimental. Live Windows checks covered fresh sign-in, model discovery,
n8n Chat, Assistant node search, and a Calculator workflow. Native Windows CI also
exercises the hosted Git Bash launcher through a real hidden console and verifies
that its portable Node child receives terminal handles. VPS Chat success was
user-reported after Responses API was turned off; VPS Assistant and Calculator
remain unverified.
Existing API-key endpoints are left running and retain their data during an
upgrade; they are no longer shown in the 0.15.0 dashboard. Follow the
[legacy endpoint retirement guide](https://relmio.jpfusin.tech/docs/local-endpoints#retired-api-installations)
to review and stop an exact owned endpoint.
## Quick install
With Node.js 24 or newer on macOS, Linux, WSL, Windows PowerShell, or Command
Prompt:
```bash
npx --yes --ignore-scripts relmio@latest
```
`@latest` selects stable 0.25.0, including the setup guide. Hosted
installers use the same stable default.
On Git Bash, use the hosted launcher. It uses Git for Windows' bundled `winpty`
bridge and a checksum-verified temporary Node.js runtime, even when Node.js 24
is already installed:
```bash
curl -fsSL https://relmio.jpfusin.tech/install.sh | sh
```
If you deliberately run NPX directly from Git Bash 2.38.1, prefix that one
process with `MSYS=enable_pcon`. This does not change global Git configuration.
The command opens the **ChatGPT on my server** route in a foreground setup
wizard on `127.0.0.1` without creating persistent Relmio state. It also works
on a first-run machine with no `.relmio` directory and no local n8n stack;
missing prerequisites appear as actionable steps in the browser instead of
ending the launcher before the page opens. Review exactly what the wizard will
create, then confirm the install. Use `relmio local` only when you explicitly
want the setup route for this computer.
The first time the wizard opens, it asks whether to start the setup guide.
Relmio, the mascot, then points at each box and button in turn, says what to
enter or press, and explains errors with the next step. **Help** remains
available after you skip the walkthrough. It explains the current step, lists
topics under **This step**, **Questions** and **Words**, and **Show me**
highlights the relevant control without activating it. Hiding the guide folds
it into a chip that shows the current tip title. The **Setup guide** button in the
top bar turns the walkthrough on or off later. Relmio saves only that on or
off choice, in `ui-preferences.json` in its
ChatGPT sign-in folder (`~/.n8n-openai-oauth`, or `N8N_OPENAI_OAUTH_HOME` when
set). Read marks stay in the current tab. See [Use the setup guide](docs/getting-started.md#use-the-setup-guide).
No Node.js yet? The hosted guide has native curl, Homebrew, PowerShell, and
Command Prompt options. Homebrew installs the persistent `relmio` command and
Node.js. It does not open the wizard, so run `relmio` next. The curl,
PowerShell, and Command Prompt launchers open the foreground wizard with the
same platform security checks. Registry installs with npm 10 or 11 honour
the packaged `npm-shrinkwrap.json`; npm 12 and later ignore it.
Installing the tarball file directly does not honour it either, and the
Homebrew formula installs from that file, so Homebrew is not pinned by the
shrinkwrap. Setup, example and diagram screenshots stay in the repository and
are not in the npm package.
[Open the hosted install guide](https://relmio.jpfusin.tech/install)
## Keep the local dashboard available
For a persistent command, install Relmio with Node.js 24 or newer, then manage
its owner-scoped loopback dashboard explicitly:
```bash
npm install --global --ignore-scripts relmio@latest
relmio start
relmio status
relmio open
relmio stop
```
Without a global install, repeat the full NPX command for each lifecycle
action:
```bash
npx --yes --ignore-scripts relmio@latest start
npx --yes --ignore-scripts relmio@latest status
npx --yes --ignore-scripts relmio@latest open
npx --yes --ignore-scripts relmio@latest stop
```
`relmio start` runs the dashboard in the background without opening a browser.
`relmio open` starts it when needed and opens its private local page.
`relmio status` checks only the verified dashboard process without printing a
session value. `relmio stop` stops only that process; it does not stop or
restart n8n, ngrok, model endpoints, bridges, Assistant companions, or
unrelated containers.
The hosted curl, PowerShell, and Command Prompt launchers can use a verified
temporary Node.js runtime. In that mode Relmio remains a foreground, one-shot
process for that terminal and leaves no persistent command behind.
## Install and update
### Existing ChatGPT and sidecar installations
Installing a newer Relmio package updates the wizard, not an already-running
sidecar. Use the current ownership-attested action for the exact target and
review its plan; see the [maintenance guide](docs/maintenance.md). For an
installed VPS ChatGPT sidecar, that action is **Review sidecar update** under
**Manage the installed ChatGPT session**. It rebuilds only the sidecar and
keeps the ChatGPT sign-in and the one-time key; see
[Update the installed sidecar](docs/vps-and-n8n.md#update-the-installed-sidecar).
Relmio leaves retired API-key gateways and their credential volumes untouched.
Older credential-copy ChatGPT bridges are not silently adopted. In a reviewed
local migration, sign in with a fresh SIWC registration and give the separate
migration consent. Relmio stops only the attested old service after final
confirmation and keeps its credential/workspace volumes offline; it does not
copy the old `auth.json` into the new runtime. If migration state is uncertain,
the old service is not resumed automatically; inspect the retained resources.
The documented local flow needs no commercial approval, partner client, or secret.
The user still separately grants ChatGPT plan use and confirms the first-use
notice. That checkbox does not authorize another person's activity or an
unrelated tool to spend the plan. SIWC Terms §3.1, effective November 4, 2026,
limits plan use to the authenticated user's activity or expressly authorized
automation, on a runtime only that user controls, inside the connected
application. Service Terms updated November 10, 2026 incorporate the SIWC
Terms. Whether an OpenAI-compatible n8n endpoint fits that rule is open.
Relmio was absent from the partner directory returned on 2026-11-11. SIWC
Terms §1 says persistent authentication tokens must be local and
user-controlled, not in a remote or managed environment. The self-hosted VM
guide describes a protected transfer. Those texts do not resolve persistent
VPS storage, and this implementation makes no provider-approval claim.
OpenAI's Usage Policies page fetched on 2026-11-11 is effective November 20,
2026, announced October 21, 2026. Its intermediary approval requirement is
not yet in force on the check date. It is not a finding that every local
open-source SIWC use is banned, and this check establishes no approval under it.
See [VPS and n8n](docs/vps-and-n8n.md) and the
[2026-11-11 source check](docs/openai-source-check-2026-11-11.md).
Relmio also refuses to adopt an earlier SuperGrok development install that
lacks its fresh-session marker. Review that installation separately before
removal or migration.
**Refresh status** shows nine dashboard services: Codex App Server, Codex Chat
Adapter, Grok Build, the owned n8n stack, the ChatGPT plan sidecar, AI Assistant
tools, SuperGrok for n8n, Claude for n8n, and the local model for n8n. It shows only verified
connection URLs and state, never stored secrets. Select **Add connection** to
use the existing setup flow. Bare `relmio` and `relmio vps` open VPS setup; use
`relmio local` for this computer's setup route.
Choose **Set up SuperGrok for n8n** in the VPS wizard to add
the same private Grok OAuth companion to an existing remote n8n. Review the exact
plan before installation, then complete official device sign-in in your browser.
See [SuperGrok on a VPS](docs/vps-supergrok.md) for Chat Completions settings and
ownership-safe management. No existing n8n restart or provider change is required.
[Learn how to use the local dashboard](docs/local-dashboard.md)
## Claude subscription (experimental)
The experimental Claude adapter runs a fresh, unmodified official Claude Code
process for each text request. It needs pinned Claude Code `2.1.317` and your
own reviewed subscription login. Since 0.24.0 the browser wizard can set up its
private Docker companion beside an existing n8n: choose **Claude on my server**
in the VPS wizard (`relmio vps`) or **Claude for n8n** in the local wizard
(`relmio local`). The VPS route and **Hosting options** are not limited to
macOS and Linux. The VPS Claude page is untested on Windows. The companion on
this computer needs macOS or Linux and is unavailable on native Windows. The
wizard shows one sign-in command, and you run it yourself
in your own terminal: `ssh -t root@<host> sh /docker/n8n-openai-oauth/claude/login.sh`
for a VPS, `relmio claude companion login` for this computer. Relmio never
handles the paste code or your Claude credentials. Native n8n and the advanced
Docker path use the `relmio claude` commands (Node.js 24+, macOS or Linux;
`relmio claude --help`). Follow the
[wizard guide](docs/claude-subscription.md#set-up-in-the-browser-wizard) or the
[technical guide](docs/claude-native-prompt.md).
> [!WARNING]
> Experimental; not affiliated with or endorsed by Anthropic. Install and log
> in to the official Claude Code CLI yourself. Relmio never opens, copies,
> refreshes or transmits Claude credentials. Use only your own account for
> personal, owner-only work. Do not offer access to others or run a shared or
> hosted subscription service. Anthropic's terms and usage policies apply;
> Anthropic may change or block this use at any time.
>
> Anthropic's SDK quickstart says third-party developers may not offer
> Claude.ai login or plan rate limits for their products unless approved.
> Relmio provides no Claude login: you log in through the official CLI in
> your own terminal. The wizard does offer a Claude setup path, and that
> relates to the restriction even though sign-in stays in the official CLI.
> Relmio has no Anthropic approval for this gateway or wizard. That permission
> question remains unresolved; this experimental, owner-run use may stop
> working or be disallowed. See the
> [source check](docs/claude-wizard-source-check-2026-11-04.md).
>
> Turn extra usage off in your Claude account. Relmio refuses Fable, but
> extra-usage billing remains an account setting, not an adapter-enforced cap.
- Plan limits are shared with other Claude surfaces. Third-party
[Hermes measurements](https://hermes-agent.nousresearch.com/docs/plugins/claude-subscription-directsdk#subscription-usage)
suggest `claude -p` may drain the five-hour window faster than interactive
Claude Code; this is not an Anthropic guarantee. Relmio does not override
caller identity. Recorded small calls used roughly 1.7 to 2.5K prompt
tokens including Claude Code's system prompt and other native context;
this is observed overhead, not a fixed per-call size.
- Text only: no tools or AI Agent tool loop, n8n AI Assistant, Responses API
or images. Sampling parameters, output-token caps and stop settings are
ignored. One request runs at a time; no queue or remaining-allowance report.
- Qualification needs renewed owner confirmation: one hour by default for
local setup, at most seven days. Newer Claude Code versions need
requalification. Unused, undocumented native stream records are ignored;
tool/command signals still fail closed. Native files resolved through
`HOME` use your real home, even with dedicated Claude configuration.
Native files, administrator access, backups and provider retention remain
separate risks despite dedicated config and disabled session persistence.
- The wizard's approval lasts 7 days minus 1 hour; renew it in the wizard. The
Claude login lives in the companion's Docker volume, which root, Docker
administrators and backups can read; Relmio never reads it. **Check sign-in**
runs Claude Code's `auth status --json`; its raw output reaches Relmio's local
server (over SSH for a VPS), which forwards only `loggedIn`, `authMethod` and
`subscriptionType` to the browser and does not store or log the rest.
- Recorded checks cover native macOS with n8n 2.46.4, a Hostinger Docker
companion with n8n 2.44.6 and a local Colima (arm64) Docker companion with
n8n 2.46.4. On 2026-11-05, the owner-run local **Claude for n8n** wizard
passed end to end on Colima 0.10.3 arm64 / Docker 29.5.2, including refusal
without writes for an unowned image, install, sign-in, model check, one Haiku
Basic LLM Chain prompt, removal without stopping n8n, and reinstall. Hostinger
VPS wizard SSH, n8n and network discovery passed; VPS install, replace, renew,
sign-out and removal were not run live. Other VPS providers and Docker Desktop
remain experimental; results do not establish acceptance on your host.
- In n8n, use a Basic LLM Chain with **Use Responses API off**, **Max Retries
0**, **Timeout at least 135000 ms**, and **Batch Size 1**. Keep workflow
retries off and tools/fallback routes disconnected. For full AI Agent tool
workflows, use n8n's Anthropic API-key integration instead; eligible Max
monthly API credit is a separate billing route.
Read the [wizard source check](docs/claude-wizard-source-check-2026-11-04.md)
and [dated verification record](docs/claude-native-prompt.md#verification-record)
before setup.
## Pick a path
### I already run n8n
Choose the provider connection or local model that fits the workflow. The
Responses API switch is specific to each integration:
| Connection | Base URL | Value for n8n's API-key field | Use Responses API |
| --- | --- | --- | --- |
| OpenAI plan use | `http://n8n-openai-oauth:10531/v1` | One-time local Relmio bearer | **On** in OpenAI Chat Model node version 1.3 |
| SuperGrok OAuth | `http://n8n-supergrok:14502/v1` | One-time local Relmio bearer | **Off** for workflow model nodes and Chat Hub |
| Local Ollama model for n8n | `http://n8n-local-model:11434/v1` | `local-only` ignored placeholder | **Off** for the Chat Completions recipe |
Choose **ChatGPT for n8n**. Other local tools are available under **More connections and tools**.
### Review hosting and integration plans
Open **Hosting options** from the authenticated wizard to compare managed
local/VM setup with operator-applied private deployment artifacts. The catalog
includes 15 Linux VM presets plus local Docker, manual model/search artifacts
for supported platforms, Daytona configuration handoffs for 15 self-hosted
n8n platforms, authenticated endpoint handoffs, and restricted edge relays.
Generate displays validated settings, requirements, steps and source links;
download the complete ZIP to preserve nested paths, or individual files.
Plan generation does not connect to provider accounts, inspect remote hosts,
provision resources, apply files, or edit/restart your existing n8n. Do not put
secrets in planner inputs; artifact secrets are supplied separately through
the provider's secret facility. All newly researched provider runtime
acceptance is **NOT-RUN**. Manual recipes are not the existing managed SSH
installer. See [Hosting compatibility](docs/hosting-compatibility.md) for
platform constraints and the
[AI Assistant guide](docs/ai-assistant.md#operator-managed-daytona-handoff)
for the external sandbox handoff.
The planner's external endpoint profiles for n8n Cloud, Vercel, Netlify and
Cloudflare Workers are authenticated HTTP integrations, not a general URL
proxy or native n8n adapter. Cloudflare Container SearXNG uses an authenticated
Worker route and an n8n HTTP Request tool; native Assistant header-auth setup
is not interchangeable. Vercel/Railway/Cloudflare Sandbox SDKs also remain
separate from native n8n sandbox providers.
For ChatGPT plan use, sign in through the local wizard, select the registration,
and separately authorize plan permission in ChatGPT. Identity-only sign-in
remains connected but cannot use models. Registrations with the same email stay
separate. Relmio never imports an old Codex credential.
After a new registration's first verified plan grant, Relmio enables eligible
text plan use and shows **You're using your ChatGPT plan**. Choose **Got it**
before model access. Existing paused accounts stay paused on reconnect; use
**Pause plan use** or **Resume plan use** to change that setting. Sign-in opens
in the same browser when a new tab is allowed, with the system browser as a
fallback. n8n background workflows still need their separate approval.
Open **Manage usage** for usage limits and credits. A listed model or connected
account does not prove admission or entitlement. Relmio uses the selected
registration and does not switch accounts or fall back to Platform API billing.
Audio, video, file-management routes, stored conversations, and unsupported
Responses parameters are not available through this gateway. Image generation
needs the optional add-on described below.
For the provider-free local model, choose **Local model for n8n** and follow
the reviewed resource/download flow. The API is unauthenticated, so trust every
container on the selected Docker network. See [Private local models](docs/local-models.md)
for capacity, the exact local/VPS setup, n8n settings, and explicit cache
removal.
The VPS wizard asks you to sign in locally before selecting the server and n8n
target. It confirms the SSH host fingerprint before authentication. Before
final write confirmation it shows the verified server identity, the exact
deployment plan, and short IDs for the reviewed n8n container and network.
Relmio checks those exact IDs again before it writes and before it transfers
the session; a changed ID stops the install and asks for a new review. After
the install completes, status and sign-out need only the same SSH host and
Docker network, so they keep working if n8n is recreated or you change the
SSH login method. The destination gets its own persistent host ID and becomes
the only refresh owner for the selected registration. A transfer that cannot
be confirmed stays frozen for inspection. Relmio does not resume both copies,
restore the sender's old tokens, or restart an old writer automatically.
If SSH connects but the read-only Docker or n8n check fails, the wizard keeps
the verified connection and offers **Retry discovery** without asking for the
password again. Changing the server details requires a fresh identity check.
If a local or VPS install stops partway, status shows it as staged. Select the
account, then review and confirm the resume in the wizard. It continues the
same installation without deleting data or starting a second refresh writer;
if the session had already moved, the one-time key is replaced. Turning plan
use on or off, or a token refresh, before you resume does not block it. If the
destination accepted the session but the acknowledgment was lost, review and
confirm a reconcile. 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. A different account can take over only after a
confirmed "not accepted" result. Relmio refuses if the original receipt
appears, and on a VPS also while a one-off helper container is still present.
If ownership moved but a later finishing step failed, the result still shows
the one-time key once, with a warning not to use it until the reported issue
is resolved.
The local or VPS sidecar joins the selected private Docker network and publishes no host port. OpenAI tokens stay in the sidecar. For local n8n created by Relmio, installation tries to save the Relmio bearer and private base URL as **Relmio ChatGPT plan** in n8n. Select that credential in your OpenAI nodes. For other n8n installations, or if automatic setup cannot be confirmed, check n8n and enter these settings manually:
```text
Base URL: http://n8n-openai-oauth:10531/v1
API key: <one-time Relmio bearer shown by the wizard>
Use Responses API: On
```
The sidecar lists the selected account's text models. OpenAI filters its
catalog by an undocumented `client_version` parameter, so the sidecar asks as
the newest stable Codex release on npm, never below Relmio's pin (0.160.0). It
checks npm about every 12 hours, when n8n next asks for models. That
request sends no credentials; `registry.npmjs.org` sees the sidecar host's IP
address. The catalog is cached for 5 minutes. Local Codex clients and the
wizard's pre-install account picker still use the pin.
On a VPS, **Check installed account** also shows a Models group: each model
says **In n8n** or **Not in n8n** and has **Copy ID**. Optional model checks
send one short test request per new model, use a little of your plan, and
need your confirmation. They are off by default. See
[model discovery and checks](docs/n8n-configuration.md#model-discovery-and-checks).
**Plan and usage** shows the requests and tokens sent through the sidecar in
the last 30 days, per model, and the last plan-usage error with its next
step. On a VPS it is under **Manage the installed ChatGPT session** after
**Check installed account**; on this computer it is a dashboard section.
These are Relmio's own counts, not your plan's usage. Plan percent, reset
times and credits stay on ChatGPT's Usage page, which **Manage usage** opens.
The sidecar keeps the counts without prompts or outputs. A VPS sidecar
installed by an earlier Relmio version starts counting after **Review sidecar
update**. See [Plan and usage](docs/vps-and-n8n.md#see-plan-and-usage).
The sidecar sends supported requests to `/v1/responses`. The
`/v1/chat/completions` compatibility route translates text messages and
function tools into a Responses request. Function tools go upstream in one
`additional_tools` item, and n8n runs the tools itself. The route allows up to
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, system messages, and inputs it cannot preserve. Chat
clients receive only final-answer text; reasoning items and intermediate
commentary are not passed on. The Responses route passes OpenAI's events
through unchanged, except failure events, which it rewrites with a safe
error. On 2026-10-05 a two-turn LangChain tool test passed through the real
gateway on one ChatGPT account, streaming over both routes. That is not a
guarantee for other accounts or models. Audio, video, file-management routes,
stored responses/conversations, moderation, the Responses `image_generation`
tool, and unsupported parameters are rejected; there is no automatic fallback.
The exception is an output-token cap (`max_output_tokens`, or
`max_completion_tokens` and `max_tokens` on the chat route). SIWC doesn't
accept one, so the sidecar drops it and the cap is not enforced.
You can turn on image generation and editing as an opt-in add-on, for a VPS
sidecar or for the local sidecar. The easiest time is during setup: on the
review step, select the box under **Image generation (optional)**, and the
Ready step shows a Codex sign-in code after the install. For a sidecar that is
already installed, on a VPS open **Manage the installed ChatGPT session**,
choose **Check installed account**, then **Sign in for images**. On this
computer, select **ChatGPT plan sidecar** on the dashboard, choose **Manage
ChatGPT sign-out**, open **Image generation**, then choose **Sign in for
images**. Either way, enter the code at
`https://auth.openai.com/codex/device`. In n8n, use the OpenAI node's
**Image** actions with the same Base URL and Relmio key, and pick
`gpt-image-2` from the list or enter it as the ID. The add-on uses a separate
Codex sign-in, the way Hermes
Agent does. OpenAI does not document this route for other apps, so it can stop
working without notice. Images count against your plan's Codex limits. The
Codex refresh token is stored on the VPS, or for the local sidecar in its
Docker volume on this computer, where anyone with administrator or Docker
access can read it. The ChatGPT plan session is never used for images. Each
request returns one image; masks and URL responses are not supported. See
[Turn on image generation on a VPS](docs/vps-and-n8n.md#turn-on-image-generation-optional)
or [on this computer](docs/local-endpoints.md#turn-on-image-generation-optional)
for limits and sign-out.
The OpenAI Chat Model node (v1.2 and newer) and Chat Hub do not list
`gpt-image-2`. The OpenAI node's text picker still does, because it shares one
model request with the image picker; use that ID only for images. A 2026-10-06
test showed the Codex image route ignores the model ID, so GPT Image 2.5 Flare
and Sunburst need a separate OpenAI credential with your own Platform API key
on n8n's image node. See
[image limits and test evidence](docs/n8n-configuration.md#generate-and-edit-images).
n8n's AI Assistant cannot list sidecar models. To try one, choose
**Self-hosted or OpenAI-compatible endpoint** under
**Settings > n8n Assistant > Model**, use the same Base URL and Relmio key,
and paste a model ID. Only do this if nobody else uses this n8n: their
Assistant chats would use your ChatGPT plan. The sidecar keeps the
Assistant's earlier reasoning and replies in memory only, for up to 6 hours;
after a sidecar restart or update, start a new Assistant conversation. On
2026-10-07, after a sidecar update, n8n 2.40.7's Assistant passed its model
check and answered a question about the instance's workflows with a tool step,
on one Pro account with `gpt-6-astra`. That is not a guarantee for other
accounts, models or longer conversations. OpenAI has not said whether this use
fits its Sign in with ChatGPT terms. See
[Assistant setup](docs/ai-assistant.md#optional-chatgpt-plan-sidecar).
Installing on a server also requires express consent for n8n background
workflows. For existing local or VPS n8n, the wizard does not edit n8n
credentials or Compose configuration. For n8n created by Relmio, approved
ChatGPT-plan, local-model, SuperGrok and local Claude installs try to import their connection
credential.
Existing legacy bridge installations are not silently adopted; they require a
separately reviewed migration and fresh SIWC sign-in. Identity sign-in or an
installer confirmation cannot grant plan permission; that is a separate user
authorization in ChatGPT.
OpenAI's VM guide and SIWC Terms §1 leave persistent remote VM storage unresolved.
See the [VPS guide](docs/vps-and-n8n.md) and the
[2026-11-11 source check](docs/openai-source-check-2026-11-11.md) before
choosing that route.
For SuperGrok, choose **SuperGrok for n8n**, select
its container and network, then review the private installation. Copy the
one-time Relmio client credential and use `http://n8n-supergrok:14502/v1`.
`grok-build` remains a legacy routing alias; use a freshly discovered model
where the n8n control supports it. Then run:
```sh
relmio grok login --n8n
```
Approve the official device sign-in. The credential entered in n8n's API key
field authorizes access to Relmio only; it is not an xAI API key. For workflow
model nodes, turn **Use Responses API** off and choose **From list**. For Chat
Hub, turn it off in **Settings > Chat > OpenAI > Edit provider**. The Assistant
custom endpoint uses a discovered model name in its text field; it is separate
from the Chat setting. An earlier development install without the fresh-session
marker is not upgraded automatically; migration requires a separately reviewed
path. Sign out with `relmio grok logout --n8n`. This
companion publishes no host port.
### I want a provider-free model for n8n
First use does not require an existing `.relmio` directory. Open the dashboard
with `npx --yes --ignore-scripts relmio@latest local`; it initializes dashboard
state as needed. The local-model installation requires an existing running n8n
container and does not install n8n. If you do not yet run local n8n, set it up
separately before selecting a model.
Choose **Local model for n8n** to install one CPU-based Ollama model beside an
existing local n8n container, or use the dedicated VPS model setup route. The
wizard measures Docker-visible memory, CPU, and disk, lets you select from the
allowlisted model catalog, and reviews the exact resources and download before
you confirm. The runtime uses the selected existing Docker network and
publishes no host port. It needs no ChatGPT sign-in, OAuth credential, or
provider API key.
The model API has no authentication: all containers on the selected network
are trusted. Ollama cloud features are disabled, but first-time image and model
downloads still require internet access. n8n uses the private base URL and an
ignored placeholder key; see the [local-model guide](docs/local-models.md) for
capacity estimates, setup, configuration, retry, and explicit cache removal.
This is a workflow Chat Model, not n8n AI Assistant sandbox setup or proof of
reliable tool calling.
Model-only smoke checks covered local Docker and a Hostinger VPS. Linux
full-stack acceptance is tracked in [issue #86](https://github.com/Demonbane18/relmio/issues/86).
A reported 120-second local inference timeout on cold model loads remains open.
Cold loads and host pressure can exceed caller deadlines, and CPU inference can
be slow. These checks prove bounded inference only, not a working workflow,
tool calling, model quality, throughput, or support on other hosts.
Relmio's VPS model setup is tested on Hostinger KVM VPS. Other Linux VPS hosts,
including Hetzner, and all hosting-plan platforms are experimental. See
[Hosting compatibility](docs/hosting-compatibility.md) for account guidance,
managed prerequisites, manual platform routes, and provider limits.
Use the actual image/administrator username and **Local SSH agent**
or approved password; verify the host fingerprint before authentication.
The host needs rootful Docker Engine and Compose v2 (Buildx is expected; without
it the review warns and builds are untested) with
its existing `default` Docker context targeting the local n8n daemon, existing
n8n on an eligible bridge, measured capacity and a safe root-owned `/docker`.
Relmio does not provision the VM, install Docker/n8n, or change SSH policy.
Final review also discloses temporary root-only Buildx state inside the owned
operation lock. Verified cleanup removes only that state; uncertain cleanup
retains the lock for administrator inspection, never automatic n8n/cache deletion.
Verified **Passwordless sudo -n (model only)** supports this model flow, not
OAuth bridge, AI Assistant, SuperGrok or Claude VPS operations; those retain their
existing approved direct-root requirement. Agent keys stay local, and a
persistent dashboard must be launched from the correct agent environment.
Render service SSH is unsupported by the managed installer, but a separate
paid private model service is a manual option with its own disk and internal
DNS. See [Hosting compatibility](docs/hosting-compatibility.md) for all managed
and manual routes, image-qualified usernames, agent setup and provider limits.
### I do not have n8n yet
Choose **Set up new n8n**. Relmio creates a separate stack that is private
by default. ngrok is optional; when enabled, it exposes only the new n8n
route behind Basic Auth. Code Sandbox and SearXNG stay off the host network.
[Read the new n8n guide](https://relmio.jpfusin.tech/docs/local-n8n-stack)
### I want to use SuperGrok
The experimental **SuperGrok** adapter uses official OAuth with your eligible
subscription. Local apps and n8n use `/v1/chat/completions` and a separate
local Relmio bearer. The current account catalog listed `grok-4.6` and
`grok-4.5`; discovery is not per-model tool proof. Explicit `grok-4.6` passed
the n8n Assistant node-catalog tool and a Calculator workflow (`317 × 29 =
9193`). `grok-build` remains a legacy alias, not a claim that every request
uses Grok 4.6. Existing n8n is never reconfigured or restarted by this setup.
No xAI API key is requested.
After installing the local SuperGrok endpoint, sign in:
```sh
relmio grok login
```
Approve the displayed code on the official provider page. To sign out later,
run `relmio grok logout`. These commands act only on the attested Relmio runtime.
[Read the SuperGrok guide](https://relmio.jpfusin.tech/docs/local-endpoints#supergrok-development-backends)
## n8n AI Assistant tools
Choose **n8n AI Assistant tools** in the local browser wizard to add Code
Sandbox beside an existing n8n container. SearXNG web search is optional and
off by default. Relmio shows the sandbox key and n8n settings once. It does not
change or restart n8n.
Configure the Assistant's supported model connection directly in n8n. The privileged local runner is for
development and testing; n8n recommends Daytona for production.
[Read the AI Assistant guide](https://relmio.jpfusin.tech/docs/ai-assistant)
## Codex App Server and Chat Adapter
The local **Codex App Server** keeps its WebSocket client protocol and relays
it to the official Codex App Server over stdio, using the selected SIWC
registration's public Responses access token. It is a high-trust target for a
trusted native client owned by the same account holder, not a browser service
or a general OpenAI `/v1` gateway. The relay forwards every client JSON-RPC
call except a short deny-list to the official App Server, which runs as the
same user that owns the SIWC store. Connect only trusted local clients. Agent
spawning and deferred `tool_search` are disabled; unsupported account/auth,
connector, marketplace, plugin, and configuration mutations are rejected.
This is not full App Server feature parity.
The **Codex Chat Adapter** is a separate, read-only conversational HTTP
interface for trusted local backends. Its bearer does not grant the App
Server's broader surface. The two targets use the selected SIWC account but
keep their local credentials and behavior separate.
Direct WebSocket connections close shortly before the access token expires.
Reconnect and explicitly resume a known thread; its account-bound record
survives relay restarts. Unknown or foreign threads are rejected, and
interrupted turns are not replayed.
## Provider account policy
Each SIWC registration is bound to a verified issuer, issued client ID, and
subject. Email is a display label; matching addresses do not merge
registrations. Sign-in, permission to use a ChatGPT plan, and successful model
requests are separate states. Relmio does not choose another registration or
change billing after an error.
Sign-out clears local tokens and attempts OpenAI revocation. If remote
revocation cannot be confirmed, the wizard says so and points to ChatGPT's
disconnection controls. Local cleanup is not proof of remote revocation or
provider-side deletion.
The direct Codex target is a high-trust WebSocket relay to the official App
Server using SIWC credentials; the Codex Chat Adapter is a narrower read-only
contract. Neither uses a separate Codex device-code login or exposes a general
OpenAI Platform API.
Managed ChatGPT plan use does not configure an OpenAI Platform API key or fall
back to separately billed API access. Configure unrelated API-key connections
and operator-generated hosting artifacts separately in n8n or on the target
platform. Retired API installations and their data remain untouched.
The experimental SuperGrok adapter uses the pinned official Grok CLI for fresh
OAuth/device sign-in and sign-out in its own private volume. The direct HTTP
handler reads only that runtime's marked session to call xAI's documented CLI
chat proxy. It does not inspect another app's credentials, import tokens,
replay browser cookies, or accept an xAI API key. The CLI remains the sole
credential writer; the HTTP handler never consumes refresh tokens.
Local apps use `/v1/chat/completions` with a separate Relmio client bearer.
`grok-build` is a supported legacy routing alias; a fresh authenticated catalog
can provide current routing names, but a listing does not prove a model's tool
behavior. n8n executes its own tools and returns matching results. Browser
bundles must not hold the local bearer or call it directly.
The ChatGPT gateway uses only the selected registration. It does not switch
accounts or fall back to a separately billed API after an authentication,
permission, unsupported-capability, rate-limit, or usage error.
## Common problems
- **Docker is not running.** Start Docker Desktop or Docker Engine, then open a
fresh wizard session.
- **Authentication fails.** Close old sign-in tabs, run `relmio open`, and use
the private page opened by the active dashboard process.
- **Local image build failed.** Check Docker, disk space, and registry access.
- **Git Bash says stdin or stdout is not a TTY.** Use the hosted curl launcher,
which applies the bundled `winpty` bridge. For direct NPX on Git Bash 2.38.1,
prefix that process with `MSYS=enable_pcon`. Do not add a global Git setting.
[Open troubleshooting](https://relmio.jpfusin.tech/docs/troubleshooting)
## Guides
- [Getting started](https://relmio.jpfusin.tech/docs/getting-started)
- [Local endpoints and n8n bridge](https://relmio.jpfusin.tech/docs/local-endpoints)
- [New local n8n with optional ngrok](https://relmio.jpfusin.tech/docs/local-n8n-stack)
- [VPS and n8n](https://relmio.jpfusin.tech/docs/vps-and-n8n)
- [SuperGrok on a VPS](https://relmio.jpfusin.tech/docs/vps-supergrok)
- [n8n AI Assistant](https://relmio.jpfusin.tech/docs/ai-assistant)
- [Security and policy notes](https://relmio.jpfusin.tech/docs/security)
- [Private local models](https://relmio.jpfusin.tech/docs/local-models)
- [Hosting compatibility](https://relmio.jpfusin.tech/docs/hosting-compatibility)
- [Reference](https://relmio.jpfusin.tech/docs/reference)
- [Changelog](https://relmio.jpfusin.tech/changelog)
## Support
Relmio is free to use. If it helped you, you can buy me a coffee.
<a href="https://ko-fi.com/paldogies" target="_blank" rel="noopener noreferrer"><img height="36" src="https://storage.ko-fi.com/cdn/kofi6.png?v=6" alt="Support Relmio on Ko-fi"></a>
## Legal
Relmio is an unofficial, community-maintained project. It is not affiliated
with, endorsed by, or sponsored by OpenAI.
Treat ChatGPT/Codex credentials like passwords. Use only your own account. Do
not pool, share, forward, or sell access tokens. Any request made with those
credentials must be authorized by the account owner.
You are responsible for following OpenAI's [Terms of Use](https://openai.com/policies/terms-of-use/),
[Usage Policies](https://openai.com/policies/usage-policies/), and any other
agreement that applies to your account.
> [!WARNING]
> **Do not bypass rate limits, restrictions, or safeguards.**
Relmio is provided as-is without warranties. OpenAI or an upstream service may
change or discontinue access at any time. You accept the risks of using this
experimental community project.