Updates
sitemd checks for new versions in the background and notifies you when one is available — in the CLI, on dev server startup, and in every sitemd status response your AI agent sees.
Proactive Notifications
You don't need to remember to check for updates. sitemd surfaces them wherever you already are.
Interactive CLI (sitemd) — when you open the menu, an update line appears between the status block and the menu if a newer version is available:
Project: My Site
Pages: 12 files
Auth: you@example.com
Deploy: example.com → cloudflare
Update: v1.0.0 → v1.2.0 sitemd update
Dev server (sitemd launch) — the startup banner shows a notification if an update is waiting:
Dev server running at http://localhost:4747
Press Ctrl+C to stop
Update available: v1.0.0 → v1.2.0 sitemd update
AI agents — every sitemd status response includes a version block. When an update is available, it appears as the first action item so the agent can mention it proactively:
{
"version": {
"current": "1.0.0",
"latest": "1.2.0",
"hasUpdate": true,
"releaseNotes": "### What's new in 1.2.0<br>- ...",
"releaseUrl": "https://github.com/sitemd-cc/sitemd/releases/tag/v1.2.0"
},
"actions": [
{ "command": "update", "description": "Update available: v1.0.0 → v1.2.0" }
]
}
Notifications are instant — they read from a local cache, adding zero latency to any command.
How the Cache Works
sitemd fetches version info at most once per hour and stores it at ~/.sitemd/update-check.json. The first CLI or server invocation after the cache expires triggers a background refresh — no waiting, no blocking. The next invocation picks up the result.
{
"latest": "1.2.0",
"checkedAt": "2026-03-17T10:00:00.000Z",
"releaseNotes": "### What's new in 1.2.0<br>- Website cloning via /clone<br>- Auto-update with in-place engine replacement",
"releaseUrl": "https://github.com/sitemd-cc/sitemd/releases/tag/v1.2.0"
}
If the network is unavailable, the check is skipped silently. No error, no disruption.
Manual Update Check
Run sitemd update at any time for a fresh check and full release notes:
sitemd update
Output when an update is available:
Current version: 1.0.0
Checking for updates...
Update available: 1.0.0 → 1.2.0
### What's new in 1.2.0
- Website cloning via /clone skill
- Auto-update with in-place engine replacement
- Proactive update notifications in CLI
Release: https://github.com/sitemd-cc/sitemd/releases/tag/v1.2.0
Update engine and theme in this project now? (yes/no):
If you're already on the latest version:
Up to date! v1.2.0
Self-Update
When you run sitemd update from inside a project directory and confirm, sitemd downloads the latest release and replaces engine/ and theme/ in-place:
Downloading v1.2.0...
Updating engine...
Updating theme...
Updated! v1.2.0
engine/ and theme/ replaced. pages/, settings/, and media/ unchanged.
Restart the dev server to use the new version.
What gets replaced: engine/ and theme/
What is never touched: pages/, settings/, media/, package.json content
Project config safe: .sitemd/config.json (your deployment credentials and service keys) lives outside engine/ and theme/, so it's never affected by updates.
npm global installs
If you installed sitemd globally via npm, update the global package:
npm update -g @sitemd-cc/sitemd
Then run sitemd update from your project directory to apply the new engine and theme files locally.
git clones
If your project is a git clone, you can git pull to update, or use sitemd update for the in-place replacement. Both work.
Checking for updates
AI agents can explicitly check for updates by running sitemd update. Unlike the passive version info in sitemd status, this always fetches fresh data from the registry:
sitemd update
Use sitemd status for passive awareness. Use sitemd update when the user explicitly asks whether a new version is available.
Related
- CLI Config — managing backend credentials and service config
- Getting Started — initial installation
- Feedback — reporting issues or requesting features