DEV Community

Cover image for binmate - a binary version manager
cameron turner
cameron turner

Posted on

binmate - a binary version manager

GitHub Copilot CLI Challenge Submission

This is a submission for the GitHub Copilot CLI Challenge

What I Built

binmate is a CLI/TUI application for managing binary installations from GitHub releases. It provides an easy way to install, manage, and switch between different versions of command-line tools.

Why I Built It

Depending on which platform you are working with, especially Linux, many of the common public package manager repositories such as apt may be several versions behind the latest available for software you want to install forcing you to install manually. This can be particularly problematic in project development when working with different toolchains which may not be available in runtime specific package managers such as npm, go.pkg.dev or pypi. This then leads to having to manually maintain updates to new versions which could get tedious depending on the volume of packages you need to upgrade.

Additionally, unlike tools such as nvm for Node.js version management, there is often no straightforward way to switch between different installation versions for troubleshooting or rollback purposes.

Key Features

  • Interactive TUI: Browse and manage binaries with a Terminal User Interface
  • CLI Commands: Automate binary management with command-line interface
  • Version Management: Install multiple versions and switch between them
  • GitHub Integration: Automatically fetch releases from GitHub repositories
  • Database Tracking: SQLite database tracks all installations and versions
  • Checksum Verification: Ensures integrity of downloaded binaries

Tech Stack

  • Go
  • Bubble Tea
  • Lip Gloss
  • Cobra
  • Viper
  • SQLite

Demo

This short recording demonstrates the following functionality:

  • first check current version of the gh CLI (initially not installed)
  • launch binmate
  • install non-latest version
  • verify installed version
  • re-launch binmate
  • update to latest version
  • verify latest version is installed

Screenshots for remaining features are available on GitHub

GitHub logo cturner8 / copilot-cli-challenge

Submission for the 2026 DEV Copilot CLI challenge

DEV GitHub Copilot CLI Challenge

Tests Release Go Report Card

Submission for the 2026 DEV GitHub Copilot CLI challenge.

About binmate

binmate is a CLI/TUI application for managing binary installations from GitHub releases. It provides an easy way to install, manage, and switch between different versions of command-line tools.

cover image

Key Features

  • Interactive TUI: Browse and manage binaries with a Terminal User Interface
  • CLI Commands: Automate binary management with command-line interface
  • Version Management: Install multiple versions and switch between them
  • GitHub Integration: Automatically fetch releases from GitHub repositories
  • Database Tracking: SQLite database tracks all installations and versions
  • Checksum Verification: Ensures integrity of downloaded binaries

See demo.md for a demo and screenshots.

Installation

Using the Install Script (Recommended)

Unix (Linux/macOS)

Install the latest version using our install script:

curl -fsSL https://raw.githubusercontent.com/cturner8/copilot-cli-challenge/main/install.sh | bash
Enter fullscreen mode Exit fullscreen mode

By default, the installer now auto-imports the installed binmate binary for self-management using its resolved release URL…

My Experience with GitHub Copilot CLI

Development of the application used the following GitHub Copilot CLI capabilities:

  • Agent instructions for baseline codebase structure and standards, later extended to also heavily utilise beads for improved task tracking and persistent agent memory.
  • Custom agents to provide more focused and specialised agents. The following were originally sourced from the awesome-copilot repository:
  • MCP
    • context7 for providing up to date documentation for packages and libraries.
    • The GitHub MCP built into Copilot CLI was ideal for allowing the agent direct access to search public codebases, access to action workflow logs for troubleshooting, allowing follow up tasks and recommendations to be extracted from PR comments.
  • Plan mode to refine and improve the following implementations:
    • initial application architecture and structure
    • database schema
    • TUI functionality based on existing CLI functionality
    • build and release action workflows
    • end-to-end testing workflow (still in progress)
  • Delegate to cloud agent once an implementation plan is finalised, allowing Copilot to continue working on a task freeing me up to focus on something else. It was also useful in allowing development to continue in moments where I had less time available to spend at my desk.
  • Code review to identify any potential issues or areas for improvement in code changes, particularly helpful given I worked alone on the project.

Top comments (0)