Install
$ agentstack add skill-02loveslollipop-opencrow-ssh-async ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
OpenCROW I/O - SSH Async
Runtime preflight
Probe required commands with command -v and Python modules with importlib.util.find_spec before use. Prefer a PATH-resolved OpenCROW MCP helper or the ctf/sage environment when available, then the managed helper or system Python. If a capability is missing, stop that path safely and report the exact missing command or module.
Prefer the opencrow-ssh-mcp server for session lifecycle, reads, and writes. Fall back to scripts/sshx only when you need to inspect or debug the backend directly.
MCP First
- Use
toolbox_info,toolbox_verify, andtoolbox_capabilitiesfirst. - Use the generic session tools:
session_startsession_sendsession_readsession_statussession_stop- Keep one named session per host/task flow so the MCP server can return stable artifacts under
/tmp/opencrow-ssh-async//.
Use scripts/sshx to manage long-lived SSH sessions instead of one-shot ssh invocations when you are operating outside MCP.
Workflow
- Start a named session to a remote host.
- Send shell input while the daemon keeps receiving remote output asynchronously.
- Read logs with
--tailfor recent context or--followfor streaming output. - Stop the session explicitly when done.
Commands
# Start an interactive login shell
scripts/sshx start --name demo --host 10.0.0.5 --user ubuntu
# Start with a specific identity file and port
scripts/sshx start --name prod --host prod.example.com --user deploy --port 2222 \
--identity ~/.ssh/deploy_ed25519
# Send a command to the open shell
scripts/sshx send --name prod --data 'uname -a' --newline
# Read recent output
scripts/sshx read --name prod --tail 60
# Follow output live
scripts/sshx read --name prod --follow
# Inspect metadata and process state
scripts/sshx status --name prod
# Stop the session
scripts/sshx stop --name prod
Operational Rules
- Use one session per host/task flow so prompts, working directory, and shell state stay coherent.
- Prefer key-based authentication. The helper runs
sshin batch mode and will fail fast instead of hanging on password prompts. - Append
--newlinefor normal shell commands. - Read with
--tailbefore--followso prompt/output context is visible first. - Stop sessions explicitly to avoid leaving remote shells running.
- If
statusreportsrunning: false, inspectdaemon.logandio.logbefore restarting.
Files and State
Session state lives at /tmp/opencrow-ssh-async//:
io.log: timestamped TX/RX events with escaped control charactersrx.raw: raw PTY output bytes from the SSH sessiondaemon.log: daemon stdout/stderr and launcher failuresmeta.json: target metadata and SSH argumentspid: daemon PID
Limitations
- This tool is designed for line-oriented shell workflows, not full-screen TUIs such as
vim,top, orless. - Password, OTP, and passphrase prompts are not supported because the session daemon is intentionally non-interactive during startup.
- If the remote command disables prompts or uses unusual terminal control sequences, inspect
rx.rawin addition toio.log.
References
- For usage patterns and recovery steps, read
references/patterns.md.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: 02loveslollipop
- Source: 02loveslollipop/OpenCROW
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.