uca

module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 22, 2026 License: MIT

README

uca

uca updates multiple coding-agent CLIs with one command. Quiet by default, parallel by default.

Install

brew install chhoumann/tap/uca
Go install
go install github.com/chhoumann/uca@latest

Usage

uca [options]

Options:

  • -p, --parallel run updates in parallel (default)
  • --serial run updates sequentially
  • --safe safer execution (limits concurrency)
  • --timeout <duration> timeout per update command (default 15m, 0 disables)
  • --concurrency <n> max concurrent update commands (0 disables)
  • -v, --verbose show update command output for each agent
  • -q, --quiet suppress per-agent version lines (summary only)
  • -n, --dry-run print commands that would run, do not execute
  • --explain show detection details and chosen update method
  • --only <list> comma-separated agent list to include (e.g. claude,codex)
  • --skip <list> comma-separated agent list to exclude
  • -h, --help show usage

agent is accepted as an alias for cursor in --only and --skip.

Examples

Update everything:

uca

Parallel update with verbose logs:

uca -v

Serial update:

uca --serial

Dry run only for claude + codex:

uca --only claude,codex --dry-run

Explain detection and method:

uca --explain

Supported agents

  • amp (amp update)
  • gemini (npm/pnpm/yarn/bun @google/gemini-cli)
  • claude (claude update)
  • codex (npm/pnpm/yarn/bun @openai/codex)
  • opencode (npm/pnpm/yarn/bun opencode-ai)
  • droid (npm/pnpm/yarn/bun droid or droid update)
  • cursor (agent update, falling back to cursor-agent update)
  • copilot (Homebrew copilot-cli or npm/pnpm/yarn/bun @github/copilot)
  • cline (npm/pnpm/yarn/bun cline or VS Code extension saoudrizwan.claude-dev)
  • roocode (VS Code extension RooVeterinaryInc.roo-cline)
  • aider (uv tool aider-chat or pip aider-chat)
  • pi (npm/pnpm/yarn/bun @earendil-works/pi-coding-agent)

Live output

When uca is run in a TTY, it shows a live status dashboard with progress, versions, and timings for installed agents. It also prints an instant boot line and streams agents into the dashboard as they’re detected. When output is piped (or --quiet), it prints only completed lines and the summary.

Detection strategy

uca only updates agents it can confidently detect. It checks:

  • built-in update commands for native CLIs
  • Homebrew formulas
  • npm/pnpm/yarn/bun global bins and package lists
  • uv tool installs
  • pip packages
  • VS Code extensions (via code, codium, or code-insiders)

If a tool is installed but managed by an unknown method, it is marked as manual and skipped.

Performance & reliability notes

  • Node-based agents are updated in batch per package manager when possible (e.g. one npm install -g ...@latest for multiple npm-managed agents).
  • Updates that mutate global package manager state are serialized per manager (e.g. only one npm global update at a time).
  • Cursor's cursor-agent fallback is selected only when detecting the installed CLI; failed agent update runs are reported as failures rather than retried with cursor-agent.

Output (default)

claude: 2.1.19 -> 2.1.19 (8s)
...
updated: amp claude codex opencode
unchanged: gemini
skipped (missing): cursor

Development

go build ./cmd/uca

License

MIT

Directories

Path Synopsis
cmd
uca command
internal
agentspec
Package agentspec builds the concrete update commands for an agent's chosen strategy.
Package agentspec builds the concrete update commands for an agent's chosen strategy.
detect
Package detect probes the environment to decide how each agent is installed: which package managers are present, what their global bin dirs and package lists contain, installed VS Code extensions, and the latest available versions.
Package detect probes the environment to decide how each agent is installed: which package managers are present, what their global bin dirs and package lists contain, installed VS Code extensions, and the latest available versions.
exec
Package exec runs external commands with consistent timeout, cancellation, and process-group handling.
Package exec runs external commands with consistent timeout, cancellation, and process-group handling.
ui
Package ui renders the live terminal dashboard.
Package ui renders the live terminal dashboard.
version
Package version holds the pure version parsing, formatting, and comparison helpers used to read agent `--version` output, registry "latest" lookups, and to decide whether an installed version is outdated.
Package version holds the pure version parsing, formatting, and comparison helpers used to read agent `--version` output, registry "latest" lookups, and to decide whether an installed version is outdated.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL