원클릭으로
clishot
Generate report-ready screenshots from real terminal sessions using YAML workflows and clishot.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Generate report-ready screenshots from real terminal sessions using YAML workflows and clishot.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | clishot |
| description | Generate report-ready screenshots from real terminal sessions using YAML workflows and clishot. |
Use clishot when a report, assignment, README, or technical document needs screenshots of a real terminal interaction. clishot is built on top of termless and uses termless core as its terminal automation and rendering engine.
Use clishot for repeatable command demos, compiler runs, REPL sessions, test-case input, and intermediate screenshots. Use termless directly only when you need low-level terminal testing APIs rather than report-oriented YAML workflows. Do not use clishot to fake transcripts, generate prose reports, or run dangerous commands without user approval.
Do not add version or engine fields. Put the working directory in shell.cwd; put output scale in appearance.output.scale.
shell:
program: pwsh
args: ["-NoLogo"]
cwd: "D:/project"
terminal:
cols: 100
rows: 30
capture:
mode: fullScrollback
steps:
- type: send
text: "python --version"
enter: true
waitFor:
idleMs: 800
Choose shell.program explicitly when the workflow depends on a specific shell. On Windows prefer pwsh with ["-NoLogo"]; do not add -NoProfile unless the user requests it. On Linux and macOS use bash, zsh, or the user's $SHELL as appropriate.
Keep appearance.window.title realistic when setting it. In most cases, use the shell name shown to the user, such as zsh, bash, pwsh, or cmd, rather than a descriptive demo title.
Use send for typed commands and test input, key for combinations such as Ctrl+C, resize for deliberate terminal size changes, wait for fixed pauses, and screenshot for named intermediate images.
Prefer waitFor.text or waitFor.regex when a program prints a known prompt. Use waitFor.idleMs when the command has no stable final marker. Combine them when useful.
steps:
- type: send
text: "./main"
enter: true
waitFor:
text: "请输入"
- type: send
text: "5"
enter: true
waitFor:
idleMs: 1000
If capture is omitted, clishot defaults to fullScrollback so the final screenshot contains the whole YAML workflow. Use viewport when only the visible terminal window should be captured, lastLines for the tail of long output, and textRange when the report needs a bounded slice between markers.
clishot validate demo.yml
clishot record demo.yml --out figures/demo.png
clishot record demo.yml --out figures/demo.webp --format webp
clishot record demo.yml --out figures/final.png --shots-dir figures/steps
Insert images into reports with normal paths:

#image("figures/demo.png")
\includegraphics[width=\linewidth]{figures/demo.png}
Compiler errors, Python tracebacks, failed tests, and command-not-found messages are terminal content. They should normally still produce screenshots. clishot errors are configuration failures, wait timeouts, termless core problems, render failures, and output write failures.
When waitFor times out, inspect tmp/tmp-<timestamp>-<spec>/normalized.txt, events.jsonl, and any generated debug images. Do not silently overwrite user files; pass --force only when overwriting is intentional.
When modifying the clishot repository itself, follow docs/git-rule.md and keep commits small.