文档

工作区与机器

项目告诉 Mework 一个任务可以在哪些目录里工作:这台电脑上、WSL 里,或经 SSH 连接的机器上。在这里设置项目和机器,再用文件、审阅和终端面板在其中工作。

项目与工作区

项目是一组有名字的工作区,含 1 到 16 个;一个工作区就是某台机器上的一个目录。模型的文件、搜索和 shell 工具以任务的工作区为安全边界。

工作区没有单独的名字:应用里处处用它的绝对路径来显示,包括工作区标签、终端/预览/文件的工作区菜单、预览和审阅的标签页,以及对话设置里的分节;地方不够时从中间省略。

新建项目

  1. 在侧栏点 项目 旁边的 新建项目。
  2. 在 工作区 下打开这一行的机器选择,选 本机、某个 WSL 发行版或某台 SSH 机器,再点 选择目录…。添加工作区 再加一行,机器不限。
  3. 可选:填写 显示名称(默认用第一个工作区的文件夹名),然后点 创建项目。

编辑、排序与删除

  • 编辑:项目的 ⋯ 菜单 → 编辑项目…。可以改名,增删第 2 到第 16 个工作区。第一个工作区代表这个项目,不能更换,除非它所在的机器已被删除。
  • 默认预设:⋯ → 默认对话预设 设置项目的 + 按钮使用的预设;再选一次即可清除。
  • 排序:拖动项目,或拖动项目内的任务。
  • 删除:点垃圾桶图标,再确认。这会把项目连同它的全部任务从 Mework 永久移除;它目录里的文件一个也不动。

工作区编号

任务的工作区从 1 开始编号:先是项目的工作区,按顺序排;再是任务的附加工作区。模型用编号指定工作区,路径一律在指定的工作区内解析。输入框上方的工作区标签只决定分支标签、Git 状态和新终端用哪个工作区。

每个工作区都有自己的 .mework 文件夹:任务可以使用它所有工作区的技能、MCP 服务器和钩子,每个工作区也各有自己的项目记忆。

临时项目

没选项目就发出的任务会归到 临时项目,并在 Mework 的数据文件夹里得到一个自己的空文件夹。

注意 删除临时任务时,它的文件夹也会删除,模型写进去的东西一并消失。

机器

工作区可以在 本机(运行 Mework 的这台电脑)、某个 WSL 发行版(仅 Windows)或你添加的 SSH 机器上。WSL 或 SSH 机器上的工作区和本地工作区一样,有自己的技能、MCP 服务器和钩子,在那台机器上读取和运行。机器菜单里机器旁边的齿轮({name} 的设置)打开它的 shell 设置,SSH 机器还有连接信息。

添加 SSH 机器

  1. 打开项目对话框(新建项目,或 ⋯ → 编辑项目…)。
  2. 在某个工作区行打开机器选择 → SSH → 添加 SSH 机器…。
  3. 填好字段,点 保存。Mework 会立即连接,查找它上面的 shell,所以接受主机密钥、输入密码这类询问通常在这一步首次出现。
字段 填什么
名称 Mework 显示的名字,如 devbox
主机 user@hostname、hostname,或 ~/.ssh/config 里的 Host 别名
端口(空 = 22) SSH 端口
身份文件(可选) 私钥路径,作为 ssh -i 传入;留空由 OpenSSH 自行选择

Mework 使用这台电脑上的 OpenSSH,你的 ~/.ssh/config、密钥和 ssh-agent 都会生效;用密钥或 ssh-agent 登录不会询问你。连接需要你输入时,Mework 会在应用里问你。第一次遇到某台机器的主机密钥时,它显示密钥指纹,请你确认接受,接受的密钥会加入 ~/.ssh/known_hosts;接受之后又变了的主机密钥一律拒绝。机器要求密码或密钥口令时,Mework 在连接时向你询问,并把它留在内存里直到 Mework 退出;它不在磁盘上保存任何密码或密钥。那台机器需要有 /bin/sh(Unix)或 Windows PowerShell 5.1(Windows),Git 功能还需要 git。

要删除机器,在它的设置里点 删除。它上面的每个工作区,包括项目的第一个工作区,都会显示 已删除的机器 并停止工作,直到你在 编辑项目… 里为它重新选择机器和目录,或重新附加。这些工作区的环境变量和沙箱设置也随之删除。

Mework 远程代理

第一次使用某台 SSH 机器时,Mework 会在那台机器的 ~/.mework/remote/ 下安装一个小程序 mework-remote,并与它保持一条连接。有了它,终端和开发服务器在网络中断时继续运行,文件面板、预览、沙箱和审阅面板也能用于这台机器。退出 Mework 会关闭连接,机器上不留下任何仍在运行的东西。

如果代理无法运行,例如主目录挂载为 noexec,模型的工具、终端和 Git 状态仍然可用,但文件面板、预览、沙箱和审阅面板不可用。在那台机器的登录环境里设置 MEWORK_REMOTE_ROOT,可以把代理装到别处;在 Mework 自身的环境里设置 MEWORK_REMOTE_AGENT=off,则始终不用代理。

Shell

Mework 在每台机器上按下面的顺序查找 shell,并提供对应的 shell 工具(bash、zsh、sh、powershell):

系统 Shell
Windows PowerShell(有 pwsh 7 就用它,否则用 Windows PowerShell 5.1)、Bash(Git Bash)
macOS zsh、Bash、sh
Linux 与 WSL Bash、zsh、sh

装了新的 shell 后,在机器设置里点 重新探测 shell。在 WSL 和 SSH 机器上,代理 shell 决定模型的文件工具和语言服务器在哪个 shell 里运行。

附加工作区

要给单个任务再加一个目录而不改动它的项目,在输入框上方点 附加工作区,选机器,再选目录。它成为任务的下一个编号工作区。标签上的齿轮打开它的环境变量,× 移除它。

每个任务最多 32 个。附加工作区可以开终端、出现在文件面板里,但没有 Git 状态和审阅页。分叉、自动压缩后的续接任务和 从此消息分支 都保留原任务的附加工作区;分叉和续接任务还与原任务共用工作树。

环境变量

每个工作区有自己的环境变量和沙箱,在这个目录里工作的所有任务都使用它们。在工作区标签的菜单里点工作区旁边的齿轮即可打开。每行写一条 KEY=value:

API_KEY=value
HTTP_PROXY=http://127.0.0.1:7890

改动随输入生效;某一行不合法时会标出来,保存的仍是上一个合法版本。这些变量进入在这个工作区里执行的每条命令,无论在哪台机器上:模型的 shell 命令、钩子命令、WSL 或 SSH 工作区的 MCP 服务器,以及你的终端。名字像密钥的变量进不了沙箱,终端从不在沙箱里运行。用工作树的任务,使用工作树来源目录的设置。

工作树

在发出第一条消息前勾选分支标签旁边的 工作树,任务就会在一份自己的 Git 检出上运行,而不是在项目共用的目录里。

发出第一条消息时,Mework 建立 <repo>/.mework/worktrees/conversations/<id>,在新分支 mework/conv/<id> 上从工作区当前的 HEAD 检出。这个任务的模型、终端和审阅页都使用工作树。

注意 工作树从最近一次提交开始。未提交和未跟踪的文件不会出现在工作树里。

  • 工作区必须是 Git 仓库的根目录,那台机器上要装有 git。
  • 勾选框作用于工作区标签里选中的工作区;每个工作区都可以有自己的工作树。
  • 工作流里使用工作树隔离的步骤以同样方式得到工作树,无论仓库在哪台机器上。

删除任务或它所在的项目,会释放它的工作树:没有未提交改动、也没有新提交的,连同分支一起删除;有工作成果的留在磁盘上,Mework 会告诉你。与分叉或续接任务共用的工作树,要等最后一个使用它的任务删除后才释放。

不用工作树时,分支标签的 切换分支 在共用目录里检出分支,项目里的所有任务都受影响。

文件

文件面板是你自己的文件管理器,能浏览这台电脑、WSL 和每台已添加的 SSH 机器;模型用不了它。从顶栏的 更多选项(⋮)→ 文件 打开,或在时间线上点文件路径。

在地址栏输入位置:本地路径;SSH 机器用 devbox:/srv/app 或 user@host:~/notes;WSL 用 \\wsl.localhost\Ubuntu\home\dev。右键某一行可以打开、重命名、删除或复制路径。在这台电脑上删除会移到废纸篓(Windows 上是回收站);在其他机器上删除就是永久删除。

查看器是只读的。文本文件只显示前 1 MiB;图片、PDF 和音频最大可预览 8 MB。

变更与审阅

Git 状态

所选工作区是 Git 仓库根目录时,输入框上方会有 Git 状态 标签。卡片显示增删行数、领先和落后的提交数,以及仓库的下一步:要解决的冲突、要继续的操作、要提交的改动,或要推送、拉取的提交。每一行都打开审阅面板。Mework 没有提交、推送或拉取按钮:请让模型去做,或在终端里操作。

审阅面板

点顶栏的 审阅。审阅范围 可以显示全部变更、只看已暂存或只看未暂存的;在工作树上还有 分支上的全部变更,含已提交的。单个文件的 ⋮ 菜单可以暂存、取消暂存或丢弃它。

编辑了 N 个文件

每个回合结束后,编辑了 N 个文件 卡片列出用 write 和 edit 改过的文件;点某一行打开它。shell 命令做的改动不在列表里。

终端

顶栏的 终端 打开 新建终端,列出所选工作区所在机器的 shell(macOS 上是 zsh 和 bash)。终端从工作区目录打开;任务有工作树时,从工作树打开。

  • 关闭面板只是把它收起;标签上的 × 结束这个 shell。
  • 在 SSH 机器上,连接断开后终端最多保留 2 小时。
  • 在这台电脑上,Mework 正在这个文件夹里改动 Git 状态或工作树时,你输入的命令不会执行,终端会告诉你;等 Mework 做完再运行一次。
  • 同时运行的终端最多 64 个。模型可以用 task_wait 等待你终端里的命令。

在 GitHub 上编辑本页