Terminal Opener
affaan-m/ECC
Open an executable and its argument array in a visible terminal window through a reusable, shell-free launch plan with dry-run, JSON, capability detection, detached fallback, and standalone recovery…
双向交互终端会话工具,用于串口终端、SSH 交互 Shell、本地 Shell、设备控制台、AT/CLI 菜单、需要保持上下文的交互式调试;当用户提到交互终端、串口终端、SSH 终端、打开 shell、发送命令后继续读输出、保持会话、登录后操作、菜单式命令行时触发,也兼容 /terminal 显式调用。
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add zhinkgit/embeddedskills --skill terminal -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install zhinkgit/embeddedskills terminal --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/zhinkgit/embeddedskills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/terminal .claude/skills/terminal && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "terminal" agent skill from https://github.com/zhinkgit/embeddedskills/tree/main/terminal into .claude/skills/terminal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "terminal", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/zhinkgit/embeddedskills/tree/main/terminalType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add zhinkgit/embeddedskills --skill terminal -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install zhinkgit/embeddedskills terminal --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zhinkgit/embeddedskills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/terminal .agents/skills/terminal && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "terminal" agent skill from https://github.com/zhinkgit/embeddedskills/tree/main/terminal into .agents/skills/terminal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "terminal", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add zhinkgit/embeddedskills --skill terminal -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install zhinkgit/embeddedskills terminal --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zhinkgit/embeddedskills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/terminal .cursor/skills/terminal && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "terminal" agent skill from https://github.com/zhinkgit/embeddedskills/tree/main/terminal into .cursor/skills/terminal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "terminal", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/zhinkgit/embeddedskills.git --path terminal--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add zhinkgit/embeddedskills --skill terminal -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install zhinkgit/embeddedskills terminal --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zhinkgit/embeddedskills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/terminal .gemini/skills/terminal && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "terminal" agent skill from https://github.com/zhinkgit/embeddedskills/tree/main/terminal into .gemini/skills/terminal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "terminal", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install zhinkgit/embeddedskills terminalInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add zhinkgit/embeddedskills --skill terminal -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/zhinkgit/embeddedskills.git skills-src && mkdir -p .github/skills && cp -r skills-src/terminal .github/skills/terminal && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "terminal" agent skill from https://github.com/zhinkgit/embeddedskills/tree/main/terminal into .github/skills/terminal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "terminal", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add zhinkgit/embeddedskills --skill terminal -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install zhinkgit/embeddedskills terminal --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zhinkgit/embeddedskills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/terminal .opencode/skills/terminal && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "terminal" agent skill from https://github.com/zhinkgit/embeddedskills/tree/main/terminal into .opencode/skills/terminal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "terminal", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
terminal双向交互终端会话工具,用于串口终端、SSH 交互 Shell、本地 Shell、设备控制台、AT/CLI 菜单、需要保持上下文的交互式调试;当用户提到交互终端、串口终端、SSH 终端、打开 shell、发送命令后继续读输出、保持会话、登录后操作、菜单式命令行时触发,也兼容 /terminal 显式调用。
Terminal is an agent skill from zhinkgit/embeddedskills. 双向交互终端会话工具,用于串口终端、SSH 交互 Shell、本地 Shell、设备控制台、AT/CLI 菜单、需要保持上下文的交互式调试;当用户提到交互终端、串口终端、SSH 终端、打开 shell、发送命令后继续读输出、保持会话、登录后操作、菜单式命令行时触发,也兼容 /terminal 显式调用。
Its SKILL.md is about 870 tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts (for example `README.md`, `agents/openai.yaml` and `config.json`).
The repository describes itself as: An open-source collection of embedded development and debugging skills for Claude Code, Copilot, TRAE, and other AI coding assistants that support the Skill protocol. Once… The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 536c1f9. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Terminal loads about 869 tokens when it runs. Until then it costs about 40 tokens; SKILL.md has 192 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found patterns that need a careful read before installing.
# 启动 SSH 终端,host 使用 ~/.ssh/config 中的 Host 别名- SSH 后端使用 `~/.ssh/config` 的 Host 别名;配置主机、跳板机、传输文件仍交给 `ssh` skill。Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from zhinkgit/embeddedskills at commit 536c1f9, republished under its MIT licence (© zhinkgit). 192 words, ~869 tokens.
.claude/skills/terminal/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.统一封装串口、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 别名无法解析、进程已退出等都不要吞掉。© zhinkgit, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (scripts) in terminal of zhinkgit/embeddedskills.
Open the folder on GitHubat commit 536c1f9
Terminal next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Terminal this skillzhinkgit/embeddedskills | 733 | — | ~869 | Automated safety check: Warn | MIT | |
| Terminal Openeraffaan-m/ECC | 275k | — | ~635 | Automated safety check: Pass | MIT | |
| Shell ScriptingRightNow-AI/openfang | 18k | — | ~827 | Automated safety check: Pass | Apache-2.0 | |
| Crush Shell Builtinscharmbracelet/crush | 29k | — | ~790 | Automated safety check: Pass | Custom licence | |
| Netmiko Ssh Automationaffaan-m/ECC | 275k | 1 repos | ~1.5k | Automated safety check: Pass | MIT | |
| Terminal Opsaffaan-m/ECC | 275k | 2 repos | ~750 | Automated safety check: Pass | MIT |
affaan-m/ECC
Open an executable and its argument array in a visible terminal window through a reusable, shell-free launch plan with dry-run, JSON, capability detection, detached fallback, and standalone recovery…
RightNow-AI/openfang
Shell scripting expert for Bash, POSIX compliance, error handling, and automation
charmbracelet/crush
Explains how to add a new in-process builtin command to Crush's embedded POSIX shell, so it is intercepted before reaching the OS, with context polling and exit-status rules.
affaan-m/ECC
Safe Python Netmiko patterns for read-only collection, bounded batch SSH, TextFSM parsing, guarded config changes, timeouts, and network automation error handling.
affaan-m/ECC
Evidence-first repo execution workflow for ECC. An agent skill from affaan-m/ECC.
affaan-m/ECC
ECCのための証拠優先のリポジトリ実行ワークフロー。ユーザーがコマンドの実行、リポジトリの確認、CIの失敗のデバッグ、正確な実行と検証の証明を伴う狭い修正のプッシュを必要とする場合に使用する。
zhinkgit/embeddedskills
嵌入式 CAN / CAN-FD 调试工具,用于扫描接口、监控报文、发送测试帧、记录日志、数据库文件解码和总线统计. An agent skill from zhinkgit/embeddedskills.
zhinkgit/embeddedskills
EIDE (Embedded IDE) 工程构建工具,用于扫描 .eide/eide.yml 工程、枚举构建 配置 (ConfigName)、执行 build/rebuild/clean 并解析构建日志,返回可供 jlink/openocd 复用的产物路径。当用户提到 EIDE、Embedded IDE、eide.yml、 unifybuilder、VS Code EIDE…
zhinkgit/embeddedskills
J-Link 下载与在线调试工具,用于探测设备、烧录固件、读写内存、查看寄存器、复位目标、读取 RTT/SWO 日志, 以及在线调试(暂停/恢复/单步/断点运行/调用栈/变量查看)。
zhinkgit/embeddedskills
Keil MDK 工程构建工具,用于扫描 .uvprojx/.uvproj/.uvmpw 工程、枚举 Target、执行 build/rebuild/clean 并解析构建日志,返回可供 jlink/openocd 复用的产物路径。
zhinkgit/embeddedskills
OpenOCD 下载与调试工具,用于探针探测、固件烧录、Flash 擦除、GDB Server 启动、目标复位控制、 Telnet 在线调试(halt/resume/step/寄存器/内存/断点)、GDB 源码级调试,以及 Semihosting/ITM 输出捕获和底层查询。
zhinkgit/embeddedskills
嵌入式串口调试工具,用于扫描串口、实时监控、发送数据、记录日志和 Hex 查看. An agent skill from zhinkgit/embeddedskills.
双向交互终端会话工具,用于串口终端、SSH 交互 Shell、本地 Shell、设备控制台、AT/CLI 菜单、需要保持上下文的交互式调试;当用户提到交互终端、串口终端、SSH 终端、打开 shell、发送命令后继续读输出、保持会话、登录后操作、菜单式命令行时触发,也兼容 /terminal 显式调用。. Terminal is an agent skill from zhinkgit/embeddedskills.
Run `npx skills add zhinkgit/embeddedskills --skill terminal -a claude-code`. Or copy the skill folder (terminal in zhinkgit/embeddedskills) into .claude/skills/terminal in your project. Claude Code loads it when a task matches its description.
Run `npx skills add zhinkgit/embeddedskills --skill terminal -a codex`. Or copy the skill folder (terminal in zhinkgit/embeddedskills) into .agents/skills/terminal in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add zhinkgit/embeddedskills --skill terminal -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/terminal, .gemini/skills/terminal, .github/skills/terminal and .opencode/skills/terminal in your project.
Going by SKILL.md and its folder, Terminal needs Python for the scripts in its folder and the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 2 warning(s): mentions a credentials file (ssh keys, cloud or package-manager tokens). Read the flagged lines before installing; the check is not a guarantee either way. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Terminal is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 869 tokens (SKILL.md is roughly 3.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Terminal: Terminal Opener (affaan-m/ECC, 275k stars), Shell Scripting (RightNow-AI/openfang, 18k stars), Crush Shell Builtins (charmbracelet/crush, 29k stars) and Netmiko Ssh Automation (affaan-m/ECC, 275k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
zhinkgit (a GitHub user) maintains it in zhinkgit/embeddedskills, which has 733 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on September 3, 2026.
Source: zhinkgit/embeddedskills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.