Nikcli Docs

Configuration

Complete config reference derived from packages/nikcli/src/config/config.ts.

Resolution Order

Configuration is merged in the following precedence order (lowest → highest):

Layer Source
Remote /.well-known/nikcli for OAuth providers (loaded via Auth)
Global ~/.config/nikcli/nikcli.jsonc (or nikcli.json, config.json)
Custom path NIKCLI_CONFIG or NIKCLI_CONFIG_CONTENT
Project nikcli.jsonc or nikcli.json discovered upward
Config tokens

Values like {env:VAR} and {file:path} are expanded while parsing.

Config Schema

  json
  {
  "$schema": "https://nikcli.store/config.json",
  "theme": "dark",
  "model": "anthropic/claude-sonnet-4-20250514",
  "small_model": "anthropic/claude-haiku-4-20250514",
  "default_agent": "build",
  "username": "dev",
  "share": "manual",
  "autoupdate": true,
  "disabled_providers": [],
  "enabled_providers": [],
  "permission": {},
  "agent": {},
  "provider": {},
  "mcp": {},
  "lsp": {},
  "rag": {},
  "experimental": {}
}

Agents & Permissions

Agents use the AgentConfig schema and merge permissions from config + defaults.

Field Description
agent Primary/subagent definitions. Supports additional custom agents by name.
permission Tool allow/deny/ask rules. Accepts per‑tool rules and wildcard patterns.

Providers

Provider configuration is scoped per provider ID under provider.

  json
  {
  "provider": {
    "anthropic": { "options": { "apiKey": "{env:ANTHROPIC_API_KEY}" } },
    "openai": { "options": { "apiKey": "{env:OPENAI_API_KEY}" } },
    "amazon-bedrock": { "options": { "region": "us-east-1" } }
  }
}

MCP

MCP server entries live under mcp and support local or remote configurations.

  json
  {
  "mcp": {
    "filesystem": {
      "type": "local",
      "command": ["npx", "-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
    },
    "remote-docs": {
      "type": "remote",
      "url": "https://example.com/mcp"
    }
  }
}

LSP

Built‑in LSP servers can be disabled or overridden. Custom servers require explicit extensions.

  json
  {
  "lsp": {
    "pyright": { "disabled": true },
    "custom-lua": {
      "command": ["lua-language-server"],
      "extensions": [".lua"]
    }
  }
}

RAG

RAG embedding defaults are in packages/nikcli/src/rag/index.ts.

  json
  {
  "rag": { "model": "nvidia/llama-embed-nemotron-8b", "provider": "nvidia" }
}

Experimental

Experimental flags are defined under experimental and via env flags in packages/nikcli/src/flag/flag.ts.

On this page