~/.observal/lockfile.json with the latest versions available from the active Observal registry. The command never installs an update.
Synopsis
Checked items
The command checks:- Pulled agents
- Separately installed MCP servers
- Separately installed skills
- Separately installed hooks
--strict refuses it. Agent authors use observal agent outdated to see which pinned components have newer releases and which are unlocked.
A plain observal agent pull keeps an installed agent on its locked version, so the upgrade command for an agent includes --upgrade.
The command reads only the active registry section of the lockfile. It requires authenticated registry access to retrieve current versions.
Options
Valid harnesses are
cursor, kiro, claude-code, codex, copilot, copilot-cli, opencode, antigravity, goose, and pi.
Table output
Table output includes every installed item that was checked. Each row has one of these statuses:
Outdated and unknown rows are followed by a type-specific command using the canonical
namespace/slug identity. Agents use observal agent pull --upgrade; standalone components use their matching registry install command.
A missing item is an item-level result, not a command failure, so a completed comparison containing missing rows exits successfully.
JSON output
JSON output has a stable top-level object:items array and zero summary counts. Missing rows include a categorized item-level error with any available request ID. Command-level JSON errors are written to stderr and leave stdout empty.
Inbox reporting
With reporting enabled, outdated findings are sent to the signed-in user’s Inbox after the comparison. Duplicate findings are deduplicated by item and latest version. Inbox reporting is best-effort. If the comparison succeeds but reporting fails, the comparison still exits successfully and thereport object contains the categorized reporting error. Human output prints a warning. Unexpected reporting failures are not suppressed.
Use --no-report when no Inbox mutation is wanted. This does not make the command offline because registry reads are still required.
Exit codes
Related
observal agent pull: update a pulled agentobserval registry: install a standalone componentobserval config: inspect the active server configuration

