Skip to Content
Integration KitIntegrations

Integrations

The Settings → Integrations tab is how you install, activate, and switch between AI tools inside the Integration Kit. This is the panel-level alternative to manually wiring up an MCP client.

Integration prerequisites differ by tool. Claude Code must already be installed on your machine. On Windows and macOS, the official Codex runtime requires Node.js 20+ to run; npm is also required when the Kit installs its pinned copy of the official @agentclientprotocol/codex-acp package or discovers a global package. Without a usable official runtime (managed or compatible global, and Node.js 20+), Codex is unavailable. This requirement does not apply to Local LLM — see Local LLM below.

Supported tools

ToolVendorAuth
Claude CodeAnthropicAnthropic account (same as Claude.ai subscription)
Codex CLIOpenAIOpenAI account / API key
Local LLMAny OpenAI-compatible endpointNone (or API key for remote services)

More integrations are coming; the panel updates over time as new ones are added.

Install flow

On Windows, the Codex runtime contract has four states: Not installed, Installing, Ready, and Error. Activation is a separate user preference shown when the runtime is ready. macOS shows the same card with the same four states.

Not installed

When no supported runtime is available, Codex shows Install and the downloadable adapter integrations show Download.

  • Codex on Windows: click Install to have the Kit use system Node.js/npm to install the pinned official @agentclientprotocol/codex-acp package into Nwiro’s per-user runtime directory. Nwiro does not rebuild or republish the ACP package.
  • Codex on macOS: Codex behaves exactly as on Windows. Click Install to install the same pinned official package (Node.js 20+ and npm required); it also unlocks the newest models (GPT-5.6, GPT-6 Astra, Sol and Luna). Removing the Nwiro-managed runtime leaves Codex on a compatible global official runtime if one is installed, and unavailable otherwise. A legacy Zed Codex ACP adapter downloaded by an earlier build is no longer used, and Codex chats from it start a new session. Older plugin builds still show the legacy Codex card on macOS.
  • Claude and Local LLM: the Kit downloads their supported adapter bundles. Claude Code itself must already be installed separately.

Ready / system-detected

Shown as Activate. Click it and the plugin wires the tool up to the chat panel. The tool is now “active” and the chat UI routes through it.

If a supported system installation is already present, the panel can reuse it instead of installing another runtime.

On Windows and macOS, Codex applies one native-owned installation policy:

  • A valid Nwiro-managed runtime is reused as-is.
  • A compatible global official runtime at the pinned version or newer is reused and left untouched.
  • With an older compatible global runtime, Codex remains available through that global install and the card also offers Install Nwiro-managed runtime. Choosing it installs the pinned managed copy, which then takes priority without modifying or removing the global package.
  • Removing the Nwiro-managed copy reveals a compatible global installation as the fallback. If no compatible global runtime exists, Codex returns to Not installed.

A model the runtime in use is too old to list is shown disabled in the model menu with the version it needs: GPT-6 Sol and GPT-6 Luna need @agentclientprotocol/codex-acp 1.13.1 or newer (the pinned managed version), GPT-6 Astra needs 1.10.0 or newer. Installing the Nwiro-managed runtime makes them available. GPT-5.4 and GPT-5.4 Mini are no longer in the model list Codex serves, so they are shown disabled wherever the official runtime runs.

The Claude Opus entry runs Claude Opus 5.5 with Claude Code 2.1.280 or newer; older Claude Code versions still run Opus 5 under it. Run claude update to upgrade. The Default entry runs Claude Code’s own default model: from Claude Code 2.1.280 that is Opus 5.5 on Pro, Max, Team, Enterprise and API accounts, unless a model is set in your Claude Code settings.

Active

The card shows a checkmark / “Active” tag. The chat panel shows the tool’s name as a tag above the chat thread. Click Deactivate or simply activate a different tool to switch.

Switching tools

You can switch between Claude Code and Codex any time. Each tool has:

  • Its own conversation history, stored separately so contexts don’t mix.
  • Its own permission cache, so whatever you pre-approved in Claude Code doesn’t leak into Codex.
  • Its own auth, so each tool asks for its own credentials.

Switching is one click in Settings → Integrations. The chat panel refreshes to show the active tool’s history.

Authentication

  • Claude Code uses your existing Anthropic account. If you’re already signed in on the CLI, the Kit reuses that session with no extra prompt. If not, the first chat will open Anthropic’s auth flow in your browser.
  • Codex uses your OpenAI API key / account. Both adapters share the normal Codex authentication state, so an existing sign-in can be reused.

Nwiro never sees your Anthropic / OpenAI credentials. They live in the respective CLI’s local config.

Detection

On panel open, the Kit checks each integration’s runtime requirements:

  • Claude checks for its adapter and Claude Code installation.
  • On Windows, Codex checks for the managed official npm runtime first, then a compatible global installation. Node.js 20+ is required to run Codex; npm is additionally required for managed installation and global-package discovery.
  • On macOS, Codex checks for the official runtime the same way as on Windows and has no legacy fallback.
  • Local LLM checks for its adapter bundle and saved endpoint configuration.

With the official runtime, other codex-acp executables and unsupported global npm versions are ignored and never modified. Existing MCP entries are preserved. The official adapter receives only that editor’s process-local mcp_servers.nwiro entry and never rewrites the user’s global Codex configuration.

You can force a re-probe with the refresh icon on the Integrations tab header.

Local LLM

The Local LLM card connects the chat panel to any OpenAI-compatible HTTP endpoint — Ollama, LM Studio, llama.cpp server, vLLM, or a remote OpenAI-compatible service. Unlike Claude Code and Codex, which are vendor-specific CLIs that require a cloud account, the Local LLM card routes through local-llm-acp (open-source), a first-party shim that translates between the Integration Kit’s internal protocol and the standard OpenAI /v1/chat/completions API. No vendor account required.

Quick start

RuntimeHow to startEndpoint URLModel
Ollamaollama serve, then ollama pull llama3http://localhost:11434/v1llama3
LM StudioOpen app → Local Server → load a GGUF modelhttp://localhost:1234/v1Name shown in the LM Studio UI
LM Studio Bioniclms server start, load a modelhttp://localhost:1234/v1Id the server lists, e.g. qwen/qwen3-1.7b@q6_k
llama.cpp serverllama-server -m model.gguf -c 4096http://localhost:8080/v1default
OpenRouter (cloud · beta)Create a key at openrouter.ai  → set a spend limithttps://openrouter.ai/api/v1vendor-prefixed slug, e.g. openai/gpt-4o-mini

OpenRouter is a beta cloud option — chat-only. It routes to a paid cloud provider, so usage is billable to your OpenRouter account — set a spend limit in your dashboard. Use a vendor-prefixed model slug (e.g. openai/gpt-4o-mini). Tool/MCP use is not yet supported over OpenRouter; the session degrades cleanly to chat-only.

Settings card flow

  1. Open Settings → Integrations → Local LLM (wrench icon 🔧).
  2. Fill in three fields:
    • Endpoint URL (required) — the base URL from the table above. It must include the scheme (http:// or https://) and normally ends in /v1; the form rejects an endpoint without a scheme.
    • Model (required, free-text) — e.g. llama3
    • API key (optional) — leave blank for any local server; required for OpenRouter and other remote OpenAI-compatible services
  3. Click Save & Activate.

The chat panel header shows “Local LLM” once the adapter is active.

Security and limitations

Terminal and shell tools are always disabled for Local LLM. This matches the default behavior of Claude Code and Codex.

API key is never stored in plaintext when left blank. The save handler omits the field entirely from the persisted config object — there is no empty apiKey key in localStorage.

API keys are never included in diagnostic reports. The report bundle redacts API-key-shaped strings before copying to clipboard.

MCP tool support is included. The Local LLM adapter can drive the Integration Kit’s tool surface. Tool-capable models (native tool-calling) receive the full local-model tool set; models with weaker or emulated tool-calling automatically receive a smaller, auto-tuned subset so calls stay reliable. Models with no tool-calling support at all connect in chat-only mode.

First-time setup checklist

  1. Install your local LLM runtime (Ollama, LM Studio, or llama.cpp).
  2. Start the server and load a model.
  3. Open Integration Kit → Settings → Integrations → Local LLM.
  4. Click Download to fetch the local-llm-acp shim (one-time).
  5. Enter the Endpoint URL and Model. Leave API key blank if using a local server.
  6. Click Save & Activate.
  7. The chat panel header now shows “Local LLM” as the active tool.

Switching back

Activating Claude Code or Codex deactivates Local LLM. Your Local LLM config (endpoint URL and model name) is preserved in localStorage, so re-activating it later doesn’t require re-entering the settings.

Offline use

Normal MCP and Unreal tool traffic stays on your machine. Integration acquisition can use the network (for example, npm for the managed Codex runtime and GitHub for downloadable adapter bundles), and cloud AI tools call their model providers.

For offline AI, use the Local LLM card — see Local LLM above. Point it at Ollama, LM Studio, or llama.cpp running on the same machine and the chat panel works entirely without internet.

Behind the scenes

The Integrations panel is just a friendly front for an MCP server. The Kit exposes http://127.0.0.1:5353/mcp as a standard MCP endpoint, and each “integration” is really a pre-configured connection between that endpoint and the chosen CLI. If you want to point other MCP-compatible clients (Cursor, Windsurf, VS Code + Copilot, etc.) at the Kit directly, you can; just add the same URL to their MCP settings.

The built-in integrations are there so you don’t have to do this manually. Works the same either way.

Last updated on