Run commands on a tray follower

VerifiedCaution

Runs shell commands on a tray follower via ssh, covering target discovery, timeout options, and the trust boundary to respect.

Sby Skills Guide Bot
DevOpsAdvanced
10/22/2026
Claude Code
#remote-exec#ssh#slicc#tray-followers#trust-boundary

Recommended for

Automated summary

Runs shell commands on a connected SLICC tray follower that has been exposed as a remote-exec target via the slicc follow CLI.

Strengths

  • Documents target discovery with host and ssh --list, including MOTD context.
  • Covers cwd and timeout options plus Ctrl+C interruption.
  • Clearly warns about remote code execution and bypassing the leader's sudo policy.

Limitations

  • Only works with SLICC tray followers, not arbitrary SSH hosts.
  • The execution runner is fixed by the follower and cannot be changed.
  • Commands run as the follower's user outside the leader's sudo policy, and output is buffered with no interactive session.
When to use it

When you need to execute a shell command on a connected SLICC follower that advertises an exec target.

When not to use it

When you need general SSH access, an interactive shell, or control over the remote runner or sandbox.

Security analysis

Caution
Quality score80/100

The skill is documentation for a legitimate remote-exec feature, not a malicious payload: there are no curl|sh pipes, no exfiltration of secrets/tokens, no obfuscated or base64 payloads, and no attempt to disable safety controls. However, its core purpose is executing arbitrary shell commands on a follower's real machine outside the local sudo policy, which is inherently powerful, so it warrants a caution rating rather than safe. The text itself does contain sensible guardrails (prefer narrowest command, don't pipe untrusted input, treat targets like SSH access), and no prompt-injection or role-change attempts were found in the content.

Findings
  • •Documents a mechanism for remote code execution on another machine ('runs on the follower's real machine, as the user who started it') — powerful by design
  • •Explicitly notes commands run OUTSIDE the leader's sudo policy, so host-side privilege controls do not gate `ssh`
  • •Encourages `bash -c`-style runners with no sandbox unless the follower chooses a container runner
  • •Skill intentionally enables remote command execution on another user's machine via `ssh <runtime-id> <command>`; it acknowledges this is 'remote code execution by design' and outside the leader's sudo policy.
  • •Execution bypasses local sudo/sandbox policy — only the follower's chosen runner (e.g. bare `bash -c`) constrains it, so a compliant agent can run arbitrary commands on a real host.
  • •Content is documentation only: no obfuscated payloads, no curl|sh, no credential exfiltration, no attempts to disable safety controls or to alter the auditor's behavior.
How this analysis is made

Examples

List exec targets
Run `ssh --list`, then summarize the available exec targets and their MOTD lines.
Check system info on a follower
Use `ssh --list` to find the first exec target, run `uname -a` on it, and report the output.
Run a timed directory listing
On the connected CLI follower, run `ls -la` in /srv/app with a 30-second timeout and summarize the results.

name: ssh description: | Use this when you need to run a shell command on a connected tray follower — specifically a slicc … follow <runner> CLI follower that lent its machine as an exec target. Covers discovering targets (host, ssh --list), running commands (ssh <runtime-id> <command>), what a runner is, timeouts and Ctrl+C, and the important trust boundary: the command runs on the follower's real machine, as the user who started it, OUTSIDE this leader's sudo policy. allowed-tools: bash

ssh — run a command on a tray follower

A slicc … follow <runner> CLI follower (see packages/slicc-cli) can lend its machine to you as a remote-exec target. ssh runs a command there and returns its stdout, stderr, and exit code.

Discover targets

CLI followers started with a runner and iOS followers advertising exec are targets. Find them:

host           # every follower: [ssh] exec, [computer] capturable screen, [playwright] browser
ssh --list     # just the exec targets + their runtime ids, each with a MOTD line

A target id looks like follower-<uuid>. ssh --list prints each target's advertised MOTD beneath it so you know what you're connecting to. Browser followers are never ssh targets. iOS followers accept only open [--universal|--x-callback] <url>, gate it through on-device scoped approval, and launch the approved destination. --universal requires a universal link; --x-callback returns bounded JSON on stdout and distinct success, error, or cancel exit codes. An unavailable app fails instead of pretending to launch. host hides capability-less followers (e.g. transient prompt/exec CLI connections) as a count, so the list stays the actionable targets.

Run a command

ssh <runtime-id> "<command>"
ssh --cwd /some/dir <runtime-id> "ls -la"
ssh --timeout 30 <runtime-id> "<command>"   # kill on the follower after 30s

The command runs as <runner> <command> on the follower, where <runner> is whatever it was started with — e.g. bash -c, sh -c, or a sandbox like docker exec -i box sh -c. The runner is fixed by the follower; you cannot change it from here. Output is returned once the command completes (buffered, like ssh host cmd). Ctrl+C / an aborted turn interrupts the remote command.

Trust boundary (read before using)

  • The command executes on the follower's real machine, as the user who started slicc … follow — this is remote code execution by design.
  • It runs outside this leader's /etc/sudoers policy. Your sudo rules do NOT gate ssh — the follower's own choice of runner is the only sandbox (a container runner scopes it; a bare bash -c does not).
  • Treat an exec target like SSH access to someone's box: run only what you'd run there directly, prefer the narrowest command, and never pipe untrusted input into it.

The other direction

ssh goes down the tray, to a follower of yours. To go up — into another SLICC leader's virtual shell, given its join URL — use the slicc skill.

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/run-commands-on-a-tray-follower-mvj1ocaa/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/run-commands-on-a-tray-follower-mvj1ocaa' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/run-commands-on-a-tray-follower-mvj1ocaa/download' --output '.skill-downloads/run-commands-on-a-tray-follower-mvj1ocaa/SKILL.md.part' && mv '.skill-downloads/run-commands-on-a-tray-follower-mvj1ocaa/SKILL.md.part' '.skill-downloads/run-commands-on-a-tray-follower-mvj1ocaa/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

Tools declared by the author (check availability in your agent): bash

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/run-commands-on-a-tray-follower-mvj1ocaa/SKILL.md' && test -s '.skill-downloads/run-commands-on-a-tray-follower-mvj1ocaa/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/ssh' && cp -R '.skill-downloads/run-commands-on-a-tray-follower-mvj1ocaa' '.claude/skills/ssh'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/run-commands-on-a-tray-follower-mvj1ocaa'

openskills read 'run-commands-on-a-tray-follower-mvj1ocaa'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/run-commands-on-a-tray-follower-mvj1ocaa/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills