## gpt-5-tools.json

```json
{
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "view",
        "description": "View a file or directory. For files, optionally search within the file using a regex pattern or limit to a line range. Exclude the 'electron' folder by default unless explicitly requested.",
        "parameters": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "file",
                "directory"
              ],
              "description": "Whether to view a single file or a directory listing (up to 2 levels)."
            },
            "path": {
              "type": "string",
              "description": "Path relative to the repository root."
            },
            "view_range": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "minItems": 2,
              "maxItems": 2,
              "description": "Optional [start_line, end_line] 1-based inclusive range for files."
            },
            "search_query_regex": {
              "type": "string",
              "description": "Optional regex to search within file content (single-line regex)."
            },
            "case_sensitive": {
              "type": "boolean",
              "default": false,
              "description": "Whether the regex search is case-sensitive."
            },
            "context_lines_before": {
              "type": "integer",
              "default": 5,
              "description": "Lines of context to include before each regex match."
            },
            "context_lines_after": {
              "type": "integer",
              "default": 5,
              "description": "Lines of context to include after each regex match."
            }
          },
          "required": [
            "type",
            "path"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "grep-search",
        "description": "Search across multiple files/directories or the whole codebase. Use for finding text/symbols across many files. Excludes 'electron/**' by default unless explicitly overridden.",
        "parameters": {
          "type": "object",
          "properties": {
            "query": {
              "type": "string",
              "description": "Text or regex to search for."
            },
            "paths": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional list of directories or files to limit the search scope."
            },
            "include_globs": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Optional glob patterns to include (e.g., 'src/**/*.ts')."
            },
            "exclude_globs": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": [
                "electron/**"
              ],
              "description": "Optional glob patterns to exclude. Defaults to excluding the 'electron' folder."
            },
            "case_sensitive": {
              "type": "boolean",
              "default": false,
              "description": "Case sensitivity for the search."
            },
            "context_lines_before": {
              "type": "integer",
              "default": 5,
              "description": "Lines of context before each match."
            },
            "context_lines_after": {
              "type": "integer",
              "default": 5,
              "description": "Lines of context after each match."
            },
            "max_results": {
              "type": "integer",
              "default": 5000,
              "description": "Limit the number of matches returned."
            }
          },
          "required": [
            "query"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "codebase-retrieval",
        "description": "High-level retrieval across the current codebase to locate relevant files, classes, functions, or patterns when you don't know where to look.",
        "parameters": {
          "type": "object",
          "properties": {
            "information_request": {
              "type": "string",
              "description": "Natural-language description of what you need to find."
            }
          },
          "required": [
            "information_request"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "git-commit-retrieval",
        "description": "Use the repository’s commit history to find how similar changes were made in the past or why changes happened.",
        "parameters": {
          "type": "object",
          "properties": {
            "information_request": {
              "type": "string",
              "description": "Question about past changes (e.g., how/why a feature was implemented)."
            }
          },
          "required": [
            "information_request"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "str-replace-editor",
        "description": "Edit existing files safely. Use 'str_replace' for in-place replacements with explicit line ranges, or 'insert' to insert new content at a specific line.",
        "parameters": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string",
              "enum": [
                "str_replace",
                "insert"
              ],
              "description": "Edit mode: 'str_replace' or 'insert'."
            },
            "path": {
              "type": "string",
              "description": "Path of the file to edit, relative to repo root."
            },
            "instruction_reminder": {
              "type": "string",
              "description": "Must be exactly: 'ALWAYS BREAK DOWN EDITS INTO SMALLER CHUNKS OF AT MOST 150 LINES EACH.'"
            },
            "insert_line_1": {
              "type": "integer",
              "description": "For 'insert': 1-based line number after which to insert. Use 0 to insert at the very beginning."
            },
            "new_str_1": {
              "type": "string",
              "description": "For 'str_replace' and 'insert': the new content."
            },
            "old_str_1": {
              "type": "string",
              "description": "For 'str_replace': the exact original text to replace (must match exactly, including whitespace)."
            },
            "old_str_start_line_number_1": {
              "type": "integer",
              "description": "For 'str_replace': 1-based start line of old_str_1."
            },
            "old_str_end_line_number_1": {
              "type": "integer",
              "description": "For 'str_replace': 1-based end line of old_str_1 (inclusive)."
            }
          },
          "required": [
            "command",
            "path",
            "instruction_reminder"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "save-file",
        "description": "Create a new file. Does not modify existing files.",
        "parameters": {
          "type": "object",
          "properties": {
            "instructions_reminder": {
              "type": "string",
              "description": "Must be exactly: 'LIMIT THE FILE CONTENT TO AT MOST 300 LINES. IF MORE CONTENT NEEDS TO BE ADDED USE THE str-replace-editor TOOL TO EDIT THE FILE AFTER IT HAS BEEN CREATED.'"
            },
            "path": {
              "type": "string",
              "description": "Path for the new file, relative to repo root."
            },
            "file_content": {
              "type": "string",
              "description": "Content to write into the new file."
            },
            "add_last_line_newline": {
              "type": "boolean",
              "default": true,
              "description": "Whether to ensure a trailing newline."
            }
          },
          "required": [
            "instructions_reminder",
            "path",
            "file_content"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "remove-files",
        "description": "Delete files from the workspace in a reversible way.",
        "parameters": {
          "type": "object",
          "properties": {
            "file_paths": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "List of file paths to remove, relative to repo root."
            }
          },
          "required": [
            "file_paths"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "launch-process",
        "description": "Run a shell command. Use wait=true for short commands. OS is win32; shell is 'bash'.",
        "parameters": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string",
              "description": "The shell command to execute."
            },
            "wait": {
              "type": "boolean",
              "description": "Whether to wait for the process to complete."
            },
            "max_wait_seconds": {
              "type": "integer",
              "description": "Timeout in seconds when wait=true."
            },
            "cwd": {
              "type": "string",
              "description": "Absolute working directory for the command."
            }
          },
          "required": [
            "command",
            "wait",
            "max_wait_seconds",
            "cwd"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "read-process",
        "description": "Read output from a previously launched process.",
        "parameters": {
          "type": "object",
          "properties": {
            "terminal_id": {
              "type": "integer",
              "description": "Target terminal ID."
            },
            "wait": {
              "type": "boolean",
              "description": "Whether to wait for completion."
            },
            "max_wait_seconds": {
              "type": "integer",
              "description": "Timeout when wait=true."
            }
          },
          "required": [
            "terminal_id",
            "wait",
            "max_wait_seconds"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "write-process",
        "description": "Write input to a running process’s stdin.",
        "parameters": {
          "type": "object",
          "properties": {
            "terminal_id": {
              "type": "integer",
              "description": "Target terminal ID."
            },
            "input_text": {
              "type": "string",
              "description": "Text to write to stdin."
            }
          },
          "required": [
            "terminal_id",
            "input_text"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "kill-process",
        "description": "Kill a running process by terminal ID.",
        "parameters": {
          "type": "object",
          "properties": {
            "terminal_id": {
              "type": "integer",
              "description": "Target terminal ID."
            }
          },
          "required": [
            "terminal_id"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "list-processes",
        "description": "List all known terminals created with the launch-process tool.",
        "parameters": {
          "type": "object",
          "properties": {},
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "diagnostics",
        "description": "Return IDE issues (errors, warnings, etc.) for specified files.",
        "parameters": {
          "type": "object",
          "properties": {
            "paths": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "List of file paths to get issues for."
            }
          },
          "required": [
            "paths"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "read-terminal",
        "description": "Read the visible output from the active or most-recently used VSCode terminal.",
        "parameters": {
          "type": "object",
          "properties": {
            "only_selected": {
              "type": "boolean",
              "description": "Whether to read only the selected text."
            }
          },
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "open-browser",
        "description": "Open a URL in the default browser.",
        "parameters": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string",
              "description": "URL to open."
            }
          },
          "required": [
            "url"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "web-search",
        "description": "Search the web using Google Custom Search API.",
        "parameters": {
          "type": "object",
          "properties": {
            "query": {
              "type": "string",
              "description": "Search query."
            },
            "num_results": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10,
              "default": 5,
              "description": "Number of results to return (1–10)."
            }
          },
          "required": [
            "query"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "web-fetch",
        "description": "Fetch a webpage and return its content in Markdown format.",
        "parameters": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string",
              "description": "URL to fetch."
            }
          },
          "required": [
            "url"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "view-range-untruncated",
        "description": "View a specific line range from previously truncated content by reference ID.",
        "parameters": {
          "type": "object",
          "properties": {
            "reference_id": {
              "type": "string",
              "description": "Reference ID from truncation footer."
            },
            "start_line": {
              "type": "integer",
              "description": "1-based inclusive start line."
            },
            "end_line": {
              "type": "integer",
              "description": "1-based inclusive end line."
            }
          },
          "required": [
            "reference_id",
            "start_line",
            "end_line"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "search-untruncated",
        "description": "Search within previously untruncated content by reference ID.",
        "parameters": {
          "type": "object",
          "properties": {
            "reference_id": {
              "type": "string",
              "description": "Reference ID from truncation footer."
            },
            "search_term": {
              "type": "string",
              "description": "Text to search for."
            },
            "context_lines": {
              "type": "integer",
              "default": 2,
              "description": "Context lines around matches."
            }
          },
          "required": [
            "reference_id",
            "search_term"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "view_tasklist",
        "description": "View the current task list for the conversation.",
        "parameters": {
          "type": "object",
          "properties": {},
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "add_tasks",
        "description": "Add one or more new tasks (and optional subtasks) to the task list.",
        "parameters": {
          "type": "object",
          "properties": {
            "tasks": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "parent_task_id": {
                    "type": "string"
                  },
                  "after_task_id": {
                    "type": "string"
                  },
                  "state": {
                    "type": "string",
                    "enum": [
                      "NOT_STARTED",
                      "IN_PROGRESS",
                      "CANCELLED",
                      "COMPLETE"
                    ]
                  }
                },
                "required": [
                  "name",
                  "description"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "tasks"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "update_tasks",
        "description": "Update one or more tasks' properties (state, name, description). Prefer batch updates.",
        "parameters": {
          "type": "object",
          "properties": {
            "tasks": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "task_id": {
                    "type": "string"
                  },
                  "state": {
                    "type": "string",
                    "enum": [
                      "NOT_STARTED",
                      "IN_PROGRESS",
                      "CANCELLED",
                      "COMPLETE"
                    ]
                  },
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  }
                },
                "required": [
                  "task_id"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "tasks"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "reorganize_tasklist",
        "description": "Major restructuring of the task list using a full markdown representation.",
        "parameters": {
          "type": "object",
          "properties": {
            "markdown": {
              "type": "string",
              "description": "Full task list in markdown with exactly one root task."
            }
          },
          "required": [
            "markdown"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "remember",
        "description": "Store long-term memory that can be useful in future interactions.",
        "parameters": {
          "type": "object",
          "properties": {
            "memory": {
              "type": "string",
              "description": "One concise sentence to remember."
            }
          },
          "required": [
            "memory"
          ],
          "additionalProperties": false
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "render-mermaid",
        "description": "Render a Mermaid diagram from the provided definition.",
        "parameters": {
          "type": "object",
          "properties": {
            "diagram_definition": {
              "type": "string",
              "description": "Mermaid definition code."
            },
            "title": {
              "type": "string",
              "description": "Optional title for the diagram."
            }
          },
          "required": [
            "diagram_definition"
          ],
          "additionalProperties": false
        }
      }
    }
  ]
}
```