Settings work as in Code - OSS. Settings specific to Neural Inverse start with neuralInverse.. Many of them are also managed policies, which your administrator sets for every device; several can only be set that way.
How managed policy is set
| Platform | How |
|---|
| Windows | Group Policy, with ADMX and ADML templates generated from the product (categories include Governance, Audit and Security), or the product's policy key in the registry |
| macOS | A configuration profile (.mobileconfig) for the product's bundle identifier (com.neuralinverse.ide for the Editor, com.neuralinverse.agents for the Agents app) |
| Linux | The JSON policy file /etc/vscode/policy.json. Governance trusts it only when it is owned by root and not writable by others. |
For testing, npm run mock-policy-server in the source serves policies to a development build.
Who may set what
- Managed policy only: a value in a settings file (user, workspace or folder) is ignored, and the app tells you. This applies to every
neuralInverse.governance.*, neuralInverse.audit.* and neuralInverse.security.* setting, neuralInverse.vault.agentEnvironment, neuralInverse.keystone.clientId, neuralInverse.keystone.allowMissingIssuerParameter and neuralInverse.keystone.workspaceBindingPolicy, and to the always-governed settings neuralInverse.checks.enabled, security.workspace.trust.enabled, security.workspace.trust.untrustedFiles, security.restrictUNCAccess and extensions.verifySignature. Under an organisation policy, also to the agent auto-approval settings and anything the policy lists.
- Application settings: a workspace cannot set them, only your user settings or managed policy. All
neuralInverse.keystone.* and neuralInverse.context.* settings are application settings.
- Everything else: as in Code - OSS.
Sign-in and server
| Setting | Policy | Default | Meaning |
|---|
neuralInverse.keystone.baseUrl | NeuralInverseKeystoneBaseUrl | empty (the address built into the app) | The Govern deployment to sign in to. Ignored in a build that locks the address. |
neuralInverse.keystone.clientId | NeuralInverseKeystoneClientId | empty | Policy only. The OAuth client, only for a self-hosted deployment older than the per-app clients. |
neuralInverse.keystone.allowMissingIssuerParameter | NeuralInverseKeystoneAllowMissingIss | false | Policy only. Allows an older self-hosted server that does not send iss (RFC 9207), only when the address also comes from policy. |
neuralInverse.keystone.workspaceBindingPolicy | NeuralInverseKeystoneWorkspaceBindingPolicy | empty | Policy only. Pins or forbids repositories. See Workspaces. |
Governance
| Setting | Policy | Meaning |
|---|
neuralInverse.governance.policyBundle | NeuralInverseGovernancePolicyBundle | The signed policy bundle (JSON), the strongest policy source |
neuralInverse.governance.policyKeys | NeuralInverseGovernancePolicyKeys | JSON array of trusted policy signing keys, for example [{"keyId":"acme-2026","publicKey":"<base64>","orgIds":["acme-medical"]}]. Adds to the product's keys; never replaces one. |
neuralInverse.governance.organisation | NeuralInverseGovernanceOrganisation | Your organisation id, so a bundle signed for another organisation is refused |
All three are policy only.
Audit
Setting ids start with neuralInverse.audit.; policy names start with NeuralInverseAudit. An install is managed as soon as one audit policy is set; unset keys then take the managed default.
| Setting | Policy | Unmanaged default | Managed default | Meaning |
|---|
enabled | NeuralInverseAuditEnabled | true | true | Record actions. Managed installs always record. |
cli.enabled | NeuralInverseAuditCliEnabled | true | true | Record command-line tool invocations |
extensions.processAndNetwork | NeuralInverseAuditExtensionsProcessAndNetwork | true | true | Record processes extensions start and hosts they first contact |
captureLevel | NeuralInverseAuditCaptureLevel | standard | standard | minimal, standard or full (full by policy only) |
failureMode | NeuralInverseAuditFailureMode | alert | block | What happens when the ledger cannot record |
retentionDays | NeuralInverseAuditRetentionDays | 90 | 365 | Days to keep events, or per data class { public, internal, confidential, restricted } |
legalHold | NeuralInverseAuditLegalHold | false | false | Suspend erasure and retention deletion |
maxDiskMiB | NeuralInverseAuditMaxDiskMiB | 1024 | 4096 | Disk space for the ledger (at least 16) |
exclusions | NeuralInverseAuditExclusions | [] | [] | Workspace-relative globs never recorded |
userExclusionsAllowed | NeuralInverseAuditUserExclusionsAllowed | true | false | Whether a person's exclusions also apply |
securitySettingsAllowList | NeuralInverseAuditSecuritySettingsAllowList | [] | [] | More settings whose old and new values are recorded |
checkpointEvery | NeuralInverseAuditCheckpointEvery | 1000 events / 300 s | 1000 / 300 | Signed checkpoint frequency |
tsaUrl | NeuralInverseAuditTsaUrl | empty | empty | RFC 3161 time-stamp authority for checkpoints. Empty means no network call. |
userErasureAllowed | NeuralInverseAuditUserErasureAllowed | true | false | Whether a person may erase their own recorded content |
pseudonymiseExports | NeuralInverseAuditPseudonymiseExports | false | true | Pseudonyms instead of identities in exports |
clipboardThreshold | NeuralInverseAuditClipboardThreshold | 1024 | 1024 | Pastes larger than this many characters are recorded (size and digest only) |
evidence.allowedBuilders | NeuralInverseAuditEvidenceAllowedBuilders | ["organisation"] | [] | Who bundles may be exported for: device key fingerprints and organisation |
evidence.reproductionAllowed | NeuralInverseAuditEvidenceReproductionAllowed | true | false | Whether a recorded AI request may be re-run |
evidence.includeContent | NeuralInverseAuditEvidenceIncludeContent | false | false | Whether evidence reports may show raw content |
upload.enabled | NeuralInverseAuditUploadEnabled | false | false | Send agent events to your organisation's Govern deployment |
upload.person | NeuralInverseAuditUploadPerson | false | false | Also send a person's own actions (needs upload.enabled) |
upload.content | NeuralInverseAuditUploadContent | false | false | Also send redacted content of agent events |
| Setting | Policy | Default | Meaning |
|---|
neuralInverse.security.allowDebugging | NeuralInverseSecurityAllowDebugging | true | When false: inspectors and remote debugging are refused, developer tools close as they open, and every attempt is recorded |
neuralInverse.security.requireSignedApp | NeuralInverseSecurityRequireSignedApp | false | Refuse agent features unless the OS verifies the app's code signature and the product checksums match |
neuralInverse.security.trustedPublishers | NeuralInverseSecurityTrustedPublishers | [] | Publishers that satisfy requireSignedApp: apple-team:<team id>, authenticode:<thumbprint>, rpm-key:<key id>, package:<name> |
Organisation context
| Setting | Policy | Default |
|---|
neuralInverse.context.enabled | NeuralInverseContextEnabled | true |
neuralInverse.context.defaultSpaceId | NeuralInverseContextDefaultSpace | empty |
neuralInverse.context.tokenBudget | NeuralInverseContextTokenBudget | 4096 (256 to 32000) |
neuralInverse.context.sourceKinds | NeuralInverseContextSourceKinds | empty (every kind) |
neuralInverse.context.autoHandoffOnPullRequest | NeuralInverseContextAutoHandoff | ask (or never) |
Vault and Checks
| Setting | Policy | Default | Meaning |
|---|
neuralInverse.vault.agentEnvironment | NeuralInverseVaultAgentEnvironment | empty | Policy only. More environment variables to withhold from agent terminals. See Secrets. |
neuralInverse.checks.enabled | none | true | Check open files as you type. Always governed, so it stays on. |
Chat and agent host
| Setting | Default in Neural Inverse | Meaning |
|---|
chat.agentHost.claudeAgent.enabled | true | Register the Claude engine. Needs an agent host restart. |
chat.agentHost.codexAgent.enabled | false | Register the Codex engine, which runs only on a ChatGPT or OpenAI Codex account |
chat.agentHost.byokModels.enabled | true | Offer your connected models to agent sessions |
chat.editor.localAgent.enabled | false | New Editor chats start as agent sessions |
chat.automations.enabled | true (experimental) | Automations in the Agents app |
Under an organisation policy, chat.tools.global.autoApprove, chat.tools.edits.autoApprove, chat.tools.urls.autoApprove, chat.tools.terminal.enableAutoApprove and chat.tools.terminal.autoApprove are governed.
Environment variables
| Variable | Meaning |
|---|
NI_SHARED_AGENT_HOST | 1 forces one agent host shared by the Editor and the Agents app; 0 gives each app its own. Default: shared on macOS, separate on Windows and Linux. |
Appearance
| Setting | Default | Meaning |
|---|
workbench.experimental.modernUI | off | The modern Editor layout (experimental) |
workbench.experimental.modernUIEditorTabStyle | connected | connected or pill tabs, with modern UI on. The Agents app follows it for chat and side-panel tabs. |
window.density.layout | default | compact removes outer spacing and rounded corners in the Editor, with modern UI on |
workbench.modernUIFrostedGlass | true | Frosted overlays (menus, Command Palette, hovers, dialogs, notifications). In the Editor it needs modern UI; the Agents app always uses it. Only with hardware-accelerated GPU compositing. |
workbench.modernUIFrostedGlassOpacity | 80 | Overlay tint, 50 to 100 |
High-contrast themes, forced colours, reduced transparency in the OS, and workbench.reduceTransparency: "on" keep solid backgrounds.