Skip to content

Updating from the network

plugin outdated is the polling verb of the daily loop. It re-fetches every registered marketplace into the local cache and recomputes version pins — without touching any agent config. apply then renders from that cache, so it’s always fast, offline, and reproducible.

Terminal window
agentsync plugin outdated # refresh cache + show pending bumps
agentsync plugin upgrade --all # re-pin every pending bump, then re-apply
agentsync plugin upgrade --all --lossless # same, skipping bumps that would lose translation
agentsync plugin upgrade atlassian # re-fetch one plugin, then re-apply

Both upgrade forms end in a re-apply, so an upgrade reaches your agents in one command instead of leaving them stale until the next apply.

plugin outdated is not a pure read, despite the npm outdated prior: it uses the network and writes state (each marketplace’s fetch timestamp and head SHA). It is also not the only networked command — plugin add, plugin upgrade, marketplace add, import <agent>:plugin, and init <git-url> all fetch. It is simply the one the daily loop runs.

flowchart LR
    NET["marketplaces<br/>+ npm registry"] -->|"plugin outdated (network)"| CACHE[".state/cache/"]
    CACHE -->|"apply (offline)"| AGENTS["agent configs"]

Separating “fetch” from “render” means:

  • apply is deterministic — same cache in, same config out, no surprise network changes mid-apply.
  • apply works offline — on a plane, in a locked-down CI runner, anywhere.
  • Upgrades are intentional — you see pending plugin bumps from plugin outdated before they take effect.

agentsync ships no daemon. Want nightly refreshes? Wire the one-liner into your own scheduler:

Terminal window
agentsync plugin upgrade --all --lossless
PlatformMechanism
macOSlaunchd agent
Linuxcron or a systemd timer
WindowsTask Scheduler