anubis-windows-commands
This Skill provides a specific workaround for a Git Bash path conversion issue on Windows that breaks Anubis build commands. It documents the exact environment variable prefix needed and when to apply it, with clear command templates and troubleshooting steps.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install forrestthewoods-anubis-anubis-windows-commands
Repository
Skill path: .claude/skills/anubis-windows-commands
This Skill provides a specific workaround for a Git Bash path conversion issue on Windows that breaks Anubis build commands. It documents the exact environment variable prefix needed and when to apply it, with clear command templates and troubleshooting steps.
Open repositoryBest for
Primary workflow: Ship Full Stack.
Technical facets: Full Stack.
Target audience: Developers using the Anubis build system on Windows with Git Bash (MSYS2/MinGW).
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: forrestthewoods.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install anubis-windows-commands into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/forrestthewoods/anubis before adding anubis-windows-commands to shared team environments
- Use anubis-windows-commands for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
--- name: anubis-windows-commands description: 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. --- # 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 `//examples/simple_cpp:simple_cpp`. **Example of the problem:** ```bash # What you type: cargo run --release -- build -m //mode:win_dev -t //examples/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: ```bash MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:win_dev -t //examples/simple_cpp:simple_cpp ``` ### For `anubis.exe` directly: ```bash MSYS_NO_PATHCONV=1 ./target/release/anubis.exe build -m //mode:win_dev -t //examples/simple_cpp:simple_cpp ``` ### For multi-target builds: ```bash MSYS_NO_PATHCONV=1 cargo run --release -- build --workers 16 -l debug --mode //mode:win_release --targets //examples/nested_staticlib_cpp/... ``` ## When to Apply This Fix Apply `MSYS_NO_PATHCONV=1` when ALL of these conditions are true: 1. **Platform is Windows** (`host_platform` is `windows`) 2. **Shell is Git Bash** (MSYS/MinGW environment - check for `MSYSTEM` env var or `/usr/bin/bash` path) 3. **Command contains `//` paths** (Anubis target notation) ## Detection To detect if you're in Git Bash on Windows: ```bash # 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): ```bash MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:win_dev -t //examples/simple_cpp:simple_cpp ``` ### Build a single target (Windows release mode): ```bash MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:win_release -t //examples/simple_cpp:simple_cpp ``` ### Build a single target (Linux cross-compile): ```bash MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:linux_dev -t //examples/simple_cpp:simple_cpp ``` ### Build all targets in a directory (recursive): ```bash MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:win_dev -t //examples/... ``` ### Build with debug logging: ```bash MSYS_NO_PATHCONV=1 cargo run --release -- build -l debug -m //mode:win_dev -t //examples/simple_cpp:simple_cpp ``` ### Build with trace logging and custom worker count: ```bash MSYS_NO_PATHCONV=1 cargo run --release -- build --workers 16 -l trace -m //mode:win_dev -t //examples/simple_cpp:simple_cpp ``` ### Build multiple specific targets: ```bash MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:win_dev -t //examples/simple_cpp:simple_cpp -t //examples/trivial_cpp:trivial_cpp ``` ## Common Anubis Commands Reference | Action | Command | |--------|---------| | Build target | `MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:MODE -t //path:target` | | Install toolchains | `cargo run --release -- install-toolchains` (no `//` paths, no prefix needed) | | Build Anubis itself | `cargo build --release` (no `//` paths, no prefix needed) | | Run tests | `cargo test` (no `//` paths, no prefix needed) | ## Notes - The `MSYS_NO_PATHCONV=1` prefix is harmless on non-Windows systems or non-Git-Bash shells, but it's only necessary in Git Bash on Windows. - This only affects commands with `//` path arguments. Standard cargo commands like `cargo build` or `cargo test` don't need the prefix. - 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.