Migration manifest — laptop Claude Code environment → M5M36
Inventory taken on 2026-11-09 on the owner's laptop (read-only; no secret value was printed or copied). Status column: what has actually been done so far.
Classification: SAFE_TO_COPY · REQUIRES_REINSTALL · REQUIRES_REAUTHENTICATION · REQUIRES_MANUAL_REVIEW · DO_NOT_COPY
Claude Code itself
| Item (laptop) | Class | Plan on M5M36 | Status |
|---|---|---|---|
| Claude Code CLI 2.1.322 (npm global) | REQUIRES_REINSTALL | npm install -g @anthropic-ai/claude-code |
done, same version |
| Account login (OAuth, macOS Keychain) | REQUIRES_REAUTHENTICATION | owner runs /login in the first web session; tokens are never copied |
pending (owner) |
~/.claude/settings.json — model fable[1m], fast mode |
SAFE_TO_COPY (values only) | recreate these two preferences | done (settings limited to model + fast mode; status as of 2026-11-10) |
settings.json — PreToolUse hook that auto-approves every tool call |
DO_NOT_COPY | contradicts the requirement to keep Claude's native permission prompts on an Internet-reachable host. Use per-project allowlists instead | not copied |
settings.json — SessionStart hook for AKOS |
DO_NOT_COPY | AKOS was retired on 2026-11-09 | not copied |
Skills: jof250 |
SAFE_TO_COPY | ~/.claude/skills/ — depends on the WP45 repository being cloned |
copied (status as of 2026-11-10) |
Commands: 6 cluster*, 10 jof-* |
SAFE_TO_COPY | ~/.claude/commands/; the cluster commands call wrappers under ~/Desktop/Cluster/cluster-skill → clone cluster-skill.git on the node and adjust paths |
10 jof-* copied; the 6 cluster commands were not copied (status as of 2026-11-10) |
Agents: 7 jof-* |
SAFE_TO_COPY | ~/.claude/agents/ |
copied (status as of 2026-11-10) |
| Plugins: clangd-lsp, rust-analyzer-lsp, swift-lsp | REQUIRES_REINSTALL | /plugin install if those languages are used remotely |
pending |
Global ~/.claude/CLAUDE.md (cluster knowledge) |
REQUIRES_MANUAL_REVIEW | contains the nodes' sudo password and laptop-specific paths. A reviewed copy without the password should be written for the node | sanitized copy (sudo password removed) written (status as of 2026-11-10) |
| Auto-memory (271 notes) | REQUIRES_MANUAL_REVIEW | private working memory; some notes hold passwords or keys | copied 2026-11-10 at the owner's request: 251 notes + index in ~/.claude/memory (autoMemoryDirectory); 20 notes containing credentials were left on the laptop |
| Conversation history (125 project dirs), caches, telemetry, shell snapshots | DO_NOT_COPY | machine-specific | not copied |
MCP servers (10 configured on the laptop)
| Server | Transport | Class | Notes |
|---|---|---|---|
| tavily, worldbank, polymarket, etherscan, notion | stdio, local .mjs scripts in ~/.claude/mcp* |
script SAFE_TO_COPY · API keys REQUIRES_REAUTHENTICATION | keys live in ~/.claude.json env; they must be re-entered through the MCP manager (write-only fields) or explicitly authorised for transfer. Status as of 2026-11-10: 5 server scripts copied without API keys |
| openalex, anthropic | stdio, scripts in ~/mcp/ |
same | both currently fail to connect on the laptop too |
| apify | stdio via npx mcp-remote (OAuth) |
REQUIRES_REAUTHENTICATION | browser OAuth flow |
| hfmarketdata | stdio binary | DO_NOT_COPY | its backend (www.hfmarketdata.io) was shut down on 2026-10-02; FinData OS replaces it |
| akos | http | DO_NOT_COPY | service retired 2026-11-09 |
| cluster (MacLustr tools) | stdio | REQUIRES_MANUAL_REVIEW | drives SSH to every node; depends on the SSH-key decision below |
Tools and runtimes
| Tool | Laptop | M5M36 | Class / plan |
|---|---|---|---|
| Node / pnpm / npm | 26.13 / 11.1 | 26.10 / 12.6 | present |
| Python / uv | 3.14 / 0.11 | 3.14 / 0.12 | present |
| git | yes | 2.54 | present; set user.name (email per repository) |
| tmux, ripgrep, PostgreSQL 17 | yes | installed for this project | done |
| TeX Live 2026 (xelatex, latexmk), pandoc, WeasyPrint | yes | missing | REQUIRES_REINSTALL (brew install --cask mactex-no-gui, ~6 GB) when paper compilation is wanted remotely |
| R 4.6, Rust 1.95, Bun, ffmpeg, gh, Swift/Xcode | yes | missing (except Swift CLT) | REQUIRES_REINSTALL on demand |
| Docker Desktop, LibreOffice, Chromium, Android tools | yes | missing | on demand; Xcode/TestFlight release work stays on the laptop by design |
Credentials and network identity
| Item | Class | Notes |
|---|---|---|
| SSH private keys, SSH agent | DO_NOT_COPY | cluster rule: no private keys on nodes. A new key generated on M5M36 can be authorised on selected nodes — needs explicit approval (changes other nodes). Status as of 2026-11-10: done — key authorised on the git server (git-shell only) and on M3U96a / M3U96b (CR_EXEC_HOSTS) |
~/.ssh/config (34 hosts) |
REQUIRES_MANUAL_REVIEW | LAN aliases can be regenerated from the cluster's discovery instead of copied |
Keychain items (skills registry token, etc.), browser cookies, .env files, ~/Desktop/Cluster/secrets |
DO_NOT_COPY | re-issue per service on the node if needed |
| Sudo passwords | DO_NOT_COPY | the web runtime never needs sudo |
Projects and data
The laptop holds ~303 GB under UQO/, ~222 GB under PhD/, ~23 GB under Cluster/; M5M36 has 301 GB free. A bulk
copy is neither possible nor desirable.
| Category | Class | Plan |
|---|---|---|
Repositories that have a remote on the cluster git server (gitsrv:srv/git/*.git — all cluster apps, the UQO working papers wp*_uqo.git, etc.) |
SAFE_TO_COPY via Git | "Clone repository" in the Projects page (gitsrv:srv/git/<name>.git) — needs the node key authorised on the git server |
| Cluster applications | already remote-first | their source of truth is the deployed directory on each node; reached from tasks/SSH, not copied |
| Teaching material, administrative files, OneDrive folder, PhD datasets | REQUIRES_MANUAL_REVIEW | large, partly personal data (student work, grades). Not transferred without an explicit list |
Build artefacts, node_modules, virtualenvs, caches, .next, LaTeX aux files |
DO_NOT_COPY | rebuilt on the node |
Scheduled work on the laptop
No user crontab. LaunchAgents: Homebrew PostgreSQL/Redis, two NAS mount helpers, third-party agents — none is needed by the remote environment.
Remaining laptop-only dependencies (by design)
Xcode/App Store signing and TestFlight releases, GUI automation of Safari/Outlook (Moodle, Overleaf, SSRN flows), and the macOS/iOS apps' source trees. These workflows cannot move to a headless web terminal and stay on the laptop.