# Offline / Air-gapped Docs

> The goose-doc-guide skill reads official goose documentation before answering goose-specific questions.

- 网址：https://funcoding.ai/agents/goose/guides/offline-docs/
- 来源：goose 官方文档原文（英文），Apache-2.0 许可，同步于 2026-10-11
- 官方原文：https://goose-docs.ai/docs/guides/offline-docs

---
The `goose-doc-guide` skill reads official goose documentation before answering
goose-specific questions. By default it reads from `https://goose-docs.ai`. In
an offline or air-gapped environment, point goose at a **local copy** instead by
setting `GOOSE_DOCS_ROOT`.

- If `GOOSE_DOCS_ROOT` is set (in `config.yaml` or the environment), goose uses
  it as the docs root — either a local filesystem path or an HTTP(S) URL.
- If it is not set, goose falls back to `https://goose-docs.ai`.

When the root is a local path, goose reads the docs with its file tools; no
network access is required.

## Docs layout

A docs root contains a docs map and a `docs/` tree:

```
<docs-root>/
├── goose-docs-map.md
└── docs/
    ├── getting-started/...
    └── guides/...
```

`goose-docs-map.md` is the index the skill searches first; every page it reads
is referenced by a path listed there.

## Building a local docs root

Build the docs from a goose checkout using the same version as your goose
binary, so the docs match the runtime. The standard documentation build already
produces everything goose needs — a `goose-docs-map.md` index and a `docs/` tree
of markdown files — so no custom tooling is required:

```bash
git checkout v1.41.0   # match your goose binary version
cd documentation
npm run build
```

This writes the docs root to `documentation/build/`, containing:

```
build/
├── goose-docs-map.md
└── docs/
    ├── getting-started/...
    └── guides/...
```

`npm run build` requires registry access, so run it in an online environment.
Then copy the resulting `build/` directory to your air-gapped target location
(for example `/opt/goose-docs`) and point `GOOSE_DOCS_ROOT` at it.

## Configuring goose

Set `GOOSE_DOCS_ROOT` in `config.yaml`:

```yaml
GOOSE_DOCS_ROOT: "/opt/goose-docs"
```

Or via the environment:

```bash
export GOOSE_DOCS_ROOT=/opt/goose-docs
```

For a managed distribution, bake the docs tree into your image and set
`GOOSE_DOCS_ROOT` in the shipped `config.yaml` or launcher environment.

## Notes

- Documentation links in goose's answers always render as canonical
  `https://goose-docs.ai/...` URLs, even when read locally.
- A custom HTTP(S) mirror also works: set `GOOSE_DOCS_ROOT` to its root URL.
- For MCP extension runtime issues offline, see
  [Airgapped/Offline Environment Issues](https://funcoding.ai/agents/goose/troubleshooting/known-issues/#airgappedoffline-environment-issues).
