بنقرة واحدة
make-tool
Creates or updates custom tools for Raijin. Use when asked to create, add, write, or modify a custom tool.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Creates or updates custom tools for Raijin. Use when asked to create, add, write, or modify a custom tool.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
Creates or updates prompt templates for Raijin. Use when asked to create, add, write, or modify a prompt template.
Creates or updates skills for Raijin
Commits git changes by appropriately breaking them into atomic units.
Interacts with any CLI/TUI application via TMUX.
استنادا إلى تصنيف SOC المهني
| name | make-tool |
| description | Creates or updates custom tools for Raijin. Use when asked to create, add, write, or modify a custom tool. |
| hide-from-llm | true |
A custom tool is any executable file that implements two modes:
./my-tool --infoPrint a JSON object describing the tool to stdout, then exit 0:
{
"name": "tool-name",
"description": "What this tool does",
"parameters": {
"param1": { "type": "string", "description": "First parameter" },
"count": { "type": "integer", "description": "How many items" }
},
"required": ["param1"]
}
Schema rules:
name (required): lowercase identifier, no spaces.description (required): clear sentence explaining what the tool does.parameters: map of parameter name → JSON Schema object. Supported types: string, integer, number, boolean, array, object.required: list of parameter names that must be provided../my-tool (with JSON on stdin)Read a JSON object from stdin matching the declared parameters, execute the tool logic, and print the result as plain text to stdout. Exit 0 on success.
On failure, print an error message to stderr and exit non-zero.
Custom tools are discovered from two directories:
| Scope | Path |
|---|---|
| Global | {{USER_TOOLS_DIR}}/ |
| Project | {{PROJECT_TOOLS_DIR}}/ (relative to working directory) |
Project tools take precedence if names collide with global ones.
{{PROJECT_TOOLS_DIR}}/ unless the user explicitly asks for a global tool ({{USER_TOOLS_DIR}}/).#!/usr/bin/env python3) unless the user specifies another language.chmod +x <path>.<path> --info — verify valid JSON with name, description, and parameters.echo '{"param":"value"}' | <path> — verify it produces output.{{PROJECT_TOOLS_DIR}}/ then {{USER_TOOLS_DIR}}/.--info and a sample run after editing.#!/usr/bin/env python3
"""Raijin custom tool: <tool-name>."""
import json
import sys
def info():
return {
"name": "<tool-name>",
"description": "<What it does>",
"parameters": {
"param1": {"type": "string", "description": "<Description>"},
},
"required": ["param1"],
}
def run(params):
# Tool logic here
result = params["param1"]
return result
def main():
if "--info" in sys.argv:
print(json.dumps(info()))
return
params = json.load(sys.stdin)
try:
result = run(params)
print(result)
except Exception as e:
print(str(e), file=sys.stderr)
sys.exit(1)
if __name__ == "__main__":
main()
#!/bin/sh
# Raijin custom tool: <tool-name>
if [ "$1" = "--info" ]; then
cat <<'EOF'
{
"name": "<tool-name>",
"description": "<What it does>",
"parameters": {
"param1": { "type": "string", "description": "<Description>" }
},
"required": ["param1"]
}
EOF
exit 0
fi
# Read JSON input from stdin and process it
INPUT=$(cat)
# Tool logic here
echo "Result: $INPUT"
<golden_rules>
--info and a sample run before reporting success.