Help us improve
Share bugs, ideas, or general feedback.
From xmake-skills
Generates compile_commands.json, CMakeLists.txt, Xcode/VS project files, Doxygen docs, and other built-in Xmake plugins. Also defines custom tasks via `task(...)` with menus and option handling.
npx claudepluginhub xmake-io/xmake-skills --plugin xmake-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/xmake-skills:xmake-pluginsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Plugins extend the `xmake` CLI with new subcommands. Xmake ships many built-in plugins; you can also define project-local tasks in `xmake.lua`.
Guides developers through authoring custom xmake plugins and tasks: defining `task()` with `set_menu`, implementing `on_run` logic, packaging standalone plugins, and using `import()` for core modules.
Creates p5.js generative art with seeded randomness, noise fields, and interactive parameter exploration. Use for algorithmic art, flow fields, or particle systems.
Share bugs, ideas, or general feedback.
Plugins extend the xmake CLI with new subcommands. Xmake ships many built-in plugins; you can also define project-local tasks in xmake.lua.
xmake project -k compile_commands # compile_commands.json (clangd/LSP)
xmake project -k cmakelists # export CMakeLists.txt
xmake project -k ninja # build.ninja
xmake project -k vsxmake -m "debug,release" # Visual Studio
xmake project -k xcode # Xcode
xmake doxygen # generate API docs via doxygen
xmake lua <script> # run a Lua snippet in xmake env
xmake l path/to/script.lua # shorthand
xmake macro --begin ... --end # record a macro of commands
xmake repo --add myrepo https://... # manage xrepo repositories
Auto-regenerate compile_commands.json on every build:
add_rules("plugin.compile_commands.autoupdate", {outputdir = "."})
xmake show -l plugins
A task is a named script reachable via xmake <taskname>.
task("hello")
set_menu {
usage = "xmake hello [options]",
description = "Say hello",
options = {
{"n", "name", "kv", "world", "name to greet"}
}
}
on_run(function ()
import("core.base.option")
print("hello, %s!", option.get("name"))
end)
xmake hello --name=ruki
Option spec: {short, long, kind, default, description} where kind is "k" (flag), "kv" (key-value), or "vs" (values).
task("count_files")
set_menu {usage = "xmake count_files", description = "Count .cpp files"}
on_run(function ()
import("core.project.project")
for _, target in pairs(project.targets()) do
local n = #target:sourcefiles()
print("%s: %d files", target:name(), n)
end
end)
Commonly imported modules: core.base.option, core.project.project, core.project.config, core.platform.platform, lib.detect.find_tool, core.tool.toolchain.
task(...) API, lives under ~/.xmake/plugins or a repo).xmake-rulesxmake-commands