配置

配置

配置文件位置

配置存储在项目目录下的 .spck-editor/config/spck-cli.config.json 中。

重要提示.spck-editor/config 是一个指向 ~/.spck-editor/projects/{project_id}/符号链接,可将敏感信息保存在项目目录之外。

默认配置

{
  "version": 1,
  "root": "/path/to/your/project",
  "name": "My Project",
  "terminal": {
    "enabled": true,
    "maxBufferedLines": 10000,
    "maxTerminals": 10
  },
  "security": {
    "userAuthenticationEnabled": false
  },
  "filesystem": {
    "maxFileSize": "10MB",
    "watchIgnorePatterns": [
      "**/.git/**",
      "**/.spck-editor/**",
      "**/node_modules/**",
      "**/*.log",
      "**/.DS_Store",
      "**/dist/**",
      "**/build/**"
    ]
  },
  "browserProxy": {
    "enabled": true
  },
  "acp": {
    "enabled": true
  }
}

浏览器代理设置

  • browserProxy.enabled(布尔值):启用/禁用浏览器代理功能
    • 默认值:true
    • 设为 false 可阻止移动应用通过 CLI 打开浏览器代理会话

ACP(本地 AI 代理)设置

  • acp.enabled(布尔值):启用/禁用 ACP(本地 AI 编码代理)集成
    • 默认值:true
    • 控制 Spck Editor 是否可以通过 Agent Client Protocol 在此主机上驱动本地安装的 AI 编码代理(Claude Code、Codex、Gemini CLI)
    • 设为 false 时,acp.capabilities 将以 { available: false, agents: [] } 响应,编辑器的本地代理传输切换器将被隐藏,并改用云端(SSE)路径
    • 代理具有对 shell 和文件系统的间接访问权限,因此如不需要该暴露面,请按项目禁用此选项
    • 向后兼容:在该选项出现之前创建的配置会以自动填入的 acp: { enabled: true } 加载并重新保存

💡 另请参阅移动端 AI 编程助手 (ACP) — 支持的智能体(Claude Code、Codex、Gemini CLI)、身份验证和计费的完整指南,包括 Anthropic 对从 Spck Editor 等第三方工具驱动的 Claude Code 所应用的独立速率限制配额。

终端设置

  • terminal.enabled(布尔值):启用/禁用终端访问

    • 默认值:true
    • 设为 false 可降低终端被未授权访问的风险
  • terminal.maxBufferedLines(数字):最大滚动缓冲行数

    • 默认值:10000
    • 影响内存使用(约每 1 万行占用 1MB)
  • terminal.maxTerminals(数字):最大并发终端会话数

    • 默认值:10
    • 每个终端约占用 5-10MB 内存

文件系统设置

  • filesystem.maxFileSize(字符串):读写操作的最大文件大小

    • 默认值:"10MB"
    • 可接受值:"5MB""50MB"
  • filesystem.watchIgnorePatterns(字符串数组):文件监视中排除的匹配模式

    • 默认值:忽略构建输出和依赖项
    • 通过避免监视大量生成文件来提升性能

安全设置

  • security.userAuthenticationEnabled(布尔值):启用 Firebase 用户身份验证
    • 默认值:false
    • 设为 false:延迟较低,兼容 Lite 版本,仍通过签名密钥保护
    • 设为 true:额外安全层,用户身份验证,首次连接增加 2-20 秒延迟
    • 无论此设置如何,所有请求始终经过加密签名

安全性

加密连接

所有通信使用:

  • WSS(WebSocket Secure):TLS/SSL 加密
  • HTTPS:加密初始握手

请求签名

每个请求均经过加密签名:

  • 密钥在本地生成,从不通过互联网传输
  • 建议不要使用第三方二维码扫描器,以免暴露您的密钥

最佳实践

  1. 保护凭证

    # 添加到 .gitignore(设置过程中自动完成)
    echo ".spck-editor/" >> .gitignore
    
  2. 在共享机器上退出登录

    spck --logout
    
  3. 限制暴露的目录范围

    # 避免暴露整个主目录
    spck --root /path/to/specific/project
    
  4. 不需要时禁用终端

    {
      "terminal": {
        "enabled": false
      }
    }
    
  5. 不需要时禁用浏览器代理

    {
      "browserProxy": {
        "enabled": false
      }
    }
    
  6. 不需要时禁用 ACP(本地 AI 代理)

    {
      "acp": {
        "enabled": false
      }
    }
    

用户身份验证

Spck CLI 支持可选的 Firebase 用户身份验证,作为始终启用的请求签名之上的第二安全层。

工作原理

启用后,CLI 要求您使用 Spck Editor 账号登录。连接通过 Firebase ID 令牌进行身份验证,令牌每小时到期,并使用存储在 ~/.spck-editor/.credentials.json 中的安全刷新令牌自动续期。

启用用户身份验证

{
  "security": {
    "userAuthenticationEnabled": true
  }
}

权衡对比

禁用(默认) 启用
安全防护 密钥签名 + Firebase 身份验证
初始延迟 无身份验证开销 首次连接增加 2–20 秒
Spck Editor Lite ✅ 支持 ❌ 不支持
离线使用 无需网络即可工作 需要网络进行令牌刷新

何时启用

保持禁用(默认)的情况:

  • 使用 Spck Editor Lite 时 — Lite 版本不支持 Firebase 登录;将此项设为 true 将导致 Lite 用户无法连接
  • 在本地网络或可信环境中工作,密钥签名已足够
  • 最小化连接延迟是优先考量

启用的情况:

  • CLI 部署在可通过互联网访问的服务器上
  • 需要用户身份验证作为密钥之外的额外访问控制层

⚠️ Spck Editor Lite 不支持 Firebase 身份验证。 若将 userAuthenticationEnabled 设为 true,Spck Editor Lite 将无法连接。使用 Lite 版本时请将此设置保持为 false