Claude-skill-registry anubis-windows-commands
Prevents Git Bash path conversion issues when running Anubis commands on Windows. Use when building targets with `cargo run` or `anubis.exe` that use `//` target paths.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/anubis-windows-commands" ~/.claude/skills/majiayu000-claude-skill-registry-anubis-windows-commands && rm -rf "$T"
manifest:
skills/data/anubis-windows-commands/SKILL.mdsource content
Anubis Windows Commands
Problem
When running Claude Code on Windows in Git Bash (MSYS/MinGW environment), the shell automatically converts paths starting with
// to /. This breaks Anubis target paths like //mode:win_dev or //samples/basic/simple_cpp:simple_cpp.
Example of the problem:
# What you type: cargo run --release -- build -m //mode:win_dev -t //samples/basic/simple_cpp:simple_cpp # What Git Bash sends to the command: cargo run --release -- build -m /mode:win_dev -t /examples/simple_cpp:simple_cpp
This causes Anubis to fail because it expects target paths to start with
//.
Solution
Use the
MSYS_NO_PATHCONV=1 environment variable prefix to disable Git Bash path conversion.
Required Command Format
For cargo run
commands:
cargo runMSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:win_dev -t //samples/basic/simple_cpp:simple_cpp
For anubis.exe
directly:
anubis.exeMSYS_NO_PATHCONV=1 ./target/release/anubis.exe build -m //mode:win_dev -t //samples/basic/simple_cpp:simple_cpp
For multi-target builds:
MSYS_NO_PATHCONV=1 cargo run --release -- build --workers 16 -l debug --mode //mode:win_release --targets //samples/basic/nested_staticlib_cpp/...
When to Apply This Fix
Apply
MSYS_NO_PATHCONV=1 when ALL of these conditions are true:
- Platform is Windows (
ishost_platform
)windows - Shell is Git Bash (MSYS/MinGW environment - check for
env var orMSYSTEM
path)/usr/bin/bash - Command contains
paths (Anubis target notation)//
Detection
To detect if you're in Git Bash on Windows:
# Check if MSYSTEM is set (Git Bash sets this) echo $MSYSTEM # Or check the shell path echo $SHELL
If
MSYSTEM is set to MINGW64, MINGW32, or MSYS, you're in Git Bash and need the prefix.
Command Templates
Build a single target (Windows dev mode):
MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:win_dev -t //samples/basic/simple_cpp:simple_cpp
Build a single target (Windows release mode):
MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:win_release -t //samples/basic/simple_cpp:simple_cpp
Build a single target (Linux cross-compile):
MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:linux_dev -t //samples/basic/simple_cpp:simple_cpp
Build all targets in a directory (recursive):
MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:win_dev -t //samples/basic/...
Build with debug logging:
MSYS_NO_PATHCONV=1 cargo run --release -- build -l debug -m //mode:win_dev -t //samples/basic/simple_cpp:simple_cpp
Build with trace logging and custom worker count:
MSYS_NO_PATHCONV=1 cargo run --release -- build --workers 16 -l trace -m //mode:win_dev -t //samples/basic/simple_cpp:simple_cpp
Build multiple specific targets:
MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:win_dev -t //samples/basic/simple_cpp:simple_cpp -t //samples/basic/trivial_cpp:trivial_cpp
Common Anubis Commands Reference
| Action | Command |
|---|---|
| Build target | |
| Install toolchains | (no paths, no prefix needed) |
| Build Anubis itself | (no paths, no prefix needed) |
| Run tests | (no paths, no prefix needed) |
Notes
- The
prefix is harmless on non-Windows systems or non-Git-Bash shells, but it's only necessary in Git Bash on Windows.MSYS_NO_PATHCONV=1 - This only affects commands with
path arguments. Standard cargo commands like//
orcargo build
don't need the prefix.cargo test - The prefix must come before the command, not after.
Troubleshooting
If you see errors like:
Error: Failed to parse target path '/mode:win_dev'Error: Target path must start with '//'Error: Invalid target specification
These indicate Git Bash path conversion is occurring. Add the
MSYS_NO_PATHCONV=1 prefix.