원클릭으로
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.