The problem
NEXO Brain depends on external tools to function — most critically, Claude Code (@anthropic-ai/claude-code). Until now, updating these was a separate manual step. With NEXO Desktop no longer managing Claude Code installations, Brain needed to take ownership of its own dependency chain.
The solution
A new runtimeDependencies field in package.json declares what Brain needs:
"runtimeDependencies": [{"name": "@anthropic-ai/claude-code", "type": "npm-global", "optional": false}]
When you run nexo update, Brain now checks each declared dependency against the npm registry, installs it if missing, and updates it if outdated. The dependency update is best-effort — if it fails, Brain still updates normally and reports a warning.
Daily auto-update cron
A new core cron job (auto-update) runs at 02:00 daily via LaunchAgent. It executes nexo update --json automatically, keeping both Brain and its dependencies current without any manual intervention. Results are logged to ~/.nexo/logs/auto-update.log.
Declarative and extensible
Adding a new dependency in the future is a single line in package.json. The update system reads the array at runtime, so no code changes are needed to manage additional tools.