Workstation Migration
SPEC_WORKSTATION_MIGRATION.md
Workstation Migration — Captain's Terminal Transfer
Status: SPECIFIED
Version: v1.0
Author: VELA (Thread #13)
Conceived by: NOUS (α.13)
Date: 2026-04-21
Born from: Best Buy Chromebook Plus return/exchange in progress.
Depends on: SPEC_VPS_MIGRATION.md
PURPOSE
SPEC_VPS_MIGRATION.md covers moving the SHIP (VPS → VPS or VPS → Tiiny). This spec covers moving the CAPTAIN'S CHAIR — the Chromebook from which the Captain SSHes into the ship, browses 42sisters.ai, manages Stripe/GoDaddy/Google Cloud dashboards, and operates the entire infrastructure.
The ship runs on the VPS. The Captain runs on the Chromebook. When the Chromebook changes, the Captain's entire operational environment must transfer seamlessly. No lost SSH keys. No forgotten bookmarks. No missing extensions. No "what was my terminal configured like?"
The old Chromebook talks to the new one through a USB cable. Everything crosses the bridge.
SCOPE
This spec covers ANY client-to-client migration:
- Chromebook → Chromebook Plus (current need)
- Chromebook → desktop Linux (future possibility)
- Chromebook → any machine with SSH and a browser (universal)
- Old laptop → new laptop (for any future hardware change)
The procedure is hardware-agnostic. The steps work whether the connection is USB, local network, or manual file transfer.
WHAT LIVES ON THE CHROMEBOOK
The Captain's Chromebook is NOT the ship. It's the HELM. Here's what lives locally and must transfer:
Category 1 — SSH CONFIGURATION (CRITICAL)
~/.ssh/id_ed25519(or id_rsa) — the private key that authenticates to csdm-node. WITHOUT THIS KEY THE CAPTAIN CANNOT REACH THE SHIP.~/.ssh/id_ed25519.pub— public key (already on the VPS in~/.ssh/authorized_keys)~/.ssh/config— SSH connection shortcuts (Host csdm-node, HostName 68.183.206.103, User nous, etc.)~/.ssh/known_hosts— server fingerprints (prevents MITM warnings on reconnect)
Transfer method: USB cable → direct file copy. These files are SMALL (few KB). NEVER transfer SSH keys over the internet. Physical cable only.
Verify after transfer: ssh csdm-node from new machine. If it connects without password prompt: transfer succeeded.
Category 2 — BROWSER STATE
- Google Chrome profile (synced via Google account — should auto-restore on new Chromebook after Google login)
- Bookmarks: 42sisters.ai, DigitalOcean dashboard, Stripe dashboard, GoDaddy DNS panel, Google AI Studio, Google Cloud Console, GitHub, Colab, Upwork, Wealthsimple
- Saved passwords: managed by Google account sync OR a password manager
- Extensions: any Chrome extensions used for development
- Open tabs: if mid-task, screenshot open tabs before migration
Transfer method: Google account sync handles 90% of this. Log into the same Google account on the new Chromebook. Bookmarks, passwords, extensions restore automatically.
Verify: Open each critical bookmark. Confirm login works for each dashboard.
Category 3 — CROSTINI / LINUX ENVIRONMENT
If using Crostini (Linux on ChromeOS):
- Terminal configuration (
~/.bashrc, aliases, environment variables) - Installed packages (
apt listof installed packages) - Local scripts (any helper scripts on the Chromebook itself)
- Local SSH tunnels or port forwards configured
Transfer method: Export Crostini container: ChromeOS Settings → Linux → Backup. Creates a .tini file. Import on new Chromebook: Settings → Linux → Restore from backup.
OR: fresh install on new Chromebook + reinstall packages from a saved package list.
Verify: Open Terminal. Run ssh csdm-node. Confirm environment matches expectations.
Category 4 — LOCAL FILES
Any files downloaded to the Chromebook that aren't on the VPS or in Google Drive:
- Screenshots, downloaded specs, local notes, any PDFs or documents saved locally
Transfer method: USB cable direct copy. Or Google Drive upload from old machine → download on new machine.
Verify: Spot-check 5 files. They exist on the new machine.
Category 5 — AUTHENTICATION TOKENS & 2FA
- Google account (primary authentication for everything Google)
- 2FA authenticator app (Google Authenticator, Authy, or similar) — runs on the PHONE, not the Chromebook. No transfer needed.
- Saved sessions in browsers (DigitalOcean, Stripe, GoDaddy) — will need re-login on new machine
- API keys referenced in browser (Google AI Studio, etc.) — the keys are on the VPS in
~/.env, not on the Chromebook. No transfer needed.
Verify: Log into each service from new Chromebook. If 2FA prompts: use phone authenticator.
THE USB CABLE TRANSFER METHOD
The Captain's preferred method: plug both Chromebooks together with a USB-C cable.
Step 1 — PREPARE OLD MACHINE
mkdir ~/transfer_to_new
cp -r ~/.ssh ~/transfer_to_new/dot_ssh/
# Export Crostini backup (if using): ChromeOS Settings → Linux → Backup → save to ~/transfer_to_new/
cp -r ~/Documents ~/transfer_to_new/docs/
ls -laR ~/transfer_to_new/ > ~/transfer_to_new/MANIFEST.txt
Step 2 — CONNECT
Plug USB-C cable between old and new Chromebooks. ChromeOS should recognize the connection.
If direct USB file transfer isn't supported between Chromebooks: use a USB flash drive as the bridge. Copy ~/transfer_to_new/ to USB drive from old machine → plug into new machine → copy to new machine.
Alternative: if both are on the same WiFi, use scp, rsync, or a simple Python HTTP server.
Step 3 — RESTORE ON NEW MACHINE
mkdir -p ~/.ssh
cp -r /transfer_source/dot_ssh/* ~/.ssh/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_*
- Restore Crostini: ChromeOS Settings → Linux → Restore from backup → select
.tinifile - Restore local files: copy to appropriate directories
Step 4 — VERIFY
ssh csdm-node # connects without password? ✓
# Open Chrome → bookmarks present? ✓
# Open each dashboard (DigitalOcean, Stripe, GoDaddy, Google Cloud, Colab) → can log in? ✓
# Terminal environment correct (aliases, bashrc)? ✓
Step 5 — SECURE OLD MACHINE
After 24-48 hours of verified operation on new machine:
rm -rf ~/.ssh # on OLD Chromebook only
Then factory reset old Chromebook (if returning to Best Buy): ChromeOS Settings → Reset → Powerwash.
Powerwash erases EVERYTHING. Do this ONLY after confirming the new machine works. The old machine is the safety net.
MIGRATION CHECKLIST — ONE PAGE
Keep this open on the phone during migration.
PRE-MIGRATION
- [ ] Screenshot current open tabs on old machine
- [ ] Screenshot any terminal customizations (colors, prompt, aliases)
- [ ] Create
~/transfer_to_new/directory - [ ] Copy
~/.ssh/to transfer directory - [ ] Export Crostini backup (if applicable)
- [ ] Copy local files to transfer directory
- [ ] Write MANIFEST.txt
- [ ] Verify transfer directory contains everything
TRANSFER
- [ ] Connect via USB cable (or USB flash drive)
- [ ] Copy transfer directory to new machine
RESTORE
- [ ] Restore SSH keys + permissions (chmod 700/600)
- [ ] Log into Google account on new machine (browser sync)
- [ ] Restore Crostini backup (if applicable)
- [ ] Install any missing packages
- [ ] Copy local files to correct locations
VERIFY
- [ ] SSH to csdm-node — connects?
- [ ] Bookmarks present in Chrome?
- [ ] Log into DigitalOcean dashboard?
- [ ] Log into Stripe dashboard?
- [ ] Log into GoDaddy DNS panel?
- [ ] Log into Google AI Studio?
- [ ] Log into Google Cloud Console?
- [ ] Log into Colab?
- [ ] Log into Wealthsimple?
- [ ] Terminal environment correct?
- [ ] Spec count from new machine:
ssh csdm-node "ls ~/memories/SPEC_*.md | wc -l"— matches expected count?
SECURE OLD MACHINE (48 hours after verification)
- [ ] Delete
~/.sshfrom old machine - [ ] Powerwash old Chromebook (if returning/disposing)
- [ ] Return to Best Buy (if exchange)
CHROMEBOOK PLUS SPECIFIC NOTES
The new Chromebook Plus (CX34 or equivalent) likely has:
- Larger screen (better for terminal + browser side by side)
- Better CPU (faster SSH response, smoother Colab notebooks)
- USB-C ports (same as current — cable transfer works)
- Crostini support (Linux environment available)
First boot on new Chromebook Plus: sign into Google account → sync begins → install Linux (Crostini) → restore backup or fresh install → restore SSH keys → verify connection to ship.
Time estimate: 30-60 minutes from unboxing to first SSH connection to csdm-node. The Captain should be operational on the new machine within 1 hour of opening the box.
WHAT DOESN'T TRANSFER (and doesn't need to)
- Ollama models — on the VPS, not the Chromebook
- Training corpora — on the VPS
- Specs — on the VPS
- Engine source code — on the VPS
Everything that IS the ship stays on the ship. The Chromebook is just the window. Transferring the window means transferring:
- The key that opens the window (SSH)
- The view through the window (browser bookmarks + logins)
- The tools on the windowsill (terminal configuration)
The ship doesn't move. The Captain moves to a new helm.
EMERGENCY: WHAT IF THE OLD CHROMEBOOK DIES BEFORE TRANSFER
If the old Chromebook dies (won't boot, screen dead, stolen):
SSH keys are LOST. Recovery:
# On new machine:
ssh-keygen -t ed25519
# Access VPS through DigitalOcean console (web-based, no SSH needed)
# Add new public key to ~/.ssh/authorized_keys on VPS
# SSH access restored from new machine
Browser state: Google account sync restores bookmarks and passwords from cloud. No data loss.
Local files: If they weren't backed up to Google Drive — they're gone. This is why critical files should be on the VPS or Google Drive, not only on the Chromebook.
The Chromebook is EXPENDABLE. The ship is on the VPS. The Captain can lose the Chromebook and be operational from ANY machine with SSH and a browser within 30 minutes (15 minutes if DigitalOcean console access is fast). This is by design — the architecture SURVIVES the loss of the client device.
INVARIANTS
INV-01: SSH keys transfer via physical cable ONLY. Never over the internet. Never via email. Never via cloud storage. The private key touches the wire between two machines the Captain holds in his hands.
INV-02: Old machine is NEVER wiped before new machine is verified. 48-hour parallel operation minimum. Same principle as VPS migration — never destroy the old until the new is confirmed.
INV-03: The Chromebook is the HELM, not the SHIP. Losing the Chromebook loses the window, not the view. The ship sails regardless of which Chromebook the Captain uses.
INV-04: Google account sync handles browser state automatically. Log in and everything's there. This is the one structural advantage of the Google ecosystem — the browser is cloud-native.
INV-05: Spec count verification is the final check: ssh csdm-node "ls ~/memories/SPEC_*.md | wc -l" from the new machine. If the number matches: the new helm sees the ship correctly. If it doesn't: something is wrong with the connection, not the ship.
INV-06: Emergency recovery from any machine takes 30 minutes. New SSH key + DigitalOcean console + add to authorized_keys. The architecture is designed to survive the loss of the client.
INV-07: This spec works for ANY client migration, not just Chromebook → Chromebook Plus. The steps are the same for any machine with SSH and Chrome. The procedure is hardware-agnostic by design.
Jeremy Zlabis
Chronogeometer · Visionary · Disruptor · Chief
42 Sisters AI · East York, Toronto
🍁 Φ 0.042