# Run an AI coding agent fully offline

> In offline mode, SeaShell reaches only your model endpoint and local services; run it against a local model and your code stays on your machine.

SeaShell can run offline. Turn on offline mode with seashell --offline (or ATLAS_OFFLINE=1) and SeaShell reaches only your chosen model endpoint and local services in 2026; telemetry, update checks, and config fetches are all blocked. Point it at a local model with Ollama or LM Studio and your code and its metadata never leave your machine. Offline mode is opt-in, so you decide when to enforce the boundary.

## Key takeaways

- Offline mode (seashell --offline) blocks network egress except your model endpoint and local services.
- Point SeaShell at a local model (Ollama or LM Studio) to run fully air-gapped.
- Telemetry, update checks, and config fetches are all blocked in offline mode.
- Offline mode is opt-in, not the default, so you choose when to enforce it.

## What offline mode does

Turn on offline mode with seashell --offline or ATLAS_OFFLINE=1. Once on, in 2026, SeaShell reaches only your configured model endpoint and local services; every other outbound call is blocked before it leaves the machine.

The boundary is enforced in one place rather than left to each feature to respect, so it holds for install telemetry, update and entitlement checks, and config fetches alike. A blocked call is treated like an ordinary offline network failure, so SeaShell keeps working rather than erroring: the call is skipped, not sent. Offline mode is opt-in, so the default posture stays convenient and you enforce the boundary when the work calls for it.

## Running against a local model

To run fully air-gapped, point SeaShell at a model on your own machine. It works with any local OpenAI-compatible server: Ollama on port 11434 or LM Studio on port 1234.

Run seashell models --local and SeaShell detects the running local server, lists its chat models, and registers them as a provider you can pick like any other. With a local model selected and offline mode on, the only network SeaShell touches is your local model server, so the whole loop stays on hardware you control. You bring your own model; SeaShell is the agent around it.

## What stays on your machine

When you run a local embedder, SeaShell builds its code index on your machine and searches by meaning without sending source to any embedding service. Combined with offline mode, that keeps 3 things local: your code, its index, and its embeddings.

SeaShell plans and diffs every change before applying it, and every tool call is checked against allow, ask, and deny rules before it runs, so autonomy stays under your control even while offline. The privacy story is about where the data physically goes: with a local model and a local embedder, there is no third-party copy of your source to worry about, because there is no third party in the path.

## Telemetry and updates, honestly

By default SeaShell sends 1 anonymous install ping (version, platform, channel, and an anonymous install id), which you can turn off any time with ATLAS_DISABLE_TELEMETRY=1. It never sends your code, prompts, or file paths.

Offline mode goes further: it blocks that telemetry ping along with update checks, entitlement checks, and config fetches, so nothing but your model endpoint and local services is reachable. If you need a hard guarantee that SeaShell is not talking to anything except the model you chose, offline mode is that guarantee.

## FAQ

### Can SeaShell run offline?

Yes. Turn on offline mode with seashell --offline (or ATLAS_OFFLINE=1). SeaShell then reaches only your model endpoint and local services; everything else is blocked.

### Does my code leave my machine in offline mode?

No. With a local model and a local embedder, your code, its index, and its embeddings stay on your machine, and offline mode blocks other network calls.

### Does SeaShell phone home?

By default SeaShell sends an anonymous install ping you can disable with ATLAS_DISABLE_TELEMETRY=1. In offline mode, telemetry, update checks, and config fetches are all blocked.

### What model can I use offline?

Any local OpenAI-compatible server: Ollama or LM Studio. Run seashell models --local to detect it and register its models.

### Is offline mode the default?

No. It is opt-in with --offline or ATLAS_OFFLINE=1, so you choose when to enforce the network boundary rather than having it always on.

---

Canonical HTML: https://seashell.sh/resources/features/run-atlas-offline-air-gapped
Source of truth: aeo_pages row `/resources/features/run-atlas-offline-air-gapped` (segment: Platform) (this file is generated from it, never hand-edited).
Licence: SeaShell is proprietary with a free core. It is not open source and there is no public source repository.
