Skip to content
FunCoding

Search

Search docs, agents, posts, Skills and MCP servers

CLI 与 TUI

Cline CLI:交互 TUI 与无头模式、全部命令与全局标志、JSON 输出、命令权限、配置文件布局、定时任务(cron)和连接器(Telegram/Slack/Discord 等)。

Cline CLI 既能做交互式终端会话,也能做自动化的无头工作流。前提:安装了 CLI(npm i -g cline),并已认证提供商(cline auth,可用 Cline 提供商、ClinePass 或你自己的提供商密钥)。下文的标志、命令和默认值来自官方文档核实时的状态,以 cline --help 为准。

# 交互会话
cline
# 立即运行一个任务
cline "refactor this module to use async/await"
# 给脚本用的结构化输出
cline --json "list TODO comments"

TUI

TUI 是 Cline 的交互式终端界面,为在终端里对话式地工作设计:提问、评审计划、批准动作并快速迭代。默认交互启动是 cline,显式 TUI 模式是 cline -i。核心 TUI 操作:

  • Tab 切换 Plan/Act
  • Shift+Tab 切换对所有动作自动批准
  • Ctrl+C 中止正在运行的一轮,再按一次退出
  • Ctrl+D 在提示为空且空闲时退出
  • Ctrl+L 清除聊天视图或当前对话
  • 斜杠命令:/settings、/model、/account、/mcp、/compact、/undo、/clear、/history、/help、/quit
  • @file 提及,为工作区提供上下文

状态区显示当前模型、上下文用量、成本、工作区/分支、git diff 统计、Plan/Act 状态,以及是否开启了全部自动批准。想要协作和批准时用 TUI;要自动化时用无头模式(--json、管道 stdin/stdout、CI 脚本)。

无头模式

用无头模式做脚本/自动化和可处理的输出。使用 --json 这样的标志、stdin 被管道输入或输出被重定向时,会触发无头模式:

调用原因
cline --json "task"JSON 输出模式
cat file | cline "task"stdin 被管道输入
cline "task" > output.txtstdout 被重定向
# CI/脚本风格的执行
git diff | cline "review these changes"
# 用 JSON 解析
cline --json "summarize this changelog" | jq -r '.text'

自主执行:完全无人值守的运行用自动批准:cline --auto-approve true "run tests and fix failures"。模式选择在无头运行里同样有效:cline -p "design migration plan" 先规划,cline "apply migration" 直接行动(默认)。注意:自主执行可以不再提示就修改文件和运行命令,用干净的分支并评审结果。

自动化模式:

# 把上下文管道输入
cat README.md | cline "summarize key setup steps"
git diff | cline "review for potential regressions"
# 串联任务
git diff | cline "explain these changes" | cline "write a commit message"
# 限制命令执行
export CLINE_COMMAND_PERMISSIONS='{"allow": ["npm *", "git *"], "deny": ["rm -rf *", "sudo *"]}'
# 在任务里包含图片
cline "fix the UI shown in @./design-mockup.png"
# 设置执行超时
cline --timeout 600 "run full test suite"

命令与全局标志

Usage: cline [options] [command] [prompt]
选项说明
-V, --version输出版本号
-p, --plan在 Plan 模式下运行
--json以 JSON 而不是带样式的文本输出消息
--auto-approve <boolean>为所有工具设置自动批准(默认 true;在 ACP 模式下默认 false)
-t, --timeout <seconds>可选的超时秒数(默认 0 表示无超时)
-m, --model <model-id>在所选提供商下为本会话使用的模型
-v, --verbose显示详细输出
-c, --cwd <path>工作目录
--config <path>配置目录(默认 ~/.cline/data/settings)
--data-dir <path>在该目录路径使用隔离的本地状态(默认 ~/.cline)
--thinking <level>设置推理强度:none|low|medium|high|xhigh(默认 medium)
--retries <count>停止之前允许的最大连续错误(重试)次数
--hooks-dir <path>用于运行时 hook 注入的额外 hooks 目录(默认 ~/.cline/hooks)
--acp以 Agent Client Protocol(ACP)模式运行,用于编辑器集成
-i, --tui打开交互会话的终端用户界面(TUI)
--id <session-id>按 ID 恢复已有会话
-k, --key <api-key>为本次运行覆盖 API key
-P, --provider <id>提供商 id(默认 cline)
-s, --system <system-prompt>覆盖默认系统提示
-z, --zen启动在后台 hub 里运行的会话
-h, --help显示命令的帮助

命令:

命令作用
cline(默认)启动任务或进入交互模式,如 cline "Run tests and fix failures"、echo "prompt" | cline
auth [options] [provider]认证提供商并配置所用的模型
config [options]显示或打开交互式的当前配置视图
connect [options] [adapter]连接到消息平台(见下面「连接器」)或编辑器/IDE 适配器
mcp管理 MCP 服务器
dev开发者工具和实用程序(如 cline dev log 查看 CLI 日志)
doctor诊断并修复配置问题
history|h [options]列出会话历史或管理已保存的会话
hook从 stdin 处理 hook 负载(如 cat payload.json | cline hook)
plugin管理 Cline 插件:cline plugin install <source>(别名 i),可选 --npm、--git、--force、--json、--cwd <path>(安装到 <path>/.cline/plugins 而不是全局目录)
schedule管理定时的智能体(见下面「定时」)
hub管理本地 hub 守护进程
update [options]检查更新并在有可用更新时安装
version显示 Cline CLI 版本号(也可用 cline -V)
kanban启动 Kanban 应用并退出

环境变量:

变量说明
CLINE_DATA_DIR自定义配置目录(替代 ~/.cline/data/)
CLINE_HUB_ADDRESS覆盖 hub 地址(默认 127.0.0.1:25463)
CLINE_SESSION_BACKEND_MODE强制后端模式(local、hub、remote、auto)
CLINE_SANDBOX_DATA_DIR沙盒会话存储目录
CLINE_SANDBOX启用沙盒模式
CLINE_HOOKS_DIR额外的 hooks 目录
CLINE_BUILD_ENV设为 development 启用调试功能
CLINE_DEBUG_PORT_BASENode.js inspector 的基础端口
CLINE_COMMAND_PERMISSIONS限制 shell 命令的 JSON 策略

CLINE_COMMAND_PERMISSIONS 限制智能体能执行哪些 shell 命令:allow(字符串数组,允许命令的 glob 模式;设置后只允许匹配的命令)、deny(拒绝命令的 glob 模式,拒绝规则总是优先)、allowRedirects(布尔,是否允许 shell 重定向 >、>>、<,默认 false)。

JSON 输出格式:使用 --json 时,每条消息是单独一行上的 JSON 对象,例如 {"type": "say", "text": "I'll create the file now.", "ts": 1760501486669, "say": "text"},字段:type("ask" 或 "say",消息类别)、text(消息内容)、ts(毫秒 Unix 时间戳)、say(type 为 "say" 时的子类型)、ask(type 为 "ask" 时的子类型)、reasoning(模型推理,可选)、partial(流式期间为 true)。

配置文件布局:~/.cline/data/settings/providers.json(API key 和提供商配置)、rules/(全局规则)、skills/(全局技能),~/.cline/data/teams/(团队状态)、sessions/(会话数据库,SQLite)、logs/hub-daemon.log(hub 日志),~/.cline/plugins/(全局插件,_installed/ 由 cline plugin install 管理);项目根目录的 .cline/ 含 rules/、skills/、hooks/、plugins/、mcp.json(MCP 服务器配置)和 agents.yaml(智能体定义)。

定时(Scheduling)

注意:这个功能目前只适用于 Cline SDK、CLI 和 Kanban,不适用于 VS Code 和 JetBrains 扩展。CLI 通过 hub 支持按 cron 计划运行智能体;定时的智能体跨进程重启持久,并独立于任何终端会话运行。

运行 cline schedule 打开交互菜单,用于创建和管理计划、浏览执行历史和查看性能统计:创建新计划(用 cron 时间和提示设置重复任务)、列出计划(状态和下次运行时间)、即将运行(预览接下来 10 次)、活动执行、立即触发、暂停/恢复、执行历史(状态、时长、token 和成本)、统计(成功率、平均时长、上次失败)、删除。

用标志创建:

cline schedule create "PR summary" \
  --cron "0 9 * * MON-FRI" \
  --prompt "List all open PRs and their review status" \
  --workspace /path/to/repo \
  --model anthropic/claude-sonnet-4-6

管理:cline schedule list、trigger <schedule-id>、pause <schedule-id>、resume <schedule-id>、delete <schedule-id>、executions <schedule-id>。

cron 表达式计划
*/5 * * * *每 5 分钟
*/15 * * * *每 15 分钟
0 * * * *每小时
0 */6 * * *每 6 小时
0 0 * * *每天午夜
0 9 * * *每天 9 点
0 9 * * 1-5每个工作日 9 点
0 9 * * 1每周一 9 点
0 0 1 * *每月 1 日

例子:每日站会总结(--cron "0 8 * * MON-FRI",提示总结昨天合并的 PR、当前评审中的 PR 和分配给团队成员的开放 issue);每周依赖检查(--cron "0 10 * * MON",检查过时的 npm 依赖,对有安全漏洞的创建更新分支并开 PR);代码库健康报告(--cron "0 6 * * MON",分析没有测试覆盖的文件、超过 30 天的 TODO/FIXME 和超过 100 行的函数)。结合连接器,可以把结果路由到消息平台:先 cline connect telegram -k $BOT_TOKEN,再创建计划(如每天 8 点「Summarize overnight activity in the repo」的 Morning briefing)。定时需要 hub,创建计划时它自动启动。

连接器(Connectors)

注意:这个功能目前只适用于 Cline CLI。连接器让你从消息平台与智能体聊天:每条收到的消息创建或继续一个智能体会话,智能体的回复被发回对话。运行 cline connect 打开交互式向导,引导你完成平台选择、凭据输入、安全配置和高级选项(提供商、模型、系统提示、智能体模式)。

平台直接命令所需凭据
Telegramcline connect telegrambot 令牌
Slackcline connect slackbot 令牌,加 webhook 签名密钥/基础 URL 或 socket 应用令牌
Discordcline connect discord应用 ID、bot 令牌、公钥、基础 URL
Google Chatcline connect gchat服务账号凭据 JSON、基础 URL
WhatsAppcline connect whatsapp电话号码 ID、访问令牌、应用密钥、验证令牌、基础 URL
Linearcline connect linearAPI key、webhook 签名密钥、基础 URL

Telegram:在 Telegram 里与 @BotFather 聊天,发送 /newbot,输入显示名和以 bot 结尾的用户名(在 Telegram 全局唯一),BotFather 回复你的 bot 令牌;然后运行 cline connect telegram -k <BOT-TOKEN>(连接器从令牌发现 bot 用户名,只有需要覆盖时才用 --bot-username),在 Telegram 里搜索你 bot 的用户名并发消息,智能体处理后在聊天里回复。安全:默认任何找到你 bot 的人都能给它发消息,而它会在你的机器上执行任务;cline connect 向导会询问是否限制 Telegram 访问。先给 @userinfobot 发消息获取你的数字用户 ID,然后用向导(选 Telegram、输入 bot 令牌、对访问限制回答 yes、输入你的用户 ID),或手动传标志:cline connect telegram -k <BOT-TOKEN> --allowed-user-id 12345。只有在需要自定义访问逻辑时才用 --hook-command:hook 通过 stdin 收到每条进入的消息及发送者信息,你的脚本返回 {"action": "allow"} 或 {"action": "deny", "message": "reason"}。没有 --allowed-user-id 或 --hook-command 时,一切都被自动批准,所以要限制能到达运行中 Cline 实例的 Telegram bot。

Slack:支持 webhook 模式和 socket 模式;每个 Slack 线程对应一个智能体会话,所以智能体在线程内保持对话上下文。Webhook 模式需要 bot 令牌、签名密钥和公共基础 URL:cline connect slack --bot-token <BOT-TOKEN> --signing-secret <SECRET> --base-url <URL>,并把 Slack 应用的事件订阅和交互请求 URL 配置为 <URL>/api/webhooks/slack。Socket 模式需要 bot 令牌和带 connections:write 范围的应用级令牌:cline connect slack --bot-token <BOT-TOKEN> --app-token <APP-LEVEL-TOKEN>,要在 Slack 应用里启用 Socket Mode;它不需要公共请求 URL,且只限单工作区。

Discord:需要 Discord 应用 ID、bot 令牌、公钥和公共基础 URL。连接器在 /api/webhooks/discord 监听 Discord 交互,并启动 Discord 网关监听器处理提及、回复、反应和私信。步骤:在 Discord Developer Portal 创建应用,在 General Information 复制 Application ID 和 Public Key,在 Bot 创建 bot 并重置、复制令牌,想让普通消息、回复和私信包含文本内容就启用 Message Content Intent;暴露公共基础 URL(本地开发用 ngrok 这类隧道,如 ngrok http 8788,复制 HTTPS 转发 URL);启动连接器:

cline connect discord \
  --application-id <ID> \
  --bot-token <TOKEN> \
  --public-key <KEY> \
  --base-url <URL> \
  --port 8788 \
  --cwd /path/to/repo \
  --enable-tools

(--app-id 是 --application-id 的别名,--token 是 --bot-token 的别名;--enable-tools 允许智能体从 Discord 检查文件、运行命令、编辑代码和准备 PR,如果 bot 只用于聊天就省略它。)在 Developer Portal 把 Interactions Endpoint URL 设为 <base-url>/api/webhooks/discord,可以用 curl <base-url>/health 验证连接器可达;在 OAuth2 > URL Generator 选 bot 和 applications.commands 范围,授予发送消息和读取消息历史的权限,打开生成的 URL 把 bot 装进测试服务器;在服务器频道里提及 bot、在 bot 创建的线程里回复或私信 bot,每个 Discord 对话保持自己的智能体会话和上下文。在 Discord 里可发这些命令:/help 或 /start(显示连接器帮助)、/new 或 /clear(为这个 Discord 对话开始全新会话)、/whereami(显示线程、频道、私信状态、cwd、workspaceRoot、工具和 yolo 状态)、/tools [on|off|toggle](查看或更改是否允许仓库/文件/shell 工具)、/yolo [on|off|toggle](查看或更改自动工具批准)、/cwd [path](查看或更改这个对话的工作目录)、/schedule create/list/trigger/delete(管理以这个对话为目标的定时工作流)、/abort(停止当前任务)、/exit(停止连接器)。普通消息被当作智能体任务;任务已在运行时,普通消息会引导当前任务。Discord 安全:默认任何能触及 bot 的人都能让它运行任务,用 --hook-command 限制访问,hook 以 discord:user:123456789 这样的参与者键收到 Discord 用户。

其他平台:Google Chat 需要服务账号凭据 JSON 文件和公共基础 URL:cline connect gchat --credentials <JSON> --base-url <URL>;WhatsApp 需要电话号码 ID、访问令牌、应用密钥、webhook 验证令牌和公共基础 URL:cline connect whatsapp --phone-id <ID> --token <TOKEN> --app-secret <SECRET> --base-url <URL>;Linear 需要 API key、webhook 签名密钥和公共基础 URL:cline connect linear --api-key <KEY> --signing-secret <SECRET> --base-url <URL>。

管理连接器:cline connect --stop 停止所有连接器,cline connect telegram --stop 停止指定的一个。Hook 命令协议:--hook-command 模式适用于所有连接器,脚本通过 stdin 收到 JSON 负载:{"payload": {"actor": {"participantKey": "telegram:id:12345", "displayName": "User Name"}, "message": "The incoming message text"}},返回 {"action": "allow"} 或 {"action": "deny", "message": "reason"}。运行多个连接器:多个连接器可以同时运行,它们共享同一个 hub(如一个终端里 cline connect telegram -k $TELEGRAM_TOKEN,另一个里 cline connect slack --bot-token $SLACK_TOKEN --signing-secret $SECRET --base-url $URL);连接器需要 hub,没有自动启动时用 cline hub start。