SKILL.md
Add Backend Tool
Instructions
- Read
backend/main.pyto understand existing tool patterns:
- Find the tools list with function definitions - Review helper functions (readfile, writefile, runterminalcommand, web_search)
- Create the helper function:
``python def newtoolname(param1: str, param2: int = 10) -> str: """Docstring explaining the tool.""" try: # Implementation return result except Exception as e: return f"Error: {str(e)}" ``
- Add tool definition to the
toolslist:
``python { "type": "function", "function": { "name": "newtoolname", "description": "What this tool does and when to use it", "parameters": { "type": "object", "properties": { "param1": {"type": "string", "description": "..."}, "param2": {"type": "integer", "description": "..."} }, "required": ["param1"] } } } ``
- Add tool invocation handler in the WebSocket message loop:
``python elif funcname == "newtoolname": result = newtool_name(**args) ``
- Update mode restrictions if needed:
- Agent mode: full access - Chat mode: add to allowed list only if read-only/safe
Examples
- "Add a tool to list directory contents"
- "Create a tool for git operations"
- "Add web scraping capability"
Guardrails
- Include proper error handling with try/except
- Add timeout for any long-running operations
- Consider security implications (Chat mode restrictions)
- Never hardcode API keys or secrets
- Document the tool's purpose in the function docstring