Animated Relmio mascot carrying a private n8n connection through its doorway

Relmio

Bring your AI sign-ins to your tools. Keep every credential where it belongs.

npm version npm monthly downloads GitHub stars CI status Apache 2.0 license

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@ 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: 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. Support Relmio on Ko-fi ## 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.