Skip to content

Feature Flags

Feature flags control which system capabilities are available. Eight flags default to true; compaction is opt-in and defaults to false. Setting a true-by-default flag to false removes the capability entirely — the tool is not registered, not visible to the LLM, and is rejected if a client calls it directly.

Add a features object to your nimblebrain.json:

nimblebrain.json
{
"features": {
"bundleManagement": true,
"skillManagement": true,
"delegation": true,
"toolDiscovery": true,
"bundleDiscovery": true,
"fileContext": true,
"userManagement": true,
"workspaceManagement": true,
"compaction": false
}
}

You only need to include flags you want to change. Omitted flags use their defaults — true for the first eight, false for compaction.

FlagDefaultControlsTool(s) gated
bundleManagementtrueReserved. Previously gated the removed nb__manage_app tool. Kept as a stable operator knob; it gates no tool today.— (reserved)
skillManagementtrueCreate, edit, delete, and activate user skillsskills__create, skills__update, skills__delete, skills__activate, skills__deactivate
delegationtrueMulti-agent sub-task delegationnb__delegate
toolDiscoverytrueSearch installed tools by keywordnb__search (scope: "tools")
bundleDiscoverytrueSearch registries for bundlesnb__search (scope: "registry")
fileContexttrueFile upload and context extractionFile processing pipeline
userManagementtrueCreate, update, and delete usersnb__manage_users
workspaceManagementtrueCRUD workspaces and manage membersnb__manage_workspaces
compactionfalseHistory compaction — fold the oldest turns of a long conversation into a summary at run start to bound context growth. Event-sourced stores only.— (engine behavior, not a tool)

Tools not listed in the table above are never gated by feature flags. They register and stay visible regardless of feature configuration — for example nb__status, nb__search itself (only its scope-specific behavior is gated), and the read-only platform tool surfaces.

Feature flags are enforced at tool registration. A gated tool whose flag is false is excluded at startup — it never appears in tools/list for the LLM, the web shell, or external MCP clients, and a direct call to it is rejected. compaction is enforced differently: it changes engine behavior at run start rather than gating a tool.