Built-in Tools
TAU includes 37+ built-in tools for file operations, code search, terminal control, and more.
Dynamic Tool Selection
TAU doesn't send all tool schemas to the LLM. It dynamically selects only relevant tools, saving 20-30% tokens per request. Control via TAU_TOOL_SELECTION=dynamic|all|none
File Operations
| Tool | Description |
|---|---|
| read | Read file contents with optional line range |
| write | Create or overwrite a file |
| edit | Search and replace within a file |
| multiedit | Multiple edits in a single operation |
| patch | Apply unified diff patches |
| glob | List files matching glob patterns |
| grep | Search file contents with ripgrep |
| notebookedit | Edit Jupyter notebooks |
Code Intelligence
| Tool | Description |
|---|---|
| code_search | Unified search: regex → grep, text → BM25, semantic → hybrid |
| lsp | LSP operations: hover, definition, references, completions, diagnostics |
| repo_map | Generate repository structure with top-level symbols |
| dependency_graph | Analyze import/dependency relationships |
LSP supports: Rust, TypeScript, Python, Go, C/C++, Java, Ruby, Vue, Svelte
Terminal & Shell
| Tool | Description |
|---|---|
| bash | Execute shell commands with PTY support |
| python_repl | Persistent Python REPL for RLM |
| shadow_run | Run commands in a temporary copy of workspace |
| shellcontrol | Start/stop background processes |
Browser & Vision
| Tool | Description |
|---|---|
| browser_open | Open URL in headless browser |
| browser_snapshot | Get page structure and interactive elements |
| browser_click | Click on element |
| browser_fill | Fill form input |
| browser_screenshot_describe | Screenshot + vision analysis in one call |
| understand_image | Analyze image with vision model |
| understand_images | Compare multiple images |
Web & Docs
| Tool | Description |
|---|---|
| websearch | Search web via Brave Search or SearXNG |
| webfetch | Fetch page content as Markdown/Text/HTML |
| docs | Manage @docs (custom documentation with FTS5) |
RLM (Large Context)
| Tool | Description |
|---|---|
| rlm_load | Load large document into Python REPL |
| rlm_subcall | Call sub-LLM to analyze a chunk (max 50 calls) |
| rlm_search | Search within loaded document |
Task Management
| Tool | Description |
|---|---|
| task_create | Create a new task |
| task_update | Update task status |
| todowrite | Manage TODO list for current session |
| planmode | Switch to plan mode (no edits, just planning) |
User Interaction
| Tool | Description |
|---|---|
| askuser | Ask user a question and wait for response |
| skill | Invoke a skill from the skills system |
Example: Code Search
# TAU automatically routes queries:
# Regex patterns → grep (ripgrep)
code_search("fn handle_.*request")
# Plain text → BM25 (Tantivy index)
code_search("authentication handler")
# Natural language → Hybrid (BM25 + semantic vectors)
code_search("where do we validate user tokens?")