Documentation

Air-gap Mode

Stop Andromity from using the internet. What air-gap mode blocks, what keeps working, how to allow a model server on your network, how it is enforced, what it does not cover, and how to verify it.

Air-gap mode stops Andromity from making network connections, except to this machine and the private-network hosts you allow, such as a shared model server. Use it with a local model when your code must not leave your network.

Air-gap mode controls what Andromity does. It is a guard inside Andromity, not a network boundary. For complete isolation, also block outbound traffic with your firewall, and check with your own monitoring. See Verify it yourself.

What happens when it is on

  • Local models keep working. Ollama on this machine, or a model server on a host you allow, works as usual.
  • Everything that needs the internet turns off, with a message saying why: cloud models, web search, remote MCP servers, sign-in, telemetry, update checks and downloads.
  • Commands the agent runs are blocked from the internet where possible, and so is the terminal the code-block Run button opens.
  • You can see it. The status bar shows a shield instead of the Andromity logo, and the prompt bar shows an Air-gap badge. Hover either one to see what Andromity can reach.

Turn it on

VS Code

  • Open Settings → Preferences and turn on Air-gap Mode, or
  • run Andromity: Air-gap Mode: Turn On or Off from the Command Palette.

Turning it on applies at once. Turning it off asks you to confirm first. Either way, the Andromity engine restarts, and the change applies from your next message.

Terminal app and headless runs

Add this to config.toml:

[default]
airgap = true

For a project

Add this to the project's .vscode/settings.json:

{
  "andromity.airGap.enabled": true
}

A project can turn air-gap mode on but never off. If your user settings turn it on, a project's settings can't turn it back off.

For your organization

Set ANDROMITY_AIRGAP=1 in the environment VS Code or Andromity starts in, for example with your device management tool or a launch script. Air-gap mode is then locked on: the checkbox in Settings is greyed out and nobody can turn it off from inside Andromity.

Who can turn it off

Turned on byHow to turn it off
Your user settingsSettings → Preferences → Air-gap Mode, or the Command Palette command. Asks first.
A project's .vscode/settings.jsonEdit that file.
config.tomlEdit config.toml.
ANDROMITY_AIRGAP=1Remove the variable and restart VS Code. Andromity can't turn it off.

Allow a model server on your network

To use a model server on your network, add it to Allowed private hosts. The box is under Air-gap Mode in Settings → Preferences, and the setting is andromity.airGap.allowedHosts. Each entry can be:

EntryExample
An address10.0.0.5
A range10.0.0.0/8
A host namegpu-box.lan
An address with a port (the port is ignored)192.168.1.50:11434

For the terminal app, use airgap_allowed_hosts in config.toml. Or set ANDROMITY_AIRGAP_ALLOW to a comma-separated list:

[default]
airgap = true
airgap_allowed_hosts = ["10.0.0.5", "gpu-box.lan"]

Rules that keep this safe:

  • Only private addresses count. Private, loopback and link-local addresses are accepted. Public addresses are ignored even if you list them, and Settings shows which entries were ignored.
  • Host names must resolve privately. Andromity looks up a listed name, and connects only if the answer is a private address.
  • A repository can't add hosts. Allowed hosts come only from your user settings, config.toml or the environment, never from a project's settings.

Then add the server as a custom connection with its address as the base URL.

What is blocked

FeatureWith air-gap mode on
Cloud models: Andromity Auto, Anthropic, OpenAI, OpenRouter, Google Gemini, DeepSeek, Groq, NVIDIA NIMBlocked. Sending a message shows Blocked by Air-gap Mode with a Choose a local model button.
Ollama on this machineWorks.
A model server on an allowed hostWorks.
Switching to another provider automatically (commit messages, inline edits)Only to connections air-gap mode allows.
Web search and URL fetch toolsRemoved. The agent doesn't see them, so it won't try to use them.
Remote MCP servers, and signing in to themPaused, with Paused: air-gap mode is on.
Local MCP serversPaused, because many reach the internet themselves. See Local MCP servers.
App connectorsBlocked.
Anonymous telemetry, tips and newsOff.
Model price list, model capability lookups, live model listsOff. Andromity uses what it already knows.
Update checks and upgradesOff.
Online skills catalogOff. Installed skills keep working.
Automatic downloads (ripgrep, the Windows context-menu icon)Off.
Installing the Andromity engine (VS Code)Blocked. See Installing in an offline environment.
AgenticMarket sign-in and usage displayOff. Local models need no account.
Pull a model for Ollama from VS CodeBlocked. Copy model files in from an internal source, or pull them on a connected machine.
Commands the agent runs, and the code-block Run terminalRun with the network blocked where possible. See How it is enforced.
Opening a link in your browser (documentation, provider pages)Not blocked. That's your own action, outside Andromity.

Local MCP servers

Air-gap mode pauses local MCP servers by default, because many of them reach the internet themselves. Common examples are npx and uvx downloading packages, and servers that call cloud APIs.

To run a local server you trust, add "allowInAirgap": true to it in mcp.json. It then starts with the same network blocking as commands the agent runs:

{
  "mcpServers": {
    "my-local-tools": {
      "command": "my-local-tools",
      "allowInAirgap": true
    }
  }
}

How it is enforced

Andromity applies three layers:

  1. Inside Andromity itself. A guard starts before anything else loads, and blocks connections, UDP packets and DNS lookups to anything other than this machine and your allowed hosts. It also covers network code that loaded before it did, and the way Windows makes background connections, which an ordinary check would miss.
  2. In each feature. Features that need the internet turn themselves off and tell you why, so they don't depend on a connection failing.
  3. In commands the agent runs, and in the Run terminal:
    • Python programs load the same guard.
    • Every program's proxy settings point at a closed local port (HTTP_PROXY, HTTPS_PROXY, ALL_PROXY, in upper and lower case). NO_PROXY lists only this machine and your allowed hosts.
    • Node's built-in fetch is told to use those proxy settings, and git over SSH is refused.
    • Common network commands are refused outright, for example curl, wget, ssh, git clone/fetch/push, pip install and npm install.
    • An MCP server's own settings can't turn any of this off.

Every blocked attempt is recorded. Hover the status bar shield to see how many, and open View → Output → Andromity to see what they were.

What it does not cover

Know these limits before you rely on air-gap mode:

  • Programs that ignore proxy settings. Proxy settings are a convention, not a control. curl, git over HTTPS, npm, pip, Go programs and many Rust tools follow them. A program that opens network connections directly is not stopped by Andromity.
  • Low-level code in Python. Code that calls the operating system directly, such as through ctypes or some native libraries, can get past the guard.
  • Python started with -I, -E or -S. These options skip the files that load the guard.
  • Everything outside Andromity. Other extensions, VS Code itself and your operating system are not affected.
  • DNS for allowed host names. Looking up a host name you allowed sends a query to your DNS server.

For all of these, use your firewall.

Self-test

Check air-gap mode with Run self-test in Settings → Preferences, or Andromity: Air-gap Mode: Run Self-test. The self-test only runs while air-gap mode is on, so it never makes a real connection. It checks that these are blocked:

  • a DNS lookup, a TCP connection, a UDP packet and an HTTPS request to the internet
  • a background connection, the kind model and MCP clients make
  • a Python program run by the agent

It also checks that commands get the proxy block, and that this machine is still reachable. Each check shows PASS or FAIL. A FAIL means Andromity didn't stop that case on this machine, so cover it with your firewall.

Verify it yourself

Don't rely on the self-test alone:

  • Watch the traffic. Use a packet capture or your firewall's log while you work. You should see connections only to 127.0.0.1 or ::1 and your allowed hosts.
  • Cut the network off. Block outbound traffic for the machine, or for VS Code, with your firewall. Then confirm Andromity keeps working with your local model.
  • On Linux, run the terminal app inside a network namespace with no network access, for example unshare -n.

Installing in an offline environment

On a machine with no internet access, the VS Code extension can't download the Andromity engine itself. Install the andromity Python package from your internal package mirror instead. Then point Python Path (andromity.pythonPath) at that Python. See Installation.

Every host Andromity can contact

With air-gap mode off, this is everything Andromity can connect to. With it on, all of these are blocked unless they are this machine or a host you allowed.

HostWhat forWhen
gateway.agenticmarket.devAndromity Auto models, usage displayWhen you use Andromity Auto
api.anthropic.com, api.openai.com, generativelanguage.googleapis.com, openrouter.ai, api.deepseek.com, api.groq.com, integrate.api.nvidia.com, opencode.aiModel replies and model listsWhen you use that provider
developers.openai.com, ai.google.dev, platform.claude.comWhich reasoning levels a model supportsWhen you choose a model
raw.githubusercontent.comModel price list; the Windows context-menu iconAt start
telemetry.agenticmarket.devAnonymous telemetry, tips, newsUnless telemetry is off
pypi.org, github.comUpdate checks, upgrades, ripgrep, installing the engineAt start (checked at most daily) and when you update
api.github.com, raw.githubusercontent.comSkills catalogWhen you browse or install skills
DuckDuckGo, api.stackexchange.com, and the pages the agent fetchesWeb search and URL fetch toolsWhen the agent uses them
Your MCP servers and their sign-in pagesMCP tools and sign-inWhen servers start or you sign in
agenticmarket.devSigning inWhen you sign in
localhost:11434, or your Ollama hostOllama modelsWhen you use Ollama

Settings reference

WhereSettingDefaultMeaning
VS Codeandromity.airGap.enabledfalseTurn on air-gap mode. A project can turn it on, not off.
VS Codeandromity.airGap.allowedHosts[]Private hosts Andromity may reach. User settings only.
config.toml[default] airgapfalseTurn on air-gap mode for the engine and the terminal app.
config.toml[default] airgap_allowed_hosts[]Private hosts Andromity may reach.
EnvironmentANDROMITY_AIRGAP=1not setTurn on air-gap mode and lock it on.
EnvironmentANDROMITY_AIRGAP_ALLOWnot setComma-separated private hosts Andromity may reach.