Skip to content

fix: add windows support for usage tool registry#8713

Merged
jdx merged 3 commits intomainfrom
fix/usage-windows-support
Mar 22, 2026
Merged

fix: add windows support for usage tool registry#8713
jdx merged 3 commits intomainfrom
fix/usage-windows-support

Conversation

@jdx
Copy link
Copy Markdown
Owner

@jdx jdx commented Mar 22, 2026

Summary

  • Remove platform restriction from the aqua backend for usage, allowing it to work on Windows (aqua already has Windows binaries)
  • Add windows to the top-level os list for the usage tool
  • Previously, Windows users fell through to the cargo:usage-cli backend which requires Rust/cargo to be installed

Fixes jdx/usage#538

🤖 Generated with Claude Code


Note

Low Risk
Low risk registry metadata change; it only relaxes platform constraints for usage so Windows installs select the aqua:jdx/usage backend instead of falling back to cargo.

Overview
Updates registry/usage.toml to remove platform restrictions from the aqua:jdx/usage backend, making it eligible on Windows.

Also drops the explicit top-level os allowlist for usage, preventing Windows from falling through to the cargo:usage-cli backend.

Written by Cursor Bugbot for commit 39c5548. This will update automatically on new commits. Configure here.

The aqua backend for usage has Windows binaries available, but the
registry entry restricted it to linux/macos. This caused Windows users
to fall through to the cargo backend, which requires Rust to be installed.

Fixes jdx/usage#538

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request enhances the usage tool's compatibility by extending its support to Windows. It reconfigures the tool's backend preferences to leverage existing aqua binaries on Windows, streamlining the installation and usage experience for Windows users by removing the dependency on Rust/Cargo.

Highlights

  • Aqua Backend Configuration: The platform restriction for the "aqua:jdx/usage" backend was removed, allowing it to be used on all platforms where aqua binaries are available, including Windows.
  • Windows Support: Added "windows" to the top-level "os" list for the usage tool, explicitly enabling Windows as a supported operating system.
  • Improved User Experience: Windows users will now default to the aqua backend for the usage tool, avoiding the previous requirement of installing Rust/Cargo for the "cargo:usage-cli" backend.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds Windows support for the usage tool by updating its registry configuration. The change correctly enables the aqua backend for Windows and adds windows to the list of supported operating systems. However, by making the aqua backend available on all platforms by default, it may cause issues on platforms like freebsd where it might not be supported. A more specific change is recommended to avoid potential breakages.

Comment thread registry/usage.toml
"linux",
"macos",
] },
"aqua:jdx/usage",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

While removing the platform restrictions enables Windows support, it makes the aqua backend available on all platforms. This could cause issues on platforms like freebsd if aqua:jdx/usage does not provide binaries for it. Users on freebsd would have previously used the cargo backend, but will now try to use aqua and potentially fail.

To be more precise and avoid potential issues, it's better to explicitly list the supported platforms.

Suggested change
"aqua:jdx/usage",
{ full = "aqua:jdx/usage", platforms = [
"linux",
"macos",
"windows"
] },

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Mar 22, 2026

Greptile Summary

This PR fixes Windows support for the usage tool in mise's registry by removing the platforms = ["linux", "macos"] restriction from the aqua:jdx/usage backend and dropping the top-level os = ["linux", "macos", "freebsd"] allowlist that was blocking Windows installs entirely.

Key changes:

  • registry/usage.toml: aqua:jdx/usage backend is now unrestricted by platform, making it the first-choice backend on Windows (as it is on Linux/macOS). The asdf:mise-plugins/mise-usage backend retains its linux/macos restriction (expected, since asdf doesn't support Windows). cargo:usage-cli remains as the final fallback for all platforms.
  • schema/mise.json: Improves the description of the install_before setting to surface its supply chain protection intent — this is an unrelated documentation clarification bundled into the same commit.

The logic is consistent with other registry entries that have been extended to Windows (e.g., claude.toml). No backend ordering or fallback semantics are changed for existing Linux/macOS/FreeBSD users.

Confidence Score: 5/5

  • Safe to merge — low-risk registry metadata change with no impact on existing Linux/macOS/FreeBSD users.
  • Both changes are minimal and targeted: one relaxes a platform constraint in a TOML config (no code logic altered), and the other is a one-line description improvement in the JSON schema. No backend ordering changes for existing platforms, and the cargo:usage-cli fallback remains intact for edge cases.
  • No files require special attention.

Important Files Changed

Filename Overview
registry/usage.toml Removes platforms restriction from aqua:jdx/usage (was linux/macos only) and drops the top-level os allowlist so Windows users no longer fall through to cargo:usage-cli; asdf backend retains its linux/macos restriction.
schema/mise.json Minor documentation improvement: clarifies the install_before field description to mention supply chain protection intent alongside the date-based filter semantics.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[User installs 'usage' via mise] --> B{Platform?}
    B -->|Windows| C_new[aqua:jdx/usage\n✅ Now eligible on Windows]
    B -->|Linux / macOS| C_new
    B -->|Linux / macOS| D[asdf:mise-plugins/mise-usage\nplatforms: linux, macos]
    C_new -->|aqua backend succeeds| Z[✅ Installed via aqua]
    C_new -->|aqua backend fails| E[cargo:usage-cli\nfallback — all platforms]
    D -->|asdf backend fails| E
    E --> F[✅ Installed via cargo]

    style C_new fill:#d4edda,stroke:#28a745
    style B fill:#fff3cd,stroke:#ffc107
Loading

Reviews (2): Last reviewed commit: "[autofix.ci] apply automated fixes" | Re-trigger Greptile

Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Comment thread registry/usage.toml
{ full = "aqua:jdx/usage", platforms = [
"linux",
"macos",
] },
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed os field instead of adding windows to it

Low Severity

The PR description says "Add windows to the top-level os list" but the os field was removed entirely instead of being changed to os = ["linux", "macos", "freebsd", "windows"]. Since is_supported_os() treats an empty os slice as "all platforms supported," the tool is now advertised as available on every OS (e.g., openbsd, netbsd), not just the four intended ones. The cargo:usage-cli fallback mitigates practical impact, but the tool's stated platform support is broader than intended.

Fix in Cursor Fix in Web

@jdx jdx merged commit b128ab2 into main Mar 22, 2026
20 of 21 checks passed
@jdx jdx deleted the fix/usage-windows-support branch March 22, 2026 16:07
@github-actions
Copy link
Copy Markdown

Hyperfine Performance

mise x -- echo

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.3.10 x -- echo 24.1 ± 0.5 23.3 27.9 1.00
mise x -- echo 24.1 ± 0.4 23.5 26.0 1.00 ± 0.03

mise env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.3.10 env 23.7 ± 0.8 22.8 29.6 1.00
mise env 23.8 ± 0.6 22.6 28.1 1.01 ± 0.04

mise hook-env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.3.10 hook-env 24.1 ± 0.4 23.4 26.1 1.00
mise hook-env 24.6 ± 0.8 23.4 33.1 1.02 ± 0.04

mise ls

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.3.10 ls 23.4 ± 0.5 22.6 25.3 1.00
mise ls 23.8 ± 0.7 22.7 26.7 1.02 ± 0.04

xtasks/test/perf

Command mise-2026.3.10 mise Variance
install (cached) 152ms 151ms +0%
ls (cached) 85ms 85ms +0%
bin-paths (cached) 87ms 87ms +0%
task-ls (cached) 852ms 828ms +2%

mise-en-dev added a commit that referenced this pull request Mar 22, 2026
### 🚀 Features

- **(github)** read tokens from gh CLI hosts.yml config by @jdx in
[#8692](#8692)
- **(task)** support optional `args` and `env` fields in `run` entries
by @jdx in [#8687](#8687)
- **(task)** add --skip-tools flag to mise run by @jdx in
[#8699](#8699)
- **(vfox)** add try_get, try_head, try_download_file to Lua HTTP module
by @jdx in [#8697](#8697)

### 🐛 Bug Fixes

- **(config)** recognize SSH and other non-HTTPS URLs in get_repo_url by
@modestman in [#8666](#8666)
- **(docs)** add dark mode support to favicon by @jdx in
[#8678](#8678)
- **(env)** support multiple --env/-E flags by @jdx in
[#8686](#8686)
- **(github)** rename_exe renames correct binary when archive contains
multiple executables by @jdx in
[#8700](#8700)
- **(implode)** include system data dir in implode cleanup by @jdx in
[#8696](#8696)
- **(install)** skip GitHub API calls for aqua tools in --locked mode by
@jdx in [#8679](#8679)
- **(install)** skip redundant provenance verification when lockfile has
integrity data by @jdx in [#8688](#8688)
- **(lock)** respect existing platforms in lockfile when running `mise
lock` by @jdx in [#8708](#8708)
- **(lock)** skip global config lockfile by default by @jdx in
[#8707](#8707)
- **(node)** expand tilde in default_packages_file path by @jdx in
[#8709](#8709)
- **(shell)** error when no version specified instead of silent no-op by
@jdx in [#8693](#8693)
- **(shim)** detect shims by checking shims directory instead of binary
name by @jdx in [#8694](#8694)
- **(task)** inherit task_config.dir for included TOML and file tasks by
@jdx in [#8689](#8689)
- **(task)** strip inline args when validating run.tasks references by
@jdx in [#8701](#8701)
- **(task)** include idiomatic version files in monorepo task toolset by
@jdx in [#8702](#8702)
- **(task)** improve error message when task files are not executable by
@jdx in [#8705](#8705)
- **(test)** update vfox provenance test for checksum-backed skip by
@jdx in [#8703](#8703)
- improve usage spec element support in tasks by @nkakouros in
[#8623](#8623)
- make env plugin (Module) vars available in Tera template context by
@victor-founder in [#8682](#8682)
- respect MISE_COLOR=0 for color_eyre error output by @jdx in
[#8690](#8690)
- add windows support for usage tool registry by @jdx in
[#8713](#8713)

### 📚 Documentation

- **(task)** clarify interactive task blocking behavior by @jdx in
[#8685](#8685)
- improve visibility of install_before setting by @jdx in
[#8712](#8712)

### 📦 Registry

- add rtk ([github:rtk-ai/rtk](https://github.com/rtk-ai/rtk)) by
@bricelalu in [#8683](#8683)

### New Contributors

- @victor-founder made their first contribution in
[#8682](#8682)
- @modestman made their first contribution in
[#8666](#8666)
- @bricelalu made their first contribution in
[#8683](#8683)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

documentation issue: installation via mise-en-place fails via mise use -g usage but works via mise use -g aqua:jdx/usage

1 participant