最近更新时间:2026-10-10 18:30:37
金山云码CLI是一款 AI 终端编程助手,专为金山云内部使用。用户用自然语言描述需求,金山云码CLI自主完成分析理解、读取代码库、代码编写、文件操作、命令执行、网络搜索等开发任务;如对结果不满意,继续对话调整即可。
功能类别 | 说明 |
智能编写代码 | 代码编写、修改、审查(review)、缺陷修复、代码自测 |
文件操作 | 文件读写、搜索、替换、目录管理 |
Shell 命令 | 终端命令执行,带沙箱与审批控制 |
网络搜索 | 网络内容搜索与网页抓取 |
上下文管理 | 项目级 AGENTS.md 和全局级规则配置、自动压缩 |
安全控制 | 审批策略、沙箱模式、权限配置、execpolicy 规则 |
扩展能力 | Skills、Agent 子代理、MCP 服务器、插件、Hooks |
会话管理 | 自动保存、恢复、归档、删除、分支、导出 |
KSYun 集成 | 扫码/链接登录、动态模型发现、内部 MCP 自动配置、个人页 |
项目 | 要求 |
操作系统 | macOS、Linux(Ubuntu 20.04+、Debian 10+、Alpine Linux 3.19+)、Windows(Win 10 1809+ 或 Win Server 2019+) |
运行时 | 原生二进制,安装脚本自动下载,无需额外运行时 |
终端 | 推荐使用 WezTerm、Alacritty、Ghostty、Kitty、iTerm2 等现代终端模拟器 |
安装方式 | 一键安装脚本 |
以下安装方式任选其一。
打开终端
执行安装命令
curl -fsSL http://fe-frame.ks3-cn-beijing.ksyuncs.com/fe-frame/kscc/install/ksxc/企业识别码/install.sh | sh打开 PowerShell
执行安装命令
iex "& { $(irm http://fe-frame.ks3-cn-beijing.ksyuncs.com/fe-frame/kscc/install/ksxc/企业识别码/install.ps1) }"首次使用需登录金山云账号。支持两种登录方式。
直接运行:
ksxc终端会显示登录链接(部分后端还会渲染二维码),使用企业内部协作 APP 扫码,或在浏览器中打开链接完成认证。终端中按 B 可自动在默认浏览器打开登录页面。登录成功后:
认证信息自动保存到 ~/.ksxc/auth.json
后续启动 ksxc 直接使用已保存的凭证
适用于不在组织架构内、由管理员在控制台手动添加的成员。管理员添加成员后,SK 会发送至成员邮箱,如邮件丢失可向管理员申请重发。
Mac/Linux:
export KSXC_AUTH_TOKEN=你的sk
ksxcWindows PowerShell:
$env:KSXC_AUTH_TOKEN="你的sk"
ksxc首次启动会向 KSXC 后端验证该 token,验证通过后自动持久化到本地,之后的启动无需再设置环境变量。验证失败会提示错误并退出。
ksxc logout # 退出登录在 TUI 中也可输入 /logout 退出登录。
# 在项目目录下启动
ksxc
# 指定项目路径
ksxc -C /path/to/project
# 带初始提示启动
ksxc "帮我检查这个项目的依赖是否有安全漏洞"启动后进入全屏交互界面,可以像聊天一样与 AI 对话,AI 会实时展示操作过程和结果。首次启动若未登录,会自动引导完成登录。
# 发送一条消息,流式输出,完成后自动退出
ksxc exec "修复 auth.test.ts 中失败的测试"
# 以 JSONL 格式输出事件流(适合程序解析)
ksxc exec --json "重构用户模块"
# 不持久化会话(不写盘)
ksxc exec --ephemeral "临时任务"exec 支持 -e 别名,如 ksxc -e "prompt"。
启动时会自动检查更新并提示升级
删除并清理本地数据 ,删除~/.ksxc/目录。
支持多种输入方式,适用于不同场景。
直接用自然语言描述需求:
帮我在 src/utils/ 下创建一个日期格式化工具函数请分析这个项目的依赖关系这个文件的认证逻辑有问题吗?在输入框中输入 / 可查看可用命令。常用斜杠命令:
/model 切换模型与推理强度
/plan 切换到 Plan(规划)模式
/init 初始化项目 AGENTS.md
/compact 压缩上下文
/new 新建会话
/resume 恢复历史会话
/fork 分支当前会话
/archive 归档当前会话
/delete 删除当前会话
/export 导出会话为 Markdown
/memories 管理记忆
/skills 使用技能
/mcp MCP 服务器面板
/plugins 插件管理
/subagents 查看/切换本会话的子代理线程
/agents 浏览所有 agent 会话
/permissions 选择 KSXC 的允许操作
/keymap 查看快捷键
/theme 选择主题
/status 查看当前会话配置与 token 用量
/usage 查看账户用量
/logout 退出登录
/my-page 打开 KSXC 个人页
/exit 退出 KSXC(别名 /quit)以 ! 开头输入命令可直接执行 Shell 命令,输出会自动加入对话上下文:
!git status!npm install axios使用 @ 引用文件或目录,文件内容会自动加入对话:
帮我优化这段代码 @src/utils/helper.ts把这个目录的结构说明一下 @src/components/对比这两个文件 @file1.js @file2.js@ 支持模糊搜索,输入 @ 后输入文件名关键词即可快速定位文件。
以上输入方式可在同一轮对话中组合使用:
!git branch 先查看当前分支
@src/api/user.ts 这个文件需要改进 引用文件并提需求
/compact 压缩上下文Skills 是可复用的指令包,通过 SKILL.md 文件定义。金山云码CLI会在需要时自动发现和加载相关技能,Agent 看到可用的技能列表并按需加载完整内容。技能是按需加载的,不会一直占用上下文空间。
在 TUI 中输入 /skills 查看可用技能并管理。
支持从金山云内部技能平台安装技能,安装后为全局技能,可跨项目使用。
技能通过 @技能名 或 @技能名 任务描述 的方式显式调用,Agent 也会根据任务自动选用。
技能文件存放位置:
位置 | 作用域 |
| 全局 — 所有项目可用 |
| 项目级 — 仅当前项目可用 |
SKILL.md 必须以 YAML frontmatter 开头:
---
name: git-release
description: 创建一致的发布和变更日志
license: MIT
---
## 功能
- 从已合并的 PR 生成发布说明
- 提出版本号建议
- 提供可复制的 `gh release create` 命令
## 何时使用
在准备标记版本发布时使用此 Skill。Frontmatter 字段:
字段 | 必填 | 说明 |
name | 是 | 唯一标识符,1-64 字符,小写字母、数字和连字符 |
description | 是 | 描述何时应使用此技能(1-1024 字符) |
license | 否 | 许可证 |
compatibility | 否 | 兼容性标记 |
metadata | 否 | 元数据映射 |
名称规则:仅小写字母、数字和单个连字符;不能以 - 开头或结尾;不能包含连续的 --;必须与包含 SKILL.md 的目录名一致。
支持子代理(Subagent)工作流:主代理可以派生出多个专门化的子代理并行执行任务,再把各自的执行结果汇总回主对话。
核心特性:
上下文隔离 — 每个子代理拥有独立的 agent thread(独立上下文),探索笔记、测试日志、命令输出等中间噪声不会污染主对话
并行执行 — 多个相互独立的任务可同时进行,显著缩短耗时
汇总返回 — 子代理只向主对话返回执行摘要而非原始中间输出
策略继承 — 子代理继承主会话的沙箱与审批策略
注意:子代理各自独立调用模型和工具,子代理工作流比单代理运行消耗更多 token。
直接在主对话中提出要求即可,例如:
用 3 个子代理并行审查当前分支:一个查安全风险,一个查测试覆盖,一个查可维护性。
等全部完成后,按类别汇总问题并附上文件引用。当项目 AGENTS.md 或技能指令要求委派时,金山云码CLI也会自动委派。提示词应说明如何分工、是否等待所有子代理完成、以及返回什么形式的汇总。
KSXC 内置以下角色:
角色 | 用途 |
default | 通用兜底角色 |
worker | 执行类角色,负责功能实现、测试与缺陷修复 |
explorer | 只读角色,快速、精准地回答代码库相关问题,适合并行探索 |
TUI 中输入 /subagents 查看并切换本会话正在运行的子代理线程
输入 /agents(或命令行 ksxc agents)浏览共享 app-server 上的所有 agent 会话
子代理发起审批请求时,审批弹层会显示来源线程;按 o 打开该线程查看上下文后再决定批准/拒绝
也可以直接要求CLI对运行中的子代理下发补充指令、停止子代理或关闭已完成的分支线程。
自定义 Agent 使用 TOML 文件定义,放置于以下目录(文件自动发现加载):
位置 | 作用域 |
| 全局 — 对所有项目生效 |
| 项目级 — 仅对当前项目生效 |
每个文件定义一个 Agent。必填字段:
字段 | 必填 | 说明 |
name | 是 | Agent 名称,派生或引用该角色时使用 |
description | 是 | 描述何时应使用该 Agent(用于委派决策) |
developer_instructions | 是 | 定义 Agent 行为的核心指令 |
还可包含其他 config.toml 支持的字段,如 model、model_reasoning_effort、sandbox_mode、mcp_servers、skills.config。自定义 Agent 名称与内置角色(如 explorer)同名时,自定义版本优先。
示例 .codex/agents/pr-explorer.toml:
name = "pr_explorer"
description = "只读代码库探索角色,用于提出改动前收集证据。"
model = "ksyun/glm-5.1"
model_reasoning_effort = "low"
sandbox_mode = "read-only"
developer_instructions = """
始终保持探索模式:追踪真实执行路径,引用文件和符号,
除非主代理要求,否则不要提出修复建议。
优先使用快速搜索和定向文件读取,避免大范围扫描。
"""也可以在 config.toml 中通过 [agents.roles.<name>] 声明角色并指定配置文件:
[agents.researcher]
description = "研究型角色,负责方案调研。"
config_file = "./agents/researcher.toml"
nickname_candidates = ["Herodotus", "Ibn Battuta"]全局子代理设置位于 config.toml 的 [agents] 表:
[agents]
enabled = true # 启用多代理工具(默认 true)
max_concurrent_threads_per_session = 4 # 每会话最多并发的子代理线程数
default_subagent_model = "ksyun/glm-5.1" # 子代理默认模型
default_subagent_reasoning_effort = "low" # 子代理默认推理强度
interrupt_message = true # 中断子代理时是否记录可见消息未配置模型与推理强度时,子代理继承主代理的模型与推理强度;显式派生请求的配置优先于 [agents] 默认值。
适合并行子代理的任务:代码库探索、测试与分诊、日志分析、资料汇总等读密集型工作
谨慎用于写密集型并行:多个子代理同时改代码可能产生冲突,增加协调成本
提示词中明确分工与所有权(如"子代理 A 负责认证模块,子代理 B 负责数据库层")可减少冲突
MCP(Model Context Protocol)是 AI 工具集成标准,为 AI 代理连接外部工具、数据库和 API 提供统一协议:
MCP 服务器是一个进程或远程服务,暴露工具(tools)、资源(resources)和提示(prompts)
作为 MCP 客户端连接服务器,将工具调用路由到对应服务器
MCP 工具命名遵循 <服务器名>_<工具名> 的模式
登录 KSXC 后会自动配置金山云内部 ksc-local-mcp MCP 服务器,提供内部服务接入能力。
# 本地(stdio)服务器
ksxc mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path
# 远程(streamable HTTP)服务器
ksxc mcp add remote-api --url https://example.com/mcpksxc mcp list 可查看已配置服务器,ksxc mcp login <名称> 可完成 OAuth/企业认证。
在 ~/.ksxc/config.toml 中配置:
[mcp_servers.filesystem]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/path"]
env = { MY_ENV_VAR = "value" }
enabled = true
[mcp_servers.remote-api]
url = "https://example.com/mcp"
bearer_token_env_var = "MY_TOKEN"
http_headers = { Authorization = "Bearer ..." }本地(stdio)服务器支持 command、args、env、cwd、enabled 等字段;远程服务器通过 url(streamable HTTP)+ 可选 bearer_token_env_var、http_headers 配置。
/mcp 交互式管理在 TUI 中输入 /mcp 打开交互式 MCP 面板,可查看工具数量、连接状态、认证状态,并添加/禁用服务器。
ksxc mcp list # 列出已配置的服务器在 TUI 中输入 /mcp 可查看各服务器的工具数量、连接状态、认证状态,并禁用/启用服务器。也可在配置中通过 enabled = false 关闭单个服务器。
配置文件 | 说明 |
| 用户全局配置(主配置,TOML 格式) |
| 项目配置(位于项目根目录下) |
| 项目规则(见 7.5) |
配置是合并的而不是替换的:全局配置与项目配置会叠加,项目配置优先级更高。
KSXC_HOME 环境变量可覆盖主目录(默认 ~/.ksxc);
# 模型选择(KSXC 默认从后端动态发现模型)
model = "ksyun/glm-5.1"
# 审批策略:on-request(默认,模型决定何时询问)/ untrusted / granular / never
approval_policy = "on-request"
# 沙箱模式:read-only / workspace-write / danger-full-access
sandbox_mode = "workspace-write"
# 附加指令文件(相对项目根或绝对路径)
instructions = ["CONTRIBUTING.md", "docs/guidelines.md"]
# MCP 服务器
[mcp_servers.filesystem]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/path"]变量 | 说明 |
| CLI的SK 密钥(首次验证后自动持久化) |
| 数据主目录(默认 |
| 设为 1/true 跳过启动时自动更新检查 |
执行敏感操作时会请求你的许可,主要控制维度:
控制项 | 说明 |
审批策略 |
|
沙箱模式 |
|
execpolicy 规则 | 基于 |
TUI 中遇到权限请求时可选择:
Once — 本次允许
Always — 一直允许(保存规则)
Reject — 拒绝
非交互运行时可用自动审批参数:
# 通过自动审查批准请求(在 workspace-write 沙箱中运行)
ksxc exec --approve-for-me "重构这个模块"
# 跳过所有确认并不使用沙箱(仅限受控/隔离环境,极其危险)
ksxc exec -y "自动化任务"-y(--dangerously-bypass-approvals-and-sandbox)仅应在有外部沙箱的环境中使用,日常不建议。
在项目根目录创建 AGENTS.md 文件,为 KSXC 提供项目特定指令,类似 Cursor 的规则文件。
在 TUI 中输入 /init,KSXC 会扫描项目并生成或更新 AGENTS.md。
# TypeScript 项目规则
## 项目结构
- `packages/` - 所有工作区包
- `infra/` - 基础设施定义
## 代码规范
- 使用 TypeScript 严格模式
- 共享代码放在 `packages/core/`
## 构建命令
- 构建: `pnpm run build`
- 测试: `pnpm test`位置 | 作用域 |
项目根目录 | 项目级 |
| 全局级 |
会话会自动保存到本地(~/.ksxc/ 下),重启 CLI后可随时恢复。
# 恢复上次会话(选择器)
ksxc resume --last
# 恢复指定会话
ksxc resume <会话ID或名称>
# 分支(fork)指定会话
ksxc fork <会话ID或名称>TUI 内斜杠命令:
/resume 恢复历史会话(选择器)
/fork 分支当前会话
/archive 归档当前会话
/delete 删除当前会话
/new 新建会话命令行管理命令:
ksxc archive <会话ID或名称> # 归档
ksxc unarchive <会话ID或名称> # 取消归档
ksxc delete <会话ID或名称> # 删除
ksxc queue --thread <会话ID> --message "消息" # 向已有会话排队发送消息在 TUI 中输入 /export 将当前对话导出为 Markdown。
在 TUI 中输入 /theme 选择语法高亮主题。
TUI 内输入 /keymap 可查看和自定义全部快捷键。常用默认键位如下。
快捷键 | 功能 |
| 打开会话侧栏 |
| 查找会话 |
| 聚焦活动 |
| 查看警告 |
| 打开外部编辑器 |
| 复制 |
| 清屏 |
快捷键 | 功能 |
| 中断当前回合 |
| 降低推理强度 |
| 提高推理强度 |
| 提交消息 |
| 排队消息(不立即提交) |
| 快捷键提示 |
| 上一条输入历史 |
| 下一条输入历史 |
快捷键 | 功能 |
| 行首 |
| 行尾 |
| 左/右移一个字符 |
| 上/下移一行 |
| 删除到行首 |
| 删除到行尾 |
| 删除前一个词 |
| 粘贴 |
| 换行 |
支持 Vim 模式(/vim 切换),在 Vim 模式下可用 u 撤销、Ctrl+R 重做、dd 删除行等标准操作。
ksxc exec [选项] "提示词"参数 | 说明 |
| 以 JSONL 格式输出事件流,适合程序解析 |
| 将最后一条消息写入指定文件 |
| 不持久化会话(不写盘) |
| 允许在非 Git 仓库中运行 |
| 配置包含未知字段时报错 |
| 指定模型 |
| 附加图片 |
| 指定工作目录 |
| 在新 Git worktree 中运行 |
| 自动审查批准权限请求 |
| 跳过所有确认并不使用沙箱(危险) |
exec 支持子命令:ksxc exec resume <id> 恢复会话继续执行、ksxc exec fork <id> 分支会话执行。
# 对当前仓库的改动运行代码审查
ksxc review# 将 Agent 产出的最新 diff 以 git apply 应用到工作区
ksxc applyksxc # 启动 TUI
ksxc "提示词" # 带初始提示启动 TUI
ksxc login # 登录
ksxc logout # 退出登录
ksxc exec "提示词" # 非交互运行
ksxc review # 代码审查
ksxc resume --last # 恢复上次会话
ksxc fork <id> # 分支会话
ksxc mcp add / list # MCP 管理
纯净模式