Skip to Content
五. 工作流17 · 终端使用

17 · 终端使用

Trae 内置终端不是普通的终端——它”看”得见你在敲什么、“理”解得你在做什么,甚至能在你出错时主动伸手拉一把。


01 为什么终端需要 AI 感知

在传统 IDE 中,终端和编辑器是两回事。你在终端里敲命令,编辑器不知道你在做什么;你在编辑器里改代码,终端不知道你改了哪里。两边各管各的。

Trae 的终端不一样。它的核心设计理念是:

终端不再是 IDE 的附件,而是 AI 理解你工作流的一个传感器。

AI 能看到:

  • 你当前在哪个目录
  • 你刚刚执行了什么命令
  • 命令的输出结果(报错、警告、成功)
  • 你打开了哪些 session(多个终端标签)

这些信息不再是”隔离的”——它们自动汇入 AI 的上下文,变成 Chat、Builder、SOLO 模式中 AI 理解你意图的原材料。

心智模型:传统终端的输出是给你看的;Trae 终端输出同时给 AI 看。AI 像坐在你旁边的同事,一直在瞟你的终端屏幕——不是偷窥,是帮你盯着。


02 内置终端基础

打开终端

操作快捷键说明
打开/关闭终端面板 Ctrl+ “(反引号)切换终端显示
新建终端标签Cmd+T在终端面板中新建 tab
切换终端标签Ctrl+Tab在多个终端标签间切换
关闭当前标签Cmd+W关闭当前终端
拆分终端(Split)Cmd+\左右分屏,同时看两个终端

终端支持

  • Shell 类型:继承系统默认 shell(zsh / bash / fish / PowerShell / cmd)
  • 多标签:每个标签独立工作目录、独立会话
  • 富文本输出:颜色、ANSI 转义序列完整支持
  • 链接可点击:文件路径、URL 自动识别为可点击链接
  • 集成编辑器Cmd+click 文件路径可直接打开到编辑器

03 AI 感知的终端:它”看到”你在做什么

AI 能看到什么

Trae 的 AI 模型持续观察终端的状态——不是记录屏幕内容,而是提取结构化的信息:

AI 对终端的感知清单 ├── 当前工作目录(pwd) ├── 已执行的命令历史(按顺序) ├── 每条命令的退出码(0=成功,非0=出错) ├── 输出中的重要信号 │ ├── ERROR / error / Error │ ├── Traceback (Python 异常) │ ├── failed / FAILED │ ├── warning / Warning │ └── 编译/构建错误行 └── 活跃的进程(如 dev server、watch 模式)

这有什么用

场景一:你在终端里 npm run dev 报错,AI 已经看到了。

你:(什么也没说,切到 Chat) Chat AI:我检测到你在终端中运行 npm run dev 时遇到了模块安装错误 `Module not found: can't resolve 'react-dom'`。 需要我帮你安装 react-dom 吗?

场景二:你在终端里先 cd backendnpm start,然后问 AI”帮我在这个项目里加一个路由”——AI 知道你当前在 backend 目录下,知道这是一个 Node.js 后端项目,不会把前端路由代码写进去。

AI 感知 ≠ 屏幕录制

需要强调的是,Trae 不是在做”屏幕录制”或”按键记录”。AI 感知的是终端的结构化状态——目录、命令、退出码、关键信号——而不是你打了每个字符的过程。它关心的是你最后做了什么、结果怎样,不是你打字的速度和节奏。


04 AI 替你执行命令

除了”看”,Trae 的 AI 还能直接替你执行命令。这一点在 SOLO 模式和 Builder 模式中体现得最明显。

交互方式

方式操作效果
自然语言描述”帮我安装 tailwindcss”AI 分析 → 执行 npm install -D tailwindcss
让 AI 补全命令在终端输入 npm ru → 触发 AI 补全建议 npm run dev / npm run build
AI 主动执行SOLO 模式下自动跑测试npm test 在后台自动执行
命令审核AI 准备执行命令前弹出确认你确认后再执行

安全机制

AI 执行命令不是”无脑跑”。它遵守一套优先级规则:

┌─ AI 执行命令的安全层级 ──────────────┐ │ │ │ 只读操作(读取、查看) ← 直接执行 │ │ ├── git status / diff / log │ │ ├── ls / cat / head │ │ ├── pwd / which / type │ │ └── npm ls / pip list │ │ │ │ 一般操作(安装、构建) ← 确认后执行│ │ ├── npm install / yarn add │ │ ├── npm run build / tsc │ │ └── git add / git commit │ │ │ │ 危险操作(删除、覆盖) ← 必须你手动│ │ ├── git push / git rebase --force │ │ ├── rm -rf / mv (覆盖) │ │ └── 生产环境部署命令 │ │ │ └──────────────────────────────────────┘

实际例子

你:帮我把这个项目跑起来 AI:先看看项目结构... → package.json 中有 start 脚本 → 运行 npm install(已安装,跳过) → 运行 npm run dev ┌─────────────────────────────────┐ │ ⚠ AI 将执行: npm run dev │ │ [确认执行] [修改命令] [取消] │ └─────────────────────────────────┘ 你点确认 → 终端自动运行 npm run dev → dev server 启动 → 右侧 Webview 预览

05 错误检测与自动修复建议

这是 Trae 终端最受欢迎的功能之一——AI 不只看你出错了,它还会告诉你错在哪里、怎么修。

工作流程

你在终端执行命令 命令报错(退出码非 0) AI 实时捕获输出 AI 分析错误类型 ├── 语法错误 → 指出具体行号 ├── 依赖缺失 → 建议安装命令 ├── 配置错误 → 指出配置文件 ├── 类型错误 → 建议修复类型 └── 运行时错误 → 分析调用栈 终端内显示修复建议 "检测到错误,需要我帮你修复吗?" 确认 → AI 自动执行修复

典型场景

场景:Python 导入错误

$ python app.py Traceback (most recent call last): File "app.py", line 3, in <module> import requests ModuleNotFoundError: No module named 'requests' ──────────────────────────────────────────── 🔍 AI 检测到错误:缺少 requests 模块 建议修复:pip install requests [一键安装] [查看详情] ────────────────────────────────────────────

点「一键安装」→ 终端自动执行 pip install requests

场景:TypeScript 类型不匹配

$ npx tsc src/user.ts:42:3 - error TS2322: Type 'string | undefined' is not assignable to type 'string'. ──────────────────────────────────────────── 🔍 AI 检测到错误:类型 'string | undefined' 不能赋值给类型 'string' 位置:src/user.ts:42 建议:使用可选链或默认值处理 undefined [显示修复方案] [打开文件到指定行] ────────────────────────────────────────────

错误修复的边界

AI 对以下类型的错误修复准确率较高

错误类型修复准确率AI 能做到
缺少依赖极高自动安装正确版本
语法错误定位并修复
类型错误补类型标注或调整类型
配置错误(常见工具)修复 tsconfig / webpack 等
运行时异常分析堆栈、建议修复方向
业务逻辑错误需要人来判断意图

⚠️ 重要:AI 的修复建议是”参考”不是”指令”。特别是涉及业务逻辑的错误——AI 可能把”密码验证失败”当成代码 bug 来修,而实际上是你输错了密码。每次自动修复前,看清 AI 的分析再做决定。


06 终端输出自动进入上下文

这是终端和 Trae 其他模式之间最深的集成点。

当你切换到 Chat

你在终端报了错,然后切到 Chat 问”这个怎么回事”——Chat AI 已经知道了你的终端状态。你不必手动复制粘贴错误信息。

你:报错了,帮我看看 (你没有粘贴任何终端输出) AI:(已在上下文中获取到终端最近输出) 我注意到你在运行 `npm run build` 时遇到了 webpack 打包错误: - 错误文件:src/components/Header.tsx:24 - 错误类型:未使用的变量 'unusedVar' - 解决方案:删除未使用的变量或添加下划线前缀

当你使用 SOLO Builder

Builder 在创建项目时,会在终端中自动跑一系列命令。每一步的输出都实时流回 AI:

Builder 创建项目 AI 执行: npx create-react-app my-app --template typescript 终端输出实时回流 → AI 读取到 "Success! Created my-app" AI 继续下一步: cd my-app && npm install @tanstack/react-query 终端输出回流 → AI 检查退出码 → 0(成功) 继续下一步...

这意味着 Builder 不需要”猜”命令有没有成功——它看到成功的结果就继续,看到报错就自动调整方法重试。

数据流全景

终端执行命令 ┌─────────────┐ │ 终端输出流 │──→ 你看到(实时显示) └──────┬──────┘ ┌─────────────┐ │ AI 上下文 │──→ AI 理解并响应 │ 缓存(最近N条│ │ 命令+输出) │ └─────────────┘ ┌─────────────┐ │ Chat/Builder│──→ 你不用复制粘贴 │ /SOLO 会话 │ AI 已经有了上下文 └─────────────┘

07 自定义终端配置文件

Trae 终端基于 VS Code 的终端架构,支持完整的 Profile 系统。你可以配置多个终端类型,一键切换。

配置 Profiles

.trae/settings.jsonsettings.json 中添加:

{ "terminal.integrated.profiles.windows": { "PowerShell": { "path": "pwsh", "args": ["-NoLogo"] }, "Command Prompt": { "path": "cmd" }, "Git Bash": { "path": "C:\\Program Files\\Git\\bin\\bash.exe" } }, "terminal.integrated.profiles.osx": { "zsh (默认)": { "path": "zsh" }, "bash": { "path": "bash" }, "Python REPL": { "path": "python3" } }, "terminal.integrated.defaultProfile.osx": "zsh (默认)" }

针对不同项目的 Profile 策略

一个实用的技巧是:不同项目类型使用不同的默认 Profile。

项目类型推荐 Profile理由
Node.js 前端zsh/bash最通用的 shell,npm 脚本兼容好
Python 后端Python REPL 或 zsh快速切换交互式 Python 环境
.NET / C#PowerShellWindows 生态最佳体验
Go / Rustzsh轻量编译型语言,通用 shell 够用
多容器项目Docker Terminal直接进入容器内终端

启动时自动执行的命令

你还可以配置终端启动时自动执行的命令:

{ "terminal.integrated.cwd": "${workspaceFolder}", "terminal.integrated.env.osx": { "NODE_ENV": "development" }, "terminal.integrated.shellArgs.osx": [] }

这样每次打开终端,默认就在项目根目录,环境变量也自动设置好了。


08 命令历史与 AI 学习

这是 Trae 终端一个容易忽略但非常有长期价值的功能。

AI 从你的命令历史中学习什么

Trae 会分析你的终端使用习惯,形成对”你这个人”的建模:

AI 对用户终端的长期记忆 ├── 你常用哪些命令 │ ├── npm / yarn / pnpm(偏好哪个包管理器) │ ├── git 工作流(rebase 还是 merge) │ └── 构建工具(webpack / vite / tsc) ├── 你的项目目录习惯 │ ├── 前端项目从哪个目录启动 │ └── 后端项目常用的端口号 ├── 你偏好的启动方式 │ ├── npm run dev │ ├── docker-compose up │ └── python manage.py runserver └── 你常犯的错误 ├── 总会忘记装某个依赖 └── 某种模式容易打错命令

学习的实际效果

你用 Trae 时间越长,AI 对你的终端习惯越了解:

第一周:

你:帮我跑项目 AI:好的,我看到 package.json,要执行 npm run dev 吗?

一个月后:

你:帮我跑项目 AI:根据你之前的习惯,这个项目你通常先用 `npm install`, 然后用 `npm run dev`(端口 3000)。 这次要从头开始还是继续之前的工作? 需要我一起执行吗?

三个月后:

你:npm run build 报错了 AI:这个错误你上周遇到过三次,都是因为 .env.local 中缺少 API_KEY 变量。要我把上次的修复方案直接应用吗?

隐私控制

如果你对 AI 学习终端历史有顾虑,可以在设置中控制:

{ "trae.terminal.aiLearning": { "enabled": true, "learnFromHistory": true, "learnFromErrors": true, "maxHistoryLines": 1000 } }

设置 "enabled": false 可以完全关闭 AI 从终端学习的能力。


09 快捷键与效率技巧

终端内的快捷键

快捷键功能
Ctrl+ “(反引号)切换终端面板
Cmd+K清除终端内容
Cmd+↑ / Cmd+↓滚动到终端顶部/底部
Cmd++ / Cmd+-放大/缩小终端字体
Cmd+F在终端中搜索
Cmd+Shift+F在整个工作区搜索(包括终端输出)
Cmd+click 文件路径在编辑器中打开对应文件
Cmd+D选择当前终端中的输出行

实用工作流

1. 把 AI 当终端笔记本

你:帮我记录一下这个项目常用的命令 AI:根据你的使用情况,这个项目的常用命令是: - npm run dev → 启动开发服务器(端口 5173) - npm run build → 构建生产版本 - npm run test:watch → 持续运行测试 - npm run lint → 代码检查 要我创建一个 .trae/commands.md 文件保存下来吗?

2. 一键回到上次出错的位置

报错了 → 点 AI 的错误提示 → 自动跳转到编辑器对应行号。你不用在终端和编辑器之间来回切换查找行号。

3. 用自然语言运行复杂命令

你:帮我在 8080 端口跑一个 Python 的 HTTP 服务器,只允许本地访问 AI: 执行 python3 -m http.server 8080 --bind 127.0.0.1 ┌─────────────────────────────────┐ │ ⚠ AI 将执行: python3 -m │ │ http.server 8080 --bind │ │ 127.0.0.1 │ │ [确认执行] [修改命令] [取消] │ └─────────────────────────────────┘

你不用记住 http.server 模块怎么拼、--bind 参数怎么写——用自然语言描述,AI 翻译成准确的命令。


10 常见陷阱

陷阱现象解决方案
AI 误判终端上下文你刚在 A 项目跑完命令,切到 B 项目,AI 还在用 A 的上下文终端的每个标签独立跟踪,用 Cmd+C 清空当前标签的命令缓存
修复建议太激进AI 检测到一个 warning 就建议”修复”,但这个 warning 是无害的在提示中选择”忽略”,或告诉 AI “这个 warning 我已知,不需处理”
长输出截断命令输出太长(如编译日志),AI 只看到尾部用 grep 过滤关键行再输出,或把输出重定向到文件 > build.log
命令执行权限AI 提议执行的命令你不确定安全确认对话框中点”修改命令”查看并调整参数,不要直接确认
多终端混乱开了 5-6 个终端标签,AI 搞混了焦点每个标签起一个有意义的名字(双击标签编辑),让 AI 知道”到哪个标签执行”

11 小结

要点说明
AI 感知终端不再是黑盒——AI 实时感知目录、命令、退出码和关键输出
命令执行AI 可以替你执行命令,三层安全机制保障(只读→确认→手动)
错误修复捕获错误→分析原因→建议修复→一键应用,闭环效率极高
上下文贯通终端输出自动进入 Chat/Builder/SOLO,彻底告别复制粘贴
配置文件Profiles 系统支持多种 shell 环境,按项目自由切换
AI 学习长期使用后 AI 越来越懂你的习惯,建立”终端画像”
隐私可控所有 AI 学习行为均可关闭

心智模型:Trae 终端不是一个”更漂亮的终端”——它是一个配了 AI 副驾驶的终端。你自己握着方向盘决定去哪里,但副驾驶一直看着路况,在你走神时提醒你、在你犯错时帮你纠正。它不会抢方向盘,但会让这段路好走很多。


下一篇:18 项目分析 —— Trae 的代码库分析能力,AI 如何读懂你的整个项目。

注:下一篇链接中的 18 项目分析为预留章节,内容待补充。