From xmake-skills
Installs, inspects, and exports C/C++ packages via xrepo, xmake's standalone package manager. Covers package search, install, fetch, repository management, and virtual environments.
How this skill is triggered — by the user, by Claude, or both
Slash command
/xmake-skills:xrepo-cliThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
`xrepo` is xmake's standalone C/C++ package manager. It shares the xmake runtime but is a full package tool on its own — use it outside of any project to install, query, or enter an environment with C/C++ libraries and tools.
xrepo is xmake's standalone C/C++ package manager. It shares the xmake runtime but is a full package tool on its own — use it outside of any project to install, query, or enter an environment with C/C++ libraries and tools.
xrepomanages global repositories and installed packages.xmake repois a project-local variant. If you want the change to apply everywhere on your machine, usexrepo.
Packages come from the official xmake-repo by default, plus any private repos you register, plus bridges to vcpkg/brew/conan/pacman/apt etc.
xrepo install zlib tbox
xrepo install "zlib 1.2.x" # semver range — QUOTE the spec
xrepo install "zlib >=1.2.0"
xrepo install -m debug zlib # debug build
xrepo install -m release zlib
xrepo install -k shared zlib # dynamic library
xrepo install -k static zlib
xrepo install -p iphoneos -a arm64 zlib
xrepo install -p android -a arm64-v8a --ndk=~/android-ndk-r26 zlib
xrepo install -p mingw --mingw=/opt/llvm-mingw zlib
xrepo install -p cross --sdk=/opt/arm-linux-musleabi-cross zlib
xrepo install -p wasm --toolchain=emcc zlib
Pass recipe options via -f:
xrepo install -f "runtimes='MD'" zlib
xrepo install -f "regex=true,thread=true" boost
xrepo install -f "shared=true,pic=true" openssl
xrepo can install through other package managers and still hand you xmake-style link info:
xrepo install brew::zlib
xrepo install vcpkg::zlib
xrepo install conan::zlib/1.2.11
xrepo install pacman::zlib
xrepo install apt::zlib1g-dev
xrepo install --force zlib # rebuild even if cached
xrepo remove zlib # uninstall
xrepo clean # clean caches
xrepo clean --all
xrepo search zlib "pcr*"
xrepo info zlib
xrepo info shows description, versions, upstream URLs, hashes, supported platforms, and available configs — use it to discover which -f "..." options a package accepts before installing.
xrepo fetch)fetch resolves an installed package and prints the info you would otherwise get through add_packages. Great for dropping xrepo packages into a non-xmake build.
xrepo fetch pcre2 # Lua table (linkdirs/links/defines/includedirs)
xrepo fetch --cflags openssl
xrepo fetch --ldflags openssl
xrepo fetch --cflags --ldflags conan::zlib/1.2.11
xrepo fetch -p iphoneos --cflags "zlib 1.2.x"
Pipe into a Makefile / CMake toolchain:
CFLAGS="$(xrepo fetch --cflags openssl)"
LDFLAGS="$(xrepo fetch --ldflags openssl)"
xrepo download zlib
xrepo download "zlib 2.x"
xrepo download -o /tmp zlib # output directory
Does not build or install — just fetches and extracts the upstream source.
Copy an installed package (headers, libs, cmake files, …) into a standalone directory so you can ship it or hand it to another toolchain:
xrepo export -o /tmp/output zlib
xrepo export -o /tmp/output -p android -a arm64-v8a "zlib 1.2.x"
xrepo add-repo myrepo https://github.com/mygroup/myrepo
xrepo add-repo myrepo https://github.com/mygroup/myrepo dev # branch
xrepo rm-repo myrepo
xrepo list-repo
xrepo update-repo # pull the latest recipes
Private, air-gapped setups typically: add-repo an internal mirror, then install everything from there.
xrepo env drops you into a shell (or runs a single command) with selected packages on PATH / LD_LIBRARY_PATH / PKG_CONFIG_PATH. This is a sizable topic on its own — see the xrepo-env skill for ad-hoc, project-local (./xmake.lua), and named environments, plus CI usage and --show debugging.
| Command | Purpose |
|---|---|
xrepo install <pkg> | install a package |
xrepo remove <pkg> | uninstall |
xrepo update <pkg> | update to newer version |
xrepo search <pattern> | search available recipes |
xrepo info <pkg> | show recipe metadata + configs |
xrepo fetch [--cflags/--ldflags] <pkg> | print link/compile info |
xrepo export -o <dir> <pkg> | export installed package |
xrepo download [-o dir] <pkg> | fetch source only |
xrepo add-repo / rm-repo / list-repo / update-repo | global repo management |
xrepo env ... | virtual environments — see xrepo-env skill |
xrepo clean [--all] | clean caches |
-m debug|release — build mode-k static|shared — library kind-p <plat> / -a <arch> — target platform / arch-f "k=v,k=v" — recipe configs (per package)--runtimes=MD|MT|MDd|MTd — MSVC runtime--ndk=, --sdk=, --mingw=, --vs= — toolchain roots--toolchain=<name> — force a specific toolchain-v / -vD — verbose / diagnosisxrepo install zlib 1.2.x parses 1.2.x as a second package name. Always quote: "zlib 1.2.x".xrepo vs xmake repo. xrepo is global; xmake repo is for project-local repos inside an xmake.lua. They are not interchangeable.xrepo update-repo before install.xrepo fetch --cflags prints paths into ~/.xmake/packages/... — fine for local builds, not portable across machines. Use xrepo export to get a self-contained directory.xrepo env) → xrepo-envxmake.lua project → xmake-packagesxmake-repo-testing-p/-a → xmake-toolchainsnpx claudepluginhub xmake-io/xmake-skills --plugin xmake-skillsAdds third-party C/C++ dependencies to Xmake projects via add_requires / add_packages, configures package options, pins versions, and uses xrepo from the command line.
Guides developers to wrap C++ libraries like libsodium, FFTW, OpenCV as reusable cpp.js packages installable via pnpm add, using scaffold script, CMake builds, and upstream versioning.
Creates reproducible, cross-platform (macOS/Linux) development environments with Flox. Use for project toolchains, system-level dependencies, and onboarding developers.