Upgrading

Using the install script

The same install script handles upgrades. If Kyber is already installed, it detects the existing version, cleanly reinstalls the package, preserves your config and secrets, and restarts running services:

curl -fsSL https://kyber.chat/install.sh | bash

It will show:

✓ kyber-chat upgraded (2026.2.7.4 → 2026.2.7.5)
✓ Existing config preserved at ~/.kyber/config.json
✓ Existing secrets preserved at ~/.kyber/.env
→ Restarting services...
✓ Restarted chat.kyber.gateway
✓ Restarted chat.kyber.dashboard

The onboarding prompts are skipped entirely on upgrade.

Migrating secrets from config.json

If you’re upgrading from an older version that stored API keys in config.json, run:

kyber migrate-secrets

This moves all API keys and tokens from config.json to ~/.kyber/.env, blanks them from the JSON file, and sets file permissions to 600. Your keys continue to work — they’re just stored securely now.

Manual upgrade

uv tool install --force --no-cache kyber-chat

Verify

kyber --version

Notes

  • Your ~/.kyber/config.json and ~/.kyber/.env are never overwritten during upgrades
  • Workspace files (AGENTS.md, SOUL.md, etc.) are not modified
  • If running as a system service, the install script automatically restarts gateway and dashboard services after upgrading
  • For manual upgrades, restart services yourself:
# macOS
launchctl unload ~/Library/LaunchAgents/chat.kyber.gateway.plist
launchctl load ~/Library/LaunchAgents/chat.kyber.gateway.plist
launchctl unload ~/Library/LaunchAgents/chat.kyber.dashboard.plist
launchctl load ~/Library/LaunchAgents/chat.kyber.dashboard.plist
 
# Linux
systemctl --user restart kyber-gateway
systemctl --user restart kyber-dashboard