Skip to content

配置

DimCode 会把持久化数据存储在本地,默认目录为 ~/.dimcode/

提示:优先在 TUI 内配置(Ctrl+P, /connect, /models, /tool-settings),尽量不要手工改 JSON。

目录结构(默认)

text
~/.dimcode/
  config.json                 # provider connections + UI settings
  tools.json                  # tool config (WebSearch, MCP)
  dimcode/
    cache.json                # cached preferences + session metadata
    state/                    # session state store (messages, diffs, etc.)
    bin/
      binary-upgrade.json     # standalone binary upgrade metadata
    upgrade-toast.json        # last upgrade notification

路径解析规则

基础目录

DimCode 使用两个基础目录:

  • 配置目录(Config dir):存放 config.json
  • 缓存目录(Cache dir):存放 cache.jsonstate/bin/ 以及升级元数据

解析规则:

  1. 若设置了 DIMCODE_HOME
    • 配置目录:$DIMCODE_HOME
    • 缓存目录:$DIMCODE_HOME/dimcode
  2. 否则若设置了 XDG_CONFIG_HOME
    • 配置目录:$XDG_CONFIG_HOME/.dimcode
    • 缓存目录:$XDG_CONFIG_HOME/.dimcode/dimcode
  3. 否则(默认):
    • 配置目录:~/.dimcode
    • 缓存目录:~/.dimcode/dimcode

tools.json 位置

tools.json 使用独立规则:

  1. 若设置了 DIMCODE_HOME$DIMCODE_HOME/tools.json
  2. 否则若设置了 XDG_CONFIG_HOME$XDG_CONFIG_HOME/dimcode/tools.json
  3. 否则:~/.dimcode/tools.json

状态目录覆盖

可单独覆盖状态目录(不影响其他目录):

  • DIMCODE_STATE_DIR=/absolute/path/to/state

各文件作用

config.json

用途: 提供方连接、当前提供方/模型选择,以及自定义提供方/模型(外加少量 UI 级设置)。

典型结构(简化):

json
{
  "version": 1,
  "updatedAt": 0,
  "settings": {
    "providerId": "openai",
    "activeModelByProvider": {
      "openai": "gpt-4.1-mini",
      "openrouter": "openrouter/auto",
      "ollama": "qwen2.5-coder:14b"
    },
    "providerConnections": {
      "openai": {
        "apiKey": "****",
        "baseUrl": "https://api.openai.com/v1"
      },
      "openrouter": {
        "apiKey": "****"
      },
      "ollama": {
        "baseUrl": "http://localhost:11434/v1",
        "models": [{ "id": "qwen2.5-coder:14b" }]
      }
    },
    "customProviders": [
      {
        "id": "cp_abc123",
        "name": "My Gateway",
        "adapter": "openai-responses",
        "baseUrl": "http://localhost:8080/v1",
        "apiKey": "****",
        "models": [{ "id": "my-model" }]
      }
    ]
  }
}

说明:

  • 建议在 TUI 里用 /connect 配置,尽量不要手工改 JSON。
  • customProviders 用于保存你在 Connect Provider 流程中创建的自定义端点。
  • customProvider(若存在)属于 旧版字段,可能会自动迁移到 customProviders

cache.json

用途: 缓存的偏好与会话元数据。

常见字段:

  • settings.model(默认模型)
  • settings.temperature
  • settings.contextWindow
  • settings.toolApprovalsauto / all / manual 取决于 UI 模式)

具体字段可能随版本变化,可视为内部缓存。

tools.json

用途: 工具配置,例如 WebSearch 与 MCP 服务器。

典型结构(简化):

json
{
  "version": 1,
  "updatedAt": 0,
  "settings": {
    "websearch": {
      "apiKey": "",
      "apiEndpoint": "https://google.serper.dev/search?format=json",
      "numResults": 10
    },
    "mcpServers": []
  }
}

配置优先级(谁覆盖谁)

运行时 环境变量优先于本地文件。适合 CI 或临时覆盖。

常见环境变量:

  • OPENAI_API_KEY(OpenAI 兼容凭据)
  • OPENAI_BASE_URL / DIMCODE_OPENAI_BASE_URL(OpenAI 兼容端点)
  • OPENAI_API_BASE_URL(旧版字段;部分 SDK 示例会使用)
  • GOOGLE_API_KEY(Gemini 凭据)
  • DIMCODE_GEMINI_BASE_URL(Gemini 端点覆盖)
  • ANTHROPIC_API_KEY(Anthropic 凭据)
  • DIMCODE_ANTHROPIC_BASE_URL(Anthropic 端点覆盖)
  • DIMCODE_PROVIDER_ADAPTERopenai / openai-responses / gemini / anthropic
  • DIMCODE_MODEL(模型 ID)
  • DIMCODE_TEMPERATURE
  • DIMCODE_CONTEXT_WINDOW
  • DIMCODE_TOOL_APPROVALSauto / all
  • DIMCODE_SESSION_ID(exec 模式的会话 ID)
  • DIMCODE_SERVER_TOKEN(服务器认证 token)
  • DIMCODE_DISABLE_AUTOUPDATE=1(禁用更新检查)
  • DIMCODE_AUTOUPDATE=0(禁用后台安装)

重置 / 清理

彻底清理本地状态(会删除会话):

bash
rm -rf ~/.dimcode/dimcode/state
rm -f ~/.dimcode/config.json ~/.dimcode/tools.json ~/.dimcode/dimcode/cache.json ~/.dimcode/dimcode/auth.json

然后重新启动 dim 并执行 /connect