Teleport to a remote oracle node via SSH+tmux. Interactive session — you BECOME the remote oracle temporarily. Use when user says "warp", "teleport", "ssh to node", "go to node", or needs interactive multi-step work on a remote machine.
SKILL.md
/warp — Teleport to Remote Node
When one round-trip isn't enough. Step through the door.
SSH into a remote oracle node and attach to their tmux session. You become the remote oracle temporarily — full interactive access for multi-step work. The complement to /wormhole (fire-and-forget queries).
When to Use
Need
Use
Specific question, one answer
/wormhole
Exploratory work, debugging, multi-step
/warp
"I need more than 2 round-trips"
/warp
Usage
/warp <node>:<agent> # SSH + attach to existing tmux session
/warp <node>:<agent> --new # SSH + create new tmux session
/warp <node>:<agent> --attach # Attach only (already SSH'd)
/warp <node>:<agent> --list # List active tmux sessions on node
/warp back # Return to local oracle
Examples
/warp white:mawjs # Teleport to white node, mawjs oracle
/warp boonkeeper --list # Check what's running on boonkeeper
/warp oracle-world:mawjs-oracle --new # New session on oracle-world
/warp back # Come home
if [ ! -f "$PSI/contacts.json" ]; then
echo "❌ No contacts.json. Run /contacts first."
exit 1
fi
Parse target to find the node's SSH address. Look for node configuration in contacts or known hosts:
python3 -c "
import json, sys
data = json.load(open('$PSI/contacts.json'))
contacts = data.get('contacts', {})
target = '$TARGET'
# Find the contact
for name, info in contacts.items():
maw = info.get('maw', name)
if target == name or target == maw or target.split(':')[0] in [name, maw.split(':')[0]]:
print(f'NAME={name}')
print(f'MAW={maw}')
print(f'REPO={info.get(\"repo\", \"\")}')
print(f'NOTES={info.get(\"notes\", \"\")}')
sys.exit(0)
print('NOT_FOUND')
sys.exit(1)
"
Step 1: Determine SSH Target
Map node names to SSH hosts. Check these sources in order:
~/.ssh/config — look for Host entries matching the node name
WireGuard peers — wg show for known endpoints
maw registry — maw nodes if available
/etc/hosts — direct hostname resolution
# Try SSH config first
SSH_HOST=$(ssh -G "$NODE" 2>/dev/null | grep "^hostname " | awk '{print $2}')
if [ -z "$SSH_HOST" ]; then
echo "❌ No SSH config for node '$NODE'"
echo "💡 Add to ~/.ssh/config:"
echo " Host $NODE"
echo " HostName <ip-or-hostname>"
echo " User neo"
exit 1
fi
echo "🌀 Resolved: $NODE → $SSH_HOST"
Step 2: Check Remote tmux
echo "🔍 Checking tmux sessions on $NODE..."
SESSIONS=$(ssh "$NODE" "tmux list-sessions 2>/dev/null" 2>/dev/null)
if [ -z "$SESSIONS" ]; then
echo " No active tmux sessions."
if [ "$MODE" != "--new" ]; then
echo " 💡 Use /warp $TARGET --new to create one"
fi
fi
--list Mode
Show sessions and exit:
🌀 tmux sessions on $NODE:
Session Windows Created Status
───────────── ──────── ──────────── ──────
oracle 3 2h ago attached
dev 1 5h ago detached
💡 /warp $NODE --attach <session-name>
Step 3: Connect
Attach to existing session (default)
echo "🌀 Warping to $NODE..."
echo " 📡 SSH: $SSH_HOST"
echo " 🖥 tmux: attaching to default session"
echo ""
echo " ⚠️ You are now REMOTE. Local context is paused."
echo " 💡 Ctrl+B D to detach (keeps session alive)"
echo " 💡 /warp back to return"
echo ""
ssh -t "$NODE" "tmux attach-session || tmux new-session -s oracle"