OpenClaw session relay: prompts/posts via local/remote acpx over SSH.
64
75%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./skills/openclaw-relay/SKILL.mdUse this when the job is:
One skill. Two transports:
localsshDefault to local for direct telephone-game work from the current OpenClaw checkout. Use ssh when the target agent/session lives on another machine.
For Peter's setup, Molty normally lives on the Mac Studio gateway, reached as steipete@steipete-macstudio.local; avoid the mac-studio SSH alias for one-shot relay work because that alias auto-attaches tmux.
Script path: scripts/openclaw_relay.py
Target aliases file: config/session_aliases.json
Choose local when:
acpxChoose ssh when:
The script avoids baked-in personal paths. Override with env or flags when needed.
local<cwd>/extensions/acpxsteipete@steipete-macstudio.local<remote-home>/clawdbot<remote-home>/Projects/oss/acpx<home>/.openclaw/gateway.tokencodex-bridgeconfig/session_aliases.jsonUseful env vars:
OPENCLAW_RELAY_TRANSPORTOPENCLAW_RELAY_HOSTOPENCLAW_RELAY_CWDOPENCLAW_RELAY_ACPX_REPOOPENCLAW_RELAY_GATEWAY_URLOPENCLAW_RELAY_GATEWAY_TOKEN_FILEOPENCLAW_RELAY_SESSIONOPENCLAW_RELAY_TARGETS_FILEHealth check:
python3 scripts/openclaw_relay.py doctorList known target aliases:
python3 scripts/openclaw_relay.py targetsResolve a target alias:
python3 scripts/openclaw_relay.py resolve --target maintainersAsk a target session a question privately:
python3 scripts/openclaw_relay.py ask \
--target maintainers \
--message "Summarize the current vibe in this channel."Force-send text to the resolved target:
python3 scripts/openclaw_relay.py force-send \
--target maintainers \
--text "Deploy is done."For multiline posts, use --text-file <path> or --text-file - instead of
shell-quoting the message.
Force-send media when the user explicitly wants a channel post:
python3 scripts/openclaw_relay.py force-send \
--transport ssh \
--host steipete@steipete-macstudio.local \
--target maintainers \
--text "Demo video." \
--media /tmp/demo.mp4Use the persistent control session:
python3 scripts/openclaw_relay.py ensure
python3 scripts/openclaw_relay.py send --message "Reply with exactly OK."
python3 scripts/openclaw_relay.py showRemote host example:
python3 scripts/openclaw_relay.py doctor --transport ssh --host steipete@steipete-macstudio.local
python3 scripts/openclaw_relay.py send \
--transport ssh \
--host steipete@steipete-macstudio.local \
--message "Reply with exactly OK."Queue work and poll the same control session:
python3 scripts/openclaw_relay.py start --message "Work on X and reply when done."
python3 scripts/openclaw_relay.py wait --after-seq <last-seq>
python3 scripts/openclaw_relay.py showconfig/session_aliases.json ships with placeholders. Replace them with real values for your setup.
Example shape:
{
"main": "agent:<agentId>:main",
"maintainers": "agent:<agentId>:discord:channel:<channelId>"
}Use these rules when choosing a command:
askpublishforce-sendsendstart, then wait and showcancelIf relay work fails:
doctor.status.show.cancel, then ensure, then retry.If route discovery is uncertain:
Return the actual assistant text or delivery result, not shell noise.
For relay tasks, report:
bb36883
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.