# Offline setup

> Documentation index: [llms.min.txt](https://caseyrfsmith.github.io/scull/llms.min.txt) · Document manifest: [documents.json](https://caseyrfsmith.github.io/scull/documents.json)

Prepare the runtime before disconnecting. Local lookup alone does not validate an air-gapped deployment.

## Exact lookup

Transfer Python, Scull and its dependencies, and the schemaset. Include `constraints/` resources
referenced by format `0.2` schemas. Keep original docs available.

```bash
export SCULL_SCHEMA_PATH=/path/to/schemas
scull get schema schema_version
scull context schema schema_version
```

These examples assume the bundled `schema` concept. Default output needs no model or index.
`--format=human` uses generative inference; avoid it for model-free operation.

## Local search

Prepare on a connected machine:

```bash
uv sync --extra local
export SCULL_EMBED_PROVIDER=local
export SCULL_EMBED_CACHE_DIR=/path/to/model-cache
uv run scull-schemafier kg build --force
uv run scull search "schema format version"
```

Transfer dependencies, model cache, schemas, and the complete index, including `CURRENT` and its
referenced generation. Use the same provider/model at the destination. MiniLM cannot query a
Voyage index. [Provider reference](https://caseyrfsmith.github.io/scull/docs/reference/embedding-providers.md).

## Verify disconnected operation

Disable networking, start a fresh process, and test installation, exact lookup, and an uncached
search on the target hardware. Check for missing files or download attempts.

An answering agent needs its own local inference runtime. You can ship prebuilt artifacts; if
extraction must happen inside the boundary, stage its model and dependencies too.
