| 518 | - Pattern syntax: Uses ripgrep (not grep) - literal braces need escaping (use \`interface\\{\\}\` to find \`interface{}\` in Go code) |
| 519 | - Multiline matching: By default patterns match within single lines only. For cross-line patterns like \`struct \\{[\\s\\S]*?field\`, use \`multiline: true\` |
| 520 | `}var n3="Grep";var qM=y(()=>{Z$()});var X4="Edit",Uf8="/.claude/**",Qf8="~/.claude/**",df8="File has been unexpectedly modified. Read it again before attempting to write it.";function PN1(q){let K=q.trim();if(!K)return null;if(K.endsWith("-")){let $=parseInt(K.slice(0,-1),10);if(isNaN($)||$<1)return null;return{firstPage:$,lastPage:1/0}}let _=K.indexOf("-");if(_===-1){let $=parseInt(K,10);if(isNaN($)||$<1)return null;return{firstPage:$,lastPage:$}}let z=parseInt(K.slice(0,_),10),Y=parseInt(K.slice(_+1),10);if(isNaN(z)||isNaN(Y)||z<1||Y<1||Y<z)return null;return{firstPage:z,lastPage:Y}}function uc6(){return!D5().toLowerCase().includes("claude-3-haiku")}function KT6(q){let K=q.startsWith(".")?q.slice(1):q;return VJ_.has(K.toLowerCase())}var VJ_;var cf8=y(()=>{aq();VJ_=new Set(["pdf"])});function koq(q,K,_){return`Reads a file from the local filesystem. You can access any file directly by using this tool. |
| 521 | Assume this tool is able to read all files on the machine. If the User provides a path to a file assume that path is valid. It is okay to read a file that does not exist; an error will be returned. |
| 522 | |
| 523 | Usage: |
| 524 | - The file_path parameter must be an absolute path, not a relative path |
| 525 | - By default, it reads up to ${mc6} lines starting from the beginning of the file${K} |
| 526 | ${_} |
| 527 | ${q} |
| 528 | - This tool allows Claude Code to read images (eg PNG, JPG, etc). When reading an image file the contents are presented visually as Claude Code is a multimodal LLM.${uc6()?` |
| 529 | - This tool can read PDF files (.pdf). For large PDFs (more than 10 pages), you MUST provide the pages parameter to read specific page ranges (e.g., pages: "1-5"). Reading a large PDF without the pages parameter will fail. Maximum 20 pages per request.`:""} |
| 530 | - This tool can read Jupyter notebooks (.ipynb files) and returns all cells with their outputs, combining code, text, and visualizations. |
| 531 | - This tool can only read files, not directories. To read a directory, use an ls command via the ${_q} tool. |
| 532 | - You will regularly be asked to read screenshots. If the user provides a path to a screenshot, ALWAYS use this tool to view the file at the path. This tool will work with all temporary file paths. |
| 533 | - If you read a file that exists but has empty contents you will receive a system reminder warning in place of file contents.`}var Cq="Read",_T6="File unchanged since last read. The content from the earlier Read tool_result in this conversation is still current — refer to that instead of re-reading.",mc6=2000,Zoq="Read a file from the local filesystem.",Goq="- Results are returned using cat -n format, with line numbers starting at 1",Toq="- You can optionally specify a line offset and limit (especially handy for long files), but it's recommended to read the whole file by not providing these parameters",voq="- When you already know which part of the file you need, only read that part. This can be important for larger files.";var IY=y(()=>{cf8()});function NJ_(){return` |
| 534 | - If this is an existing file, you MUST use the ${Cq} tool first to read the file's contents. This tool will fail if you did not read the file first.`}function Voq(){return`Writes a file to the local filesystem. |
| 535 | |
| 536 | Usage: |