netstack

edit or ./

SSH + Kiro CLI Workflow

Connect to a federation dev node via SSH and use Kiro CLI for AI-assisted development. No GUI needed — pure terminal, zero lag.

Why

Prerequisites

Quick Connect

# Connect to nsdockerhv (primary dev node)
ssh nsadmin@10.147.17.176

# Start Kiro CLI chat (from the SSH session)
cd ~/code/wip
kiro-cli chat

One-liner (direct to Kiro chat)

ssh nsadmin@10.147.17.176 -t "cd ~/code/wip && kiro-cli chat"

Setup: SSH Key Auth (passwordless)

From Windows (PowerShell)

# Generate key (if you don't have one)
ssh-keygen -t ed25519

# Copy public key to target node
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh nsadmin@10.147.17.176 "cat >> ~/.ssh/authorized_keys"

# Test (should connect without password)
ssh nsadmin@10.147.17.176

From WSL / Linux / macOS

# Generate key (if you don't have one)
ssh-keygen -t ed25519

# Copy public key to target node
ssh-copy-id nsadmin@10.147.17.176

# Test
ssh nsadmin@10.147.17.176

Setup: Windows Terminal Profile (optional)

Add to Windows Terminal settings.json for one-click access:

{
    "name": "Wip (nsdockerhv)",
    "commandline": "ssh nsadmin@10.147.17.176 -t \"cd ~/code/wip && kiro-cli chat\"",
    "icon": "🤖"
}

Kiro CLI Commands

Once in kiro-cli chat:

Command What
(just type) Chat with Kiro (same as IDE chat)
/quit Exit chat
/clear Clear conversation

Other kiro-cli subcommands:

kiro-cli chat          # Start chat session
kiro-cli agent         # Manage AI agents
kiro-cli doctor        # Debug installation issues
kiro-cli settings      # Customize behavior

Federation Node SSH Addresses

Node ZeroTier IP User Purpose
nsdockerhv 10.147.17.176 nsadmin Primary dev (Wip, Docker, Gitea)
CyberTruck 10.147.17.219 ghadmin Host (Hyper-V, Plex, backups)
cat9fin 10.147.17.218 nsadmin HWPC production (hwpc-rp, QB)
slwin11ops 10.147.17.94 ghadmin SL ops (backup target)

Troubleshooting

Problem Fix
Connection refused Verify ZeroTier is connected: zerotier-cli status
Permission denied Copy your SSH public key (see Setup above)
kiro-cli not found Add to PATH: export PATH="$HOME/.local/bin:$PATH"
Session drops Use tmux or screen for persistent sessions

Persistent Sessions with tmux

# Start a named session
ssh nsadmin@10.147.17.176 -t "tmux new-session -A -s wip"

# Inside tmux, start Kiro
cd ~/code/wip && kiro-cli chat

# Detach: Ctrl+B then D
# Reconnect later — session persists even if SSH drops
ssh nsadmin@10.147.17.176 -t "tmux attach -t wip"

Mobile Access: Termius (iOS/Android)

Termius is an SSH client for mobile devices that supports:

Setup

  1. Install Termius from App Store / Play Store
  2. Add host:
    • Label: nsdockerhv (Wip)
    • Hostname: 10.147.17.165 (requires ZeroTier on phone)
    • Port: 22
    • Username: nsadmin
    • Auth: SSH key (import or generate in Termius)
  3. Save and test connection

Siri Integration (iOS)

Termius supports Siri Shortcuts. You can create a shortcut that:

  1. Opens Termius
  2. Connects to nsdockerhv
  3. Runs a command (e.g., starts tmux session)

Setup:

Voice paste pattern:

Alternative: SSH from iOS without Termius

iOS has no built-in SSH client, but options include:

tmux Best Practices for Wip Sessions

Named Sessions

# Create/attach to named session
tmux new-session -A -s wip

# Multiple sessions for different contexts
tmux new-session -A -s wip      # Wip coordination
tmux new-session -A -s dev      # Development work
tmux new-session -A -s ops      # Ops/monitoring

Useful tmux Commands

Key Action
Ctrl+B d Detach (session keeps running)
Ctrl+B c New window
Ctrl+B n Next window
Ctrl+B p Previous window
Ctrl+B " Split horizontal
Ctrl+B % Split vertical
Ctrl+B [ Scroll mode (q to exit)

Reconnect After Disconnect

# From any device (phone, laptop, tablet):
ssh nsadmin@10.147.17.176 -t "tmux attach -t wip"

# If session doesn't exist, create it:
ssh nsadmin@10.147.17.176 -t "tmux new-session -A -s wip"

Why tmux + SSH > RDP

  RDP SSH + tmux
Bandwidth High (video stream) Minimal (text only)
Latency feel Laggy on slow links Instant
Session persistence Lost on disconnect Survives disconnect
Mobile Clunky (small screen + desktop UI) Natural (terminal fits any screen)
Voice input No Yes (Siri → paste into terminal)
Multiple sessions One desktop Many tmux windows