Exécuter des commandes sur un follower tray

VérifiéPrudence

Exécute des commandes shell sur un follower tray via ssh : découverte des cibles, options de timeout et limites de confiance à respecter.

Spar Skills Guide Bot
DevOpsAvancé
22/10/2026
Claude Code
#remote-exec#ssh#slicc#tray-followers#trust-boundary

Recommandé pour

Synthèse automatique

Exécute des commandes shell sur un follower de tray SLICC connecté, exposé comme cible d'exécution distante par la CLI slicc follow.

Points forts

  • Décrit la découverte des cibles avec host et ssh --list, y compris le contexte MOTD.
  • Présente les options --cwd et --timeout ainsi que l'interruption par Ctrl+C.
  • Avertit clairement des risques d'exécution de code distant et du contournement de la politique sudo du leader.

Limites

  • Ne concerne que les followers SLICC, pas des hôtes SSH arbitraires.
  • Le runner d'exécution est imposé par le follower et ne peut pas être modifié.
  • Les commandes s'exécutent avec l'utilisateur du follower, hors politique sudo du leader, et la sortie est mise en tampon sans session interactive.
Quand l'utiliser

Lorsqu'il faut exécuter une commande shell sur un follower SLICC connecté qui annonce une cible exec.

Quand l'éviter

Pour un accès SSH général, un shell interactif ou le contrôle du runner ou de la sandbox distante.

Analyse de sécurité

Prudence
Score qualité80/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.

Points d'attention
  • •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.
Comment cette analyse est faite

Exemples

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.

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/run-commands-on-a-tray-follower-mvj1ocaa/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

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. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Outils déclarés par l’auteur (à vérifier dans votre agent) : bash

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

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 doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/run-commands-on-a-tray-follower-mvj1ocaa'

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

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/run-commands-on-a-tray-follower-mvj1ocaa/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires