Files
hermes-skills/ltx-video-pipeline/references/claude-live-ssh-inspection.md
T

3.3 KiB

Claude Live SSH Inspection — Plan-Building Pattern

When Claude needs to build a plan for a target machine it can SSH into, have it inspect the live state FIRST before writing the plan. This eliminates guesswork about what's installed, what models are on disk, what workflows exist, and what the queue looks like.

Pattern

  1. Write the question — include the goal, what to inspect, and the deliverable path
  2. scp to 10.0.0.28 — standard ask-claude flow
  3. Claude SSHs into the target — inspects files, checks queue, reads workflow JSONs, verifies model paths
  4. Claude writes the plan — saves to its own host (10.0.0.28); scp back to Hermes host after

When to Use

  • Building a plan that depends on specific files/models/workflows on a target machine
  • The target's state is complex enough that describing it in the prompt would be error-prone
  • You want Claude to verify claims against reality (e.g., "is this LoRA actually on disk?")

Example (2026-07-22)

Goal: 2-clip LTX-2.3 test plan. Target: 10.0.0.202 (ComfyUI).

Claude was told to SSH into .202 and inspect:

  • LoRAs on disk: ls ~/comfy-ui/models/loras/
  • Workflow JSONs: ls /tmp/api_s1_*.json
  • Diffusion models: ls ~/comfy-ui/models/diffusion_models/
  • Start frames: ls ~/comfy-ui/input/ltx_start_frame*
  • Queue status: curl -s http://localhost:8188/queue

Key discoveries from live inspection (none were in any state file):

  • Distilled LoRA on disk is the 384 variant, not 384-1.1
  • ID LoRA (talkvid-3k) is trained for talking-head, wrong for action scenes
  • FLF example workflows exist on the box
  • Existing start frames are all cyberpunk single-subject — can't be reused
  • Queue empty, clear to run

Plan produced: FLF panorama approach — one wide Flux panorama, 3 cropped windows (A/B/C), Clip 1 FLF A→B, Clip 2 FLF B→C, shared frame B = seamless pan.

Error Recovery

Claude may error on first attempt (SSH timeout, tool failure, wrong command format). Resume, don't start fresh:

Attempt Turns Cost Result
Fresh session 21 $1.05 is_error: true, empty result
Resume (--resume) 2 $0.11 Success — self-diagnosed, recovered, produced plan

Pattern: When Claude returns is_error: true with empty result, write a short follow-up asking what went wrong, scp it, and resume with --resume <session_id>. Claude self-diagnoses and recovers. Do NOT start a fresh session — you lose the context and pay the full cost again.

Pitfalls

  • Claude cannot write files to the Hermes host directly. It writes to 10.0.0.28 and you scp back, or it outputs inline for you to save.
  • SSH credentials must be in the question (Claude doesn't have them in its environment). Use the exact command: sshpass -p 'passw0rd' ssh [email protected]
  • Keep the inspection list focused — 5-6 specific checks, not a full system audit.
  • Live-SSH inspection can fail silently. Claude may error out with is_error: true and empty result after 20+ turns. Resume with --resume — Claude self-diagnoses. Do not start fresh.
  • Don't send follow-up instructions mid-build. If the user says "tell Claude X once he completes," wait for the current turn to finish. Sending mid-execution wastes the instruction (Claude is busy) and frustrates the user.