tool-creator
Skill3 starsChanged 6 days agoApache-2.0View on GitHub
Creates and improves tools for Cluaiz: skills (instructions with optional scripts), WebAssembly plugins and MCP server packages, with correct manifests and registry entries. It also checks a tool package for problems and tests it. Use when the user wants a new tool, skill, plugin or MCP integration, wants an existing tool improved, or asks whether a tool package is correct.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- fritzprix/libr-agenttheir own version, first seen Oct 26, 2026
- radimsem/mithriltheir own version, first seen Apr 10, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- radimsem/mithril★ 16same name
- fritzprix/libr-agent★ 11same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository10 other files it gives its agents.
- build-featureSkill
- code-interpreterSkill
- code-reviewerSkill
- deep-researchSkill
- frontend-designSkill
- git-assistantSkill
- githubSkill
- learn-cluaizSkill
- speechSkill
- workflow-managementSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 3 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 13
Check that no tool does this already: find_tools in a chat, cluaiz skill list, cluaiz plugin list or cluaiz mcp list, or the family.json …
- Very specific: line 14
When the tool goes into a repository, read that repository's AGENTS.md and CONTRIBUTING.md.
- Distinctive: line 40
Keep them short: in a small context, the schemas of all installed tools share about 8,000 characters.
- Very specific: line 41
Next steps: do only what next lists, and add no files the user did not ask for.
- Very specific: line 43
Write the logic in src/lib.rs and build with cargo build --release --target wasm32-unknown-unknown.
- Very specific: line 49
Validate: Call validate_tool with tool_id or path.
- Distinctive: line 54
Run it through a model: Use good input and bad input.
- Distinctive: line 57
Use a small model and a large model.
- Very specific: line 69
Never put keys or passwords in a tool's files.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Tool Creator
Links such as references/... are files of this skill. Read them with read_tool_file. In the terminal agent, read_item with tool-creator gives the folder; then call read_file on the folder plus the link.
Understand the need
- Find out what the tool should do: its input, its output, and who uses it (the model in a chat, the terminal agent, or an App). Ask one short question when the answer changes the design.
- Check that no tool does this already:
find_toolsin a chat,cluaiz skill list,cluaiz plugin listorcluaiz mcp list, or thefamily.jsonfiles incluaiz-tools. Extend an existing tool rather than making a second one. - When the tool goes into a repository, read that repository's
AGENTS.mdandCONTRIBUTING.md.
Choose the type
| The tool must | Type |
| Teach a way of working | A skill: references/skill-authoring.md |
| Do a fragile, mechanical step reliably (parse, check, call an API) | A skill with Python functions (same file) |
| Compute from its input or call public web addresses, with nothing to install | A WebAssembly plugin: references/wasm-plugin-authoring.md |
| Use files, a database or other programs, or wrap an existing MCP server | MCP: references/mcp-server-authoring.md |
Run as a /command, or on a schedule or event | A workflow or a flow, not a tool: references/workflow-and-flow-authoring.md |
A WebAssembly plugin cannot read files or start programs. Use MCP for that.
Create
- Call
create_tool. Pass the category, atool_id, a name, a description and triggers. An MCP tool also needscommandandargs, with the package version pinned. The tool is written to the Engine's tools folder. When the open folder iscluaiz-tools, it is also added there and tofamily.json. An existing tool is replaced only withoverwrite: trueand the user's yes. - Description:
- Written in the third person.
- Says what the tool does and when to use it, in the words a user would say.
- Broad enough to cover neighbouring tasks.
- The model chooses tools from the description, so it is the most important line.
- Functions:
- A verb-first name.
- A one-sentence description.
- Each parameter has a type and a short description.
- Keep them short: in a small context, the schemas of all installed tools share about 8,000 characters.
- Next steps: do only what
nextlists, and add no files the user did not ask for. - Plugins:
- Write the logic in
src/lib.rsand build withcargo build --release --target wasm32-unknown-unknown. - Copy the file in as
<tool_id>.wasm, and updatefunctionswhen the inputs change. - The Engine passes only the arguments, not the function name, so a plugin with several functions tells them apart by their arguments.
- Write the logic in
Check and test
- Validate. Call
validate_toolwithtool_idorpath. Fix every error, read the warnings, and call it again. What it cannot see: references/validation-rubric.md. - Run the code directly.
- A script: with a small JSON file of arguments.
- A plugin: with
cargo test. - An MCP server: start it and check that it lists its tools.
- Run it through a model. Use good input and bad input. Bad input must give a clear error, not a crash.
- Test a skill as an evaluation.
- Pick two or three real tasks, and run them with and without the skill.
- Use a small model and a large model.
- Fix what the small model gets wrong.
- Cut whatever the large model did not need.
- Report. Say what you tested and what you did not. Do not say it works before it has run.
Publish
Tools are shared through the cluaiz-tools repository, which takes pull requests. When the user wants a tool published, and it validates and passes its tests, commit it and open a pull request with the git-assistant and github skills.
Rules
- Declare every dependency with
need(required,recommended,optional) andinfo, and every permission the tool uses withinfoandallow(networkalso withaccess); the user reads both at install and can refuse permissions: references/skill-authoring.md. - Never put keys or passwords in a tool's files. Every tool type names the keys and settings it reads in
env. SKILL.mdis for the model: short judgement rules and limits, with no diagrams or long examples.README.mdis for people: it explains what the tool does and includes a Mermaid diagram with quoted labels.- Links are relative to the tool folder, and every file is listed in
versions.<version>.files. - The family key, the folder name and the
idstay the same.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

