sync-env-uplisted
Install: claude install-skill JonMcMillan/claude-sync-by-skill
# sync-env-up — push local → sync folder
Pushes this machine's environment to the shared sync folder. The engine
(`sync_engine.py`) lives in the sibling `sync-envs` skill folder.
## How to run the engine
- **Windows:** `py -3 "<claudeSkillsDir>\sync-envs\sync_engine.py" <args>`
- **macOS/Linux:** `python3 "<claudeSkillsDir>/sync-envs/sync_engine.py" <args>`
`<claudeSkillsDir>` is the user's Claude skills directory (this skill's parent), e.g.
`~/.claude/skills`.
**Always launch it in the background** (the Bash tool's `run_in_background: true`), for
both previews and applies. The sync folder is usually a cloud drive, and when the drive
client is unwell the engine blocks in a kernel filesystem read for minutes. A foreground
run holds the whole turn hostage, so the user cannot ask you to investigate while it
hangs. Backgrounding costs nothing on a fast run and keeps you reachable on a slow one.
**The 30-second check (do this every run).** A healthy scan reaches its first output within
a few seconds, so if the run has not finished at ~30s, check on it rather than waiting. The
engine heartbeats to **stderr** while scanning (`[scan] claude-memory (up): 1840 files`).
Read the background output at ~30s and again ~10s later: if the counter is advancing it is
healthy, just large; if the last `[scan]` line is identical across both samples (or absent
entirely) it is **stalled — raise the alarm**. The last line names the phase it wedged in.
The counter only ticks in the per-file loop