Summary
双向交互终端会话工具,用于串口终端、SSH 交互 Shell、本地 Shell、设备控制台、AT/CLI 菜单、需要保持上下文的交互式调试;当用户提到交互终端、串口终端、SSH 终端、打开 shell、发送命令后继续读输出、保持会话、登录后操作、菜单式命令行时触发,也兼容 /terminal 显式调用。
zhinkgit/embeddedskills
双向交互终端会话工?
npx skills add zhinkgit/embeddedskills --skill terminal
双向交互终端会话工具,用于串口终端、SSH 交互 Shell、本地 Shell、设备控制台、AT/CLI 菜单、需要保持上下文的交互式调试;当用户提到交互终端、串口终端、SSH 终端、打开 shell、发送命令后继续读输出、保持会话、登录后操作、菜单式命令行时触发,也兼容 /terminal 显式调用。
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
Evidence-first repo execution workflow for ECC. Use when the user wants a command run, a repo c…
6.9K installsOpen an executable and its argument array in a visible terminal window through a reusable, shel…
1.1K installsTerminal User Interface (TUI) performance and UX guidelines for TypeScript applications using I…
778 installsWatch running terminal processes for crashes and stack traces. When an error appears, navigate …
353 installsRender a terminal CLI program's colored output to a PNG so Claude can actually SEE the real vis…
314 installsDrive and verify terminal applications with the termctrl CLI in a real PTY - read visible scree…
9 installsOther skills from zhinkgit/embeddedskills · top by installs.
npx skills add zhinkgit/embeddedskills
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
main
Files included with this skill beyond the listing page.
SKILL.md
5,587 B
README.md
3,640 B
SUMMARY.md
5,457 B
统一封装串口、SSH 和本地 Shell 的双向交互会话。它补齐 serial 的“监控/发送是分离命令”和 ssh 的“远程命令多为一次性执行”之间的空白:当目标需要保持登录状态、菜单状态、REPL 状态或设备 CLI 上下文时,使用本 skill。
serial:扫描、监控、单次发送、日志、Hex 查看。ssh:OpenSSH 配置、远程命令、传输、隧道。terminal:保持一个可持续读写的交互式会话,并通过 send/read 驱动下一步判断。config.json)terminal skill 的环境级配置目前为空对象 {}。交互终端的关键参数通常和具体会话绑定,优先通过 start 命令显式传入,避免误连设备或误用凭据。
.embeddedskills/state.json)后台会话运行时状态保存到工作区的 .embeddedskills/state.json,使用 terminal_sessions 字段记录会话名、后端、PID、TCP 控制端口和日志路径。
--port, --baudrate, --host, --name 等) - 最高优先级.embeddedskills/state.json 中已启动的 terminal_sessions)| 子命令 | 用途 | 风险 |
|---|---|---|
start |
启动一个后台交互会话 | 中 |
list |
列出现有会话 | 低 |
status |
查询单个会话状态 | 低 |
send |
向会话写入文本或 Hex 数据 | 中 |
read |
读取并清空会话输出缓冲 | 低 |
attach |
前台行模式接入会话 | 中 |
stop |
停止会话并清理状态 | 中 |
| 后端 | 适用场景 | 依赖 |
|---|---|---|
serial |
MCU UART 控制台、AT 命令、Bootloader 菜单、板卡 CLI | pyserial |
ssh |
Linux 开发板交互 Shell、登录后持续操作 | OpenSSH 客户端 |
local |
本机临时 Shell、REPL、CLI 程序交互 | Python 标准库 |
所有脚本位于 skill 目录的 scripts/ 下,通过 python 直接调用。命令示例均以当前 skill 目录为基准。
# 启动串口终端
python scripts/terminal_session.py start serial --port COM11 --baudrate 115200 --name board
# 启动 SSH 终端,host 使用 ~/.ssh/config 中的 Host 别名
python scripts/terminal_session.py start ssh --host 1380-P904 --name devboard
# 启动本地 Shell
python scripts/terminal_session.py start local --name local-shell
# 发送一行命令并追加 CRLF
python scripts/terminal_session.py send board "help" --crlf
# 读取输出,最多等待 1 秒
python scripts/terminal_session.py read board --timeout 1
# 前台行模式接入
python scripts/terminal_session.py attach board
# 查询与停止
python scripts/terminal_session.py list
python scripts/terminal_session.py status board
python scripts/terminal_session.py stop board
会话元数据保存到工作区:
.embeddedskills/state.json
使用 terminal_sessions 字段记录:
{
"terminal_sessions": {
"board": {
"backend": "serial",
"tcp_port": 23145,
"pid": 1234,
"started_at": "2026-05-26T10:00:00+08:00"
}
}
}
后台进程日志保存到:
.embeddedskills/logs/terminal/
脚本默认输出 JSON:
{
"status": "ok",
"action": "read",
"summary": "读取 42 字节",
"details": {
"session": "board",
"text": "help\r\n..."
}
}
错误输出:
{
"status": "error",
"action": "send",
"error": {
"code": "session_unreachable",
"message": "会话不可达,可能已退出"
}
}
ssh;若只是串口抓日志,优先使用 serial。serial,远程 shell 用 ssh,本机交互程序用 local。start 后先 read --timeout 1 获取启动横幅、登录提示或 shell prompt。send 后都用 read --timeout <秒> 观察反馈,再决定下一步。stop,避免后台进程长期占用串口、SSH 连接或本地 Shell。--name,避免输出混淆。read 会清空当前输出缓冲;重要输出需要及时记录到最终回复。attach 是行模式,不等同于完整 TTY/raw 模式;需要全屏程序、vim、top、交互式密码输入时,优先让用户使用真实终端工具。serial skill 的 mux 能力。~/.ssh/config 的 Host 别名;配置主机、跳板机、传输文件仍交给 ssh skill。pyserial、ssh 不存在、Host 别名无法解析、进程已退出等都不要吞掉。