This skill should be used when the user wants to create a new python-tool-skill: a Kilo skill whose bundled tool is a Python CLI built with Click and run via uvx, with no venv or compiled artifacts polluting the skill directory. Use this skill when the user asks to build, scaffold, or create a skill that wraps a Python CLI tool.
A python-tool-skill is a Kilo skill that bundles a Python CLI tool inside
its assets/ directory. The tool is built with Click
and executed at runtime via uvx,
keeping the skill directory clean — no venv/, no __pycache__, no .pyc
files. It is an alternative to MCP tools that requires no running server.
For full pattern details, consult references/pattern.md.
To create a new python-tool-skill, follow these steps in order.
Before scaffolding, clarify:
Run the bundled init script to generate the directory skeleton:
python scripts/init_python_tool_skill.py <skill-name> --path <output-dir>
The script is located at scripts/init_python_tool_skill.py relative to this
skill's base directory. Use the full absolute path when invoking it.
This creates:
<output-dir>/<skill-name>/
├── SKILL.md
└── assets/
├── tool.py (Click CLI skeleton)
└── pyproject.toml (hatchling build config)
tool.pyEdit assets/tool.py to implement the actual CLI commands. Follow Click
conventions:
@click.group() named cli@cli.command("name")click.echo() for output, click.ClickException for errorsFor Click usage patterns and examples, see references/pattern.md.
pyproject.tomlname to the skill/tool name (must match the CLI command)[project] dependencies[project.scripts] maps the command name to tool:clicd <output-dir>/<skill-name>/assets
uv lock
Commit uv.lock alongside tool.py and pyproject.toml. This ensures
reproducible installs.
uvx --from <path-to-assets> <skill-name> --help
uvx --from <path-to-assets> <skill-name> <command> [args]
After any edit to tool.py or pyproject.toml, add --reinstall:
uvx --from <path-to-assets> --reinstall <skill-name> <command>
Fill in the generated SKILL.md for the new skill:
description in the YAML frontmatter (controls when the skill
triggers — be specific about what queries should activate it)tool.py with a Click group named cli.pyproject.toml must have [tool.hatch.build.targets.wheel] packages = ["."]
so hatchling includes tool.py in the wheel.uv.lock must be committed — it pins dependencies for reproducibility.venv/ inside the skill directory; uvx manages isolation.uvx --from <assets-dir> — the --from argument points to the
assets/ directory, not the skill root.For the full pattern specification, pyproject.toml conventions, Click
patterns, dependency management, troubleshooting, and a comparison with MCP
tools, read references/pattern.md.
npx skills add almcc/python-tool-skill-creator下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer