使用说明
细胞-MCP
一 主控程序 暴露的服务器 塞利 终端多路复用器操作作为AI编码代理的工具。创建选项卡、打开窗格、运行命令、读取终端输出,并在您的 $EDITOR --所有这些都来自AI助手。
工具大多以1:1的比例映射到Zellij CLI操作,但通过默认情况下保留用户的焦点来改进它们——当代理创建选项卡或运行命令时,它不会将您的视图从您正在处理的内容中拉出来。
用法
克劳德代码
claude mcp add zellij-mcp -- npx zellij-mcp
或在 .claude/settings.json:
{
"mcpServers": {
"zellij-mcp": {
"command": "npx",
"args": ["zellij-mcp"]
}
}
}
开源代码
在 opencode.json:
{
"mcp": {
"zellij-mcp": {
"type": "local",
"command": ["npx", "zellij-mcp"]
}
}
}
其他MCP客户端
zellij mcp使用stdio传输。为您的客户指出:
npx zellij-mcp
服务器会自动检测当前的Zellij会话。集 ZELLIJ_MCP_SESSION_NAME 以覆盖目标会话。
环境变量
ZELLIJ_MCP_SESSION_NAME
覆盖所有命令的目标Zellij会话名称。未设置时,服务器会通过Zellij自己的会话自动检测当前会话 ZELLIJ_SESSION_NAME 环境变量(在每个窗格中设置)。回落到 zellij-mcp 如果两者都不可用。
ZELLIJ_MCP_DELAY_MS
动作后延迟(毫秒)。每次Zellij操作后,服务器都会等待这么长时间,等待Zellij服务器处理该操作,然后再发送下一个命令。默认为 60。对于慢速环境(例如SSH远程),增加。
ZELLIJ_MCP_DUMP_DIR
由创建的临时屏幕转储文件的目录 read_pane 和 read_pane_full.默认为 /tmp。文件读取后会自动清理。
焦点保护
默认情况下,zellij mcp中有几个工具 保持用户当前的焦点 而不是切换到新创建的选项卡或窗格。这与原始的Zellij行为不同,在那里,像这样的行为 new-tab 或 new-pane 始终将焦点转移到新元素上。
其基本原理是:当AI代理为开发服务器创建背景选项卡或生成一个窗格来运行测试时,它不应该将用户的视图从他们正在进行的工作中拉出来。
受影响的工具
| 工具 | 单元格默认 | 单元格-mcp 默认 | 覆盖 |
|---|---|---|---|
new_tab |
将焦点切换到新选项卡 | 焦点停留在当前选项卡上 | switch_to: true |
new_pane |
将焦点切换到新窗格 | 焦点停留在当前窗格上 | switch_to: true |
run_command |
将焦点切换到新窗格 | 焦点停留在当前窗格上 | switch_to: true |
rename_tab |
仅在聚焦选项卡上操作 | 可以按名称定位任何选项卡 | target: "tab-name" |
close_tab |
仅在聚焦选项卡上操作 | 可以按名称定位任何选项卡 | target: "tab-name" |
edit_file 是 不 焦点保持——它总是将焦点切换到编辑器窗格,因为用户需要与之交互。
运作原理
当焦点保持处于活动状态时,该工具:
- 呼叫
dump-layout查找当前聚焦的选项卡 - 执行动作(这可能会作为副作用移动焦点)
- 呼叫
go-to-tab-name将焦点恢复到原始选项卡
例子
这些是默认行为——代理将自动保持焦点:
“创建一个名为服务器的新选项卡”
要覆盖和切换焦点,请明确告诉代理:
“创建一个名为服务器的新选项卡并切换到它”
工具
会话
zellij_list_sessions
列出所有活动的Zellij会话。 文档
zellij list-sessions --short --no-formatting
zellij_query_tab_names
获取当前会话中的所有选项卡名称。每行返回一个选项卡名称。 文档
zellij --session zellij-mcp action query-tab-names
zellij_dump_layout
转储会话的完整当前布局,以了解工作区结构,包括选项卡、窗格及其排列。 文档
zellij --session zellij-mcp action dump-layout
zellij_list_clients
列出连接到当前会话的所有客户端、它们的焦点窗格id以及它们正在运行的命令。 文档
zellij --session zellij-mcp action list-clients
标签页
zellij_go_to_tab
切换到会话中的命名选项卡。使用 zellij_query_tab_names 首先发现可用的选项卡名称。 文档
| 参数 | 必填 | 说明 |
|---|---|---|
name |
yes | 要切换到的选项卡的名称(例如“编辑器”、“服务器”、“git”)。 |
zellij --session zellij-mcp action go-to-tab-name <name>
zellij_new_tab
在会话中创建一个具有可选名称和布局的新选项卡。默认情况下,焦点停留在当前选项卡上。 文档
| 参数 | 必填 | 说明 |
|---|---|---|
name |
no | 新选项卡的名称。如果省略,Zellij将指定默认名称。 |
layout |
no | 用于新选项卡的布局文件的路径 |
cwd |
no | 新选项卡的工作目录 |
switch_to |
no | 如果为true,将焦点切换到新选项卡。默认为false。 |
zellij --session zellij-mcp action new-tab [--name <name>] [--layout <layout>] [--cwd <cwd>]
zellij_rename_tab
重命名会话中的选项卡。如果 target 提供,重命名该特定选项卡而不改变焦点。如果省略,则重命名当前聚焦的选项卡。 文档
| 参数 | 必填 | 说明 |
|---|---|---|
name |
yes | 选项卡的新名称 |
target |
no | 要重命名的选项卡的当前名称。如果省略,则重命名焦点选项卡 |
zellij --session zellij-mcp action rename-tab <name>
zellij_close_tab
关闭会话中的选项卡。如果 target 如果提供,则关闭该特定选项卡并将焦点恢复到原始选项卡。如果省略,则关闭当前聚焦的选项卡。请谨慎使用——这是破坏性的,无法撤消。 文档
| 参数 | 必填 | 说明 |
|---|---|---|
target |
no | 要关闭的选项卡的名称。如果省略,则关闭聚焦选项卡 |
zellij --session zellij-mcp action close-tab
终端I/O
zellij_write_to_pane
将按键发送到当前聚焦的窗格。这是原始按键注入——字符完全按照提供的方式键入。默认情况下,在执行字符后发送回车符(Enter键,char 13)。集 enter 到 false 只发送原始字符而不发送尾随的Enter。 文档
| 参数 | 必填 | 说明 |
|---|---|---|
chars |
是 | 要在焦点窗格中键入的字符。 |
enter |
no | 如果为true(默认),则在字符后发送回车符(char 13)。设置为false可跳过后面的Enter键。 |
zellij --session zellij-mcp action write-chars <chars>
zellij --session zellij-mcp action write 13 # sent automatically unless enter=false
zellij_read_pane
捕获当前聚焦窗格的可见终端输出。写入临时文件 ZELLIJ_MCP_DUMP_DIR (默认为 /tmp),阅读它,然后清理。 文档
zellij --session zellij-mcp action dump-screen <path>
zellij_read_pane_full
捕获当前聚焦窗格的完整滚动缓冲区。同 read_pane 但包括所有滚动出屏幕的历史记录。对于长时间运行的流程,输出可能非常大。 文档
zellij --session zellij-mcp action dump-screen --full <path>
zellij_run_command
在新的Zellij窗格中运行命令。始终创建新窗格--不在当前聚焦的窗格中运行。默认情况下,焦点停留在当前窗格上。 文档
| 参数 | 必填 | 说明 |
|---|---|---|
command |
yes | 命令及其参数作为数组(例如。 ["npm", "test"]). |
floating |
否 | 如果为true,请在浮动窗格而不是平铺窗格中运行。 |
name |
no | 新窗格的可选名称。 |
close_on_exit |
否 | 如果为true,则命令完成时窗格会自动关闭。 |
cwd |
no | 命令的工作目录。 |
switch_to |
否 | 如果为true,请将焦点移动到新的命令窗格。默认为false。 |
zellij --session zellij-mcp run [--floating] [--name <name>] [--close-on-exit] [--cwd <cwd>] -- <command...>
窗格
zellij_new_pane
在当前聚焦的选项卡中打开一个新窗格。默认情况下,打开一个平铺窗格。默认情况下,焦点停留在当前窗格上。 文档
| 参数 | 必填 | 说明 |
|---|---|---|
floating |
否 | 如果为真,请打开浮动窗格而不是平铺窗格。 |
name |
no | 新窗格的可选名称。 |
direction |
no | 相对于聚焦窗格放置新平铺窗格的方向(下、右、上、左)。因浮动窗格而忽略。 |
cwd |
no | 新窗格的工作目录。 |
command |
no | 在新窗格中运行的可选命令和参数(例如。 ["npm", "test"]). |
switch_to |
否 | 如果为真,请将焦点移动到新窗格。默认为false。 |
zellij --session zellij-mcp action new-pane [--floating] [--name <name>] [--direction <direction>] [--cwd <cwd>] [-- <command...>]
zellij_close_pane
关闭当前聚焦的窗格。窗格中运行的任何进程都将被终止。焦点移动到相邻窗格。小心使用——这是破坏性的,无法撤销。 文档
zellij --session zellij-mcp action close-pane
zellij_focus_pane
将焦点沿给定方向移动到相邻窗格。仅在平铺窗格之间移动焦点。如果指定方向上没有窗格,则焦点不会改变。 文档
| 参数 | 必填 | 说明 |
|---|---|---|
direction |
是 | 移动焦点的方向(上、下、左、右)。 |
zellij --session zellij-mcp action move-focus <direction>
zellij_toggle_floating_panes
显示或隐藏当前焦点选项卡中的所有浮动窗格。这是一个切换——调用两次会返回到原始状态。 文档
zellij --session zellij-mcp action toggle-floating-panes
zellij_toggle_fullscreen
在当前聚焦的窗格上切换全屏模式。激活后,窗格会展开以填充整个选项卡区域。再次调用它可以恢复原始布局。焦点仍集中在同一窗格上。 文档
zellij --session zellij-mcp action toggle-fullscreen
zellij_rename_pane
重命名当前聚焦的窗格。名称出现在窗格框架/边框中。焦点不会改变。 文档
| 参数 | 必填 | 说明 |
|---|---|---|
name |
yes | 当前聚焦窗格的新名称。 |
zellij --session zellij-mcp action rename-pane <name>
zellij_resize_pane
沿给定方向调整当前聚焦窗格的大小。窗格沿指定方向生长,收缩相邻窗格。仅适用于瓷砖窗格。焦点不会改变。 文档
| 参数 | 必填 | 说明 |
|---|---|---|
direction |
yes | 窗格的生长方向(上、下、左、右)。 |
zellij --session zellij-mcp action resize <direction>
编辑
zellij_edit_file
在用户的 $EDITOR (例如Helix、Vim、Nano)在新的Zellij窗格中。焦点移动到新创建的编辑器窗格。当用户退出编辑器时,窗格会自动关闭。这将打开文件供人类用户交互式编辑——它不会返回文件内容。 文档
| 参数 | 必填 | 说明 |
|---|---|---|
file |
yes | 要打开的文件的路径。可以是绝对的,也可以是相对于会话工作目录的。 |
floating |
否 | 如果为true,请在浮动窗格而不是平铺窗格中打开编辑器。 |
line_number |
no | 打开文件时要跳转到的行号(1索引)。 |
direction |
no | 相对于聚焦窗格放置新平铺窗格的方向(下、右、上、左)。因浮动窗格而忽略。 |
cwd |
no | 编辑器窗格的工作目录。当文件路径是相对路径时很有用。 |
zellij --session zellij-mcp action edit <file> [--floating] [--line-number <n>] [--direction <direction>] [--cwd <cwd>]
发展
先决条件
设置
git clone https://github.com/mustardamus/zellij-mcp.git
cd zellij-mcp
bun install
bun run setup # downloads the latest Zellij binary for the current architecture
使用四个选项卡(代理、编辑器、服务器和git)启动Zellij会话:
bun run dev:zellij
或者独立运行MCP服务器(带监视模式):
bun run dev
