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.