ArgentOS Installer Sync
Ensures the live installer at https://argentos.ai/install.sh matches the source of truth.
The Sync Chain
Source of truth:
argentos/scripts/install-hosted.sh
↓ Codex merges to argentos main
Copy to website:
argentos.ai/scripts/install.sh
argentos.ai/public/install.sh
↓ Claude pushes to argentos.ai main
Live:
https://argentos.ai/install.sh
↓ Railway deploys automatically
End users:
curl -fsSL https://argentos.ai/install.sh | bash
When to Sync
Sync immediately when:
- Codex sends a
HANDOFF TO CLAUDEmentioning the installer - A PR merging installer changes lands on argentos main
- The live URL serves outdated code (test with verification step below)
argent onboardcrashes on a clean machine
Sync Procedure
1. Pull latest source
cd /Users/sem/code/argentos
git fetch origin main
git show origin/main:scripts/install-hosted.sh > /tmp/install-latest.sh
2. Copy to both website locations
cp /tmp/install-latest.sh /Users/sem/code/argentos.ai/scripts/install.sh
cp /tmp/install-latest.sh /Users/sem/code/argentos.ai/public/install.sh
3. Verify byte-for-byte match
diff /Users/sem/code/argentos.ai/scripts/install.sh \
/Users/sem/code/argentos.ai/public/install.sh
# Must output nothing (identical)
4. Commit and push
cd /Users/sem/code/argentos.ai
git add scripts/install.sh public/install.sh
git commit -m "fix: Sync hosted installer from argentos main"
git push origin main
5. Verify live (after Railway deploys)
# Check it serves the new script, not HTML
curl -fsSL https://argentos.ai/install.sh | head -3
# Must show: #!/usr/bin/env bash
# Check specific fix is present (adapt grep to the change)
curl -fsSL https://argentos.ai/install.sh | grep "run_onboard"
Common Drift Patterns
| Symptom | Cause | Fix |
|---|---|---|
ONBOARD_NO_PROMPT[@]: unbound variable |
Bash 3.2 array expansion | Sync — source has run_onboard() guard |
git clone fails for end users |
Wrong repo URL in installer | Check line ~704 for correct repo |
| Live URL returns HTML not bash | Railway serving SPA fallback | Check server.js serves /install.sh from scripts/ |
install.sh and public/install.sh differ |
Partial sync | Always copy to both, verify with diff |
Do Not
- Edit
argentos.ai/scripts/install.shdirectly — always sync from source. - Push installer changes without verifying both copies match.
- Assume Railway deployed — always verify the live URL after push.