Summary
Propose adding a nanobot update CLI command that lets users check for and apply updates to nanobot in one step, instead of manually running pip install --upgrade nanobot-ai (or the uv equivalent).
Motivation
Nanobot is moving fast — recent weeks have seen multiple patch releases (v0.1.5, v0.1.5.post1, v0.1.5.post2). Users currently need to:
- Remember which package manager they used to install (
pip, uv, pipx, etc.)
- Run the correct upgrade command manually
- Restart nanobot
This is friction we can remove. A built-in nanobot update command would:
- Lower the barrier for less technical users who just want to stay current
- Detect the install method automatically (pip, uv, pipx, Homebrew, etc.)
- Show changelog highlights so users know what changed
- Optionally restart the running instance after upgrade
Open Questions
This is an RFC — we want community input before committing to an implementation. Key questions:
-
Scope: self-update only, or also dependencies?
- Should
nanobot update only upgrade the nanobot-ai package, or also pip install --upgrade its dependencies?
-
Install method detection
- How reliable can we detect whether the user installed via
pip, uv, pipx, Homebrew, Docker, or from source?
- Is falling back to "we couldn't detect your install method" acceptable?
-
Should it support --check / --dry-run?
nanobot update --check would just report if a new version is available without upgrading
nanobot update --dry-run would show what would happen
-
Changelog / release notes display
- Should we fetch and display the latest release notes from GitHub?
- Or just show a link to the releases page?
-
Auto-restart behavior
- If nanobot is running as a gateway/service, should
update restart it automatically?
- Or just print a reminder to restart manually?
-
Should we add auto-update-check on startup?
- Like Homebrew does: on
nanobot gateway or nanobot agent, print a notice like "A new version (v0.1.6) is available. Run nanobot update to upgrade."
- This would be a separate feature but worth discussing together.
Proposed Interface (Draft)
$ nanobot update
Checking for updates...
Current version: v0.1.5.post2
Latest version: v0.1.6
Changes since v0.1.5.post2:
- feat: support for model presets
- fix: prevent duplicate sub-agent responses
- fix: handle Windows PermissionError on directory fsync
Upgrade via pip? [Y/n]: y
Successfully upgraded to nanobot-ai v0.1.6
Restart nanobot to apply the update.
$ nanobot update --check
Current version: v0.1.5.post2
Latest version: v0.1.6
A new version is available. Run `nanobot update` to upgrade.
Alternatives Considered
- Do nothing — users manage updates themselves. Simple but ignores the UX improvement.
- Document the upgrade command in
nanobot status output — lightweight alternative, just show "To update: pip install --upgrade nanobot-ai" in nanobot status.
Related Component
CLI
Your Input Wanted
Please share your thoughts:
- Would you find this useful?
- Which package manager did you install nanobot with?
- Any concerns about a self-updating CLI tool?
- Would you prefer a simpler approach (e.g., just a version-check notice on startup)?
Summary
Propose adding a
nanobot updateCLI command that lets users check for and apply updates to nanobot in one step, instead of manually runningpip install --upgrade nanobot-ai(or theuvequivalent).Motivation
Nanobot is moving fast — recent weeks have seen multiple patch releases (v0.1.5, v0.1.5.post1, v0.1.5.post2). Users currently need to:
pip,uv,pipx, etc.)This is friction we can remove. A built-in
nanobot updatecommand would:Open Questions
This is an RFC — we want community input before committing to an implementation. Key questions:
Scope: self-update only, or also dependencies?
nanobot updateonly upgrade thenanobot-aipackage, or alsopip install --upgradeits dependencies?Install method detection
pip,uv,pipx, Homebrew, Docker, or from source?Should it support
--check/--dry-run?nanobot update --checkwould just report if a new version is available without upgradingnanobot update --dry-runwould show what would happenChangelog / release notes display
Auto-restart behavior
updaterestart it automatically?Should we add auto-update-check on startup?
nanobot gatewayornanobot agent, print a notice like "A new version (v0.1.6) is available. Runnanobot updateto upgrade."Proposed Interface (Draft)
Alternatives Considered
nanobot statusoutput — lightweight alternative, just show "To update:pip install --upgrade nanobot-ai" innanobot status.Related Component
CLI
Your Input Wanted
Please share your thoughts: