src/skills/warp/SKILL.md
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.
npx skillsauth add Soul-Brews-Studio/oracle-skills-cli warpInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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).
| Need | Use |
|------|-----|
| Specific question, one answer | /wormhole |
| Exploratory work, debugging, multi-step | /warp |
| "I need more than 2 round-trips" | /warp |
/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
/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
date "+🕐 %H:%M %Z (%A %d %B %Y)" && ORACLE_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
if [ -n "$ORACLE_ROOT" ] && [ -f "$ORACLE_ROOT/CLAUDE.md" ] && { [ -d "$ORACLE_ROOT/ψ" ] || [ -L "$ORACLE_ROOT/ψ" ]; }; then
PSI="$ORACLE_ROOT/ψ"
else
ORACLE_ROOT="$(pwd)"
PSI="$ORACLE_ROOT/ψ"
fi
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)
"
Map node names to SSH hosts. Check these sources in order:
wg show for known endpointsmaw nodes if available# 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"
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 ModeShow 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>
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"
--new)SESSION_NAME="${AGENT:-oracle}-$(date +%H%M)"
ssh -t "$NODE" "tmux new-session -s '$SESSION_NAME'"
/warp back)When the user says /warp back or detaches from tmux:
🌀 Returned to local oracle
📍 Back at: $(hostname) / $ORACLE_ROOT
⏱ Remote session: still alive (detached)
💡 /warp $LAST_TARGET — reconnect
💡 /wormhole $LAST_TARGET "status" — quick check
LOG_FILE="$PSI/memory/logs/warp.jsonl"
mkdir -p "$(dirname "$LOG_FILE")"
TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
echo "{\"ts\":\"$TIMESTAMP\",\"target\":\"$TARGET\",\"node\":\"$NODE\",\"action\":\"warp\"}" >> "$LOG_FILE"
ARGUMENTS: $ARGUMENTS
testing
Cut a beta pre-release — bump CalVer with --beta, PR to beta branch, CI auto-tags + publishes to npm @beta. Use when user says 'release beta', 'cut beta', '/release-beta', or wants to publish a beta version for pre-release testing.
testing
Cut an alpha pre-release — bump CalVer, PR to alpha branch, CI auto-tags + publishes to npm @alpha. Use when user says 'release alpha', 'cut alpha', '/release-alpha', or wants to publish an alpha version.
tools
Talk to another oracle via maw federation. Uses fleet machine names (white, mba, clinic-nat, oracle-world, phaith). Auto-signs with current oracle's [host:handle] from CLAUDE.md. Global — works from any oracle repo.
development
Log information for future reference. Use when user says "fyi", "remember this", "note that", "for your info".