Skip to content

stamsam/upcli

Repository files navigation

UpCLI logo

UpCLI

A lightweight macOS desktop app that checks whether coding CLIs are up to date, lets you approve updates, and pushes them through in the background.

Follow stamatiou on X

Install

  1. Download the latest DMG from GitHub Releases.
  2. Move UpCLI into your Applications folder and open it.
  3. In the app, use the built-in action to install the companion upcli Terminal command.

The built-in installer copies a standalone upcli binary into your PATH.

After that, upcli can be run from Terminal even when the desktop app is closed.

What It Does

UpCLI is designed as a quiet menu bar utility rather than a heavy dashboard. It scans your installed coding CLIs, compares local and latest versions, shows what needs attention, and gives you a clean way to update tools without bouncing between package managers and install paths.

The desktop app can also install a companion upcli Terminal command. Once installed, upcli can run scans and interactive update prompts without the app needing to stay open.

Terminal Companion

After installing the companion command from the app, run:

upcli

The command will:

  • scan supported CLIs
  • show installed and latest versions
  • prompt once per outdated CLI
  • run the updates you approve
  • print a final summary of updated, skipped, failed, and already-current tools

Built-in providers are source-aware, so UpCLI can distinguish between Homebrew formulas, Homebrew casks, npm installs, Python installs, and standalone binaries when deciding how to check and update a tool.

Current product direction:

  • light, modern macOS feel
  • low resource usage at idle
  • background-safe update flow with completion notifications
  • built-in providers for common coder CLIs
  • advanced BYO-CLI support for custom tools

Built-In CLI Support

UpCLI currently includes first-pass support for:

  • codex
  • claude
  • gemini
  • opencode
  • aider
  • qwen
  • mistral-vibe

The provider model is source-aware, so it can distinguish between installs coming from places like npm, brew, pip, uv, or standalone paths and choose the right update path when supported.

BYO-CLI Support

If a tool is not built in, UpCLI can still track it through a custom adapter definition. A custom adapter can define:

  • binary names to detect
  • a version command
  • a version parsing pattern
  • a latest-version source
  • an optional update command

Custom adapters can be tested, saved, exported, and imported as JSON. Update execution for custom CLIs is gated behind explicit approval.

Stack

  • Tauri 2
  • Rust backend
  • React + TypeScript frontend
  • Vite for the web build

Current Status

Implemented today:

  • tray-based desktop shell
  • built-in upcli Terminal companion installer
  • scan-all and scan-one flows
  • background update jobs with event streaming
  • persisted settings
  • custom adapter CRUD plus import/export
  • notification integration
  • clean light UI with the app logo integrated into the product chrome

Still to tighten:

  • real macOS launch-at-login wiring
  • broader provider coverage beyond the current built-in CLI set
  • richer validation and safety affordances around custom adapters

Development

Requirements:

  • Node.js
  • npm
  • Rust toolchain
  • Xcode Command Line Tools

Install dependencies:

npm install

Run the app in development:

npm run tauri dev

Run the Terminal workflow directly:

cd src-tauri
cargo run --bin upcli

Build the frontend bundle:

npm run build

Compile-check the Tauri backend:

cd src-tauri
cargo check

About

A lightweight tool to make sure your CLI's are up to date and moving forward.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors