observal outdated
Compare versions recorded in ~/.observal/lockfile.json with the latest versions available from the active Observal registry. The command never installs an update.
Synopsis
observal outdated
observal outdated --harness claude-code
observal outdated --output json --no-reportChecked items
The command checks:
Pulled agents
Separately installed MCP servers
Separately installed skills
Separately installed hooks
Components bundled inside a pulled agent are not checked independently. Their versions belong to the pinned agent release, so update the agent when a newer agent version is reported.
The command reads only the active registry section of the lockfile. It requires authenticated registry access to retrieve current versions.
Options
--harness <harness>
Check one registered harness instead of every harness in the active lockfile section
--output table
Render a Rich table; this is the default
--output json
Emit one machine-readable JSON document
--report
Send outdated findings to the user Inbox; this is the default
--no-report
Suppress the Inbox write while still contacting the registry for version checks
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
A newer registry version exists
current
The pinned version is current or newer
missing
The pinned item no longer exists in the active registry
Outdated rows are followed by a type-specific command using the canonical namespace/slug identity. Agents use observal agent pull; 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:
An empty lockfile returns the same shape with an empty 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 the report 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
0
Comparison completed, including empty, current, outdated, or missing results
1
Unexpected or uncategorized failure, including an unexpected reporting failure
2
Invalid command syntax or output mode
3
Authentication is missing or invalid
4
Registry or filesystem permission denied
7
Invalid harness, malformed lockfile, or invalid installed version
8
Registry rate limit reached
9
Registry unavailable, timed out, or returned invalid version data
10
CLI and server versions are incompatible
Related
observal agent pull: update a pulled agentobserval registry: install a standalone componentobserval config: inspect the active server configuration
Last updated
Was this helpful?