From winkterm-remote
Drives a WinkTerm backend over HTTP — lists SSH connections, opens terminals, runs commands, transfers files, and runs async SSH jobs. Requires a running WinkTerm backend.
How this skill is triggered — by the user, by Claude, or both
Slash command
/winkterm-remote:winkterm-remoteThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Operate WinkTerm's terminals over its HTTP API. The backend keeps a dedicated PTY
Operate WinkTerm's terminals over its HTTP API. The backend keeps a dedicated PTY per terminal; you can open local or SSH terminals, run commands, read output, run long-running jobs asynchronously, and move files over SSH.
This skill is a thin bootstrap. The authoritative, always-current reference lives
on the backend at GET /api/agent/skill.md — fetch it on first use so you have the
exact endpoint surface for the version you are talking to.
A running WinkTerm backend (default http://localhost:8000). Get WinkTerm at
https://github.com/Cznorth/winkterm — run via docker compose up -d or the
desktop build, then set ANTHROPIC_API_KEY and an agent token.
${WINKTERM_BASE_URL} (default http://localhost:8000)Authorization: Bearer ${WINKTERM_AGENT_TOKEN},
or append ?token=<token> to the URL (for SSE/EventSource clients that cannot
set custom headers).503; wrong token → 401.WINKTERM_AGENT_TOKEN), your agent memory store, or the project CLAUDE.md.curl -s http://localhost:8000/api/agent/handshake
# → {"token":"<bearer-token>","base_url":"http://localhost:8000"}
This endpoint needs no auth but is localhost-only (remote IPs get 403).On 401 mid-session the token may have rotated: clear the stored value and redo
the steps above.
The backend evolves. Pull the live, complete reference and prefer it over this file:
curl -fsSL "${WINKTERM_BASE_URL:-http://localhost:8000}/api/agent/skill.md"
Compare the version: line (second line) against this file's frontmatter. If the
server is newer, tell the user and offer to overwrite the local copy
(curl ... /api/agent/skill.md > <local-skill-path>); the new content takes effect
next session. Never overwrite silently — show a diff first.
GET /api/agent/ssh/connections — list SSH connections, get a connection id.POST /api/agent/terminals — open a terminal ({"type":"local"} or
{"type":"ssh","connection_id":"<id>"}), get a terminal id.POST /api/agent/terminals/{id}/exec — run one POSIX-shell
command, returns clean stdout + real exit_code.POST /api/agent/terminals/{id}/input — raw input / named control keys
({"keys":["ctrl+c"],"enter":false}).GET /api/agent/terminals/{id}/snapshot — read current terminal content
(supports incremental since, server-side pattern grep).DELETE /api/agent/terminals/{id} — close when done.POST /api/agent/ssh/{conn_id}/run runs a single command on a
connection without manual create/exec/delete.POST /api/agent/ssh/{conn_id}/run_async → {job_id}, then poll
GET /api/agent/jobs/{job_id}. Use for installs, mysqldump, docker build,
large copies — anything that can exceed a ~60s proxy timeout.GET /api/agent/terminals/{id}/stream (SSE) for tail -f /
long-command monitoring.GET/PUT .../files, POST .../upload, POST .../download,
POST .../directories, DELETE .../paths./exec — you get a clean stdout and a real exit code, no echo/prompt
stripping needed. POSIX shells only; for Windows cmd.exe use /input.command_b64 /
data_b64 (base64) to skip a layer of JSON+shell escaping.cd and env vars persist across commands on the same
terminal id.For the complete endpoint reference (request/response shapes, all control-key
names, event stream, SFTP details), use the live GET /api/agent/skill.md.
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub cznorth/winkterm --plugin winkterm-remote