Skip to content

Instance Config

An instance config names the repos NestWeaver indexes, how they relate, and where snapshots and workspace checkouts live. nestweaver index and nestweaver setup do not create this file.

Pass --config on index and query commands. Placing .nestweaver/instance.toml, nestweaver-instance.toml, or instance.toml beside the repo does not load it for those commands. That filename search exists only so pr-impact can find a [pr_impact] policy. With neither --instance nor --config, commands use the instance id default.

The canonical minimal file in the NestWeaver repo is examples/minimal-instance.toml. Validate a copy before using it:

Terminal window
cp examples/minimal-instance.toml nestweaver-instance.toml
nestweaver config validate nestweaver-instance.toml

InstanceConfig rejects unknown fields. These five settings are required:

instance_id = "my-project"
[snapshot_storage]
backend = "local"
path = "~/.local/share/nestweaver/my-project/snapshots"
[workspace]
backend = "local"
path = "~/.local/share/nestweaver/my-project/workspace"
[inference]
endpoint = "http://localhost:11434"
embedding_model = "nomic-embed-text"
summary_model = "qwen2.5-coder:7b"
[git]
credential_method = "gh"

A repo entry needs url, not path. A markdown vault is the same table with type = "vault".

[[repos]]
url = "https://github.com/example/frontend"
name = "frontend"
[[repos]]
url = "https://github.com/example/notes"
name = "project-notes"
type = "vault"

Indexing a checkout you already have is still nestweaver index --repo ./frontend. The url in config is the declared identity, not a substitute for --repo.

Links use type, not kind.

[[links]]
from = "frontend"
to = "api-client"
type = "http-api"
description = "Frontend calls the API client"

The annotated guide in the NestWeaver repo is docs/guide/instance-config.md. It covers projects, feature bundles, embedding weights, and MCP server settings.