# PRE Tool Inventory

> Auto-generated from `web/src/tools-defs.js` — do not edit manually.
> Regenerate: `npm run gen:docs` (from `web/`) or `node scripts/gen-tool-docs.js`

**79 tools** across 8 domains.

## Domains

- [Core](#core) (20)
- [DevOps & System](#devops-system) (8)
- [Desktop Automation](#desktop-automation) (8)
- [Personal Information](#personal-information) (5)
- [Scripting](#scripting) (2)
- [Media & Browser](#media-browser) (4)
- [Automation & Intelligence](#automation-intelligence) (16)
- [Cloud Integrations](#cloud-integrations) (16)

## Core

| Tool | Description | Parameters |
|------|-------------|------------|
| `bash` | Run a shell command and return output | **command** |
| `read_file` | Read file contents from disk | **path** |
| `list_dir` | List directory contents | path |
| `glob` | Find files matching a glob pattern | **pattern**, path |
| `grep` | Search file contents with regex | **pattern**, path, include |
| `file_write` | Create or overwrite a file with content | **path**, **content** |
| `file_edit` | Replace exact text in a file | **path**, **old_string**, **new_string** |
| `web_fetch` | Fetch URL content (HTML/JSON/text) | **url** |
| `web_search` | Search the web (returns titles, URLs, and snippets) | **query**, count |
| `memory_save` | Save a persistent memory | **name**, **type**, **description**, **content**, scope |
| `memory_search` | Search saved memories | query |
| `memory_list` | List all saved memories | (none) |
| `memory_delete` | Delete a saved memory | **query** |
| `system_info` | Get system information (OS, CPU, memory, disk) | (none) |
| `spotlight` | Search the entire machine for files by name, content, or metadata | **action**, query, folder, type, path, count |
| `artifact` | Create an interactive HTML artifact (webpage, game, visualization, dashboard) that can be viewed in the browser | **title**, **content**, type |
| `document` | Create a downloadable document file | **title**, **content**, **format**, sheets |
| `screenshot` | Take a screenshot | region |
| `request_tools` | Load additional tool domains on demand | **domain** |
| `session_search` | Search across all past conversations for specific text, commands, or topics | **query**, project, count |

## DevOps & System

| Tool | Description | Parameters |
|------|-------------|------------|
| `process_list` | List running processes | filter |
| `process_kill` | Kill a process by PID | **pid** |
| `monitor` | Start, read, stop, or list background processes | **action**, command, name, id, tail |
| `service_status` | Check service/daemon status | service |
| `net_info` | Get network interface information | (none) |
| `net_connections` | List active network connections | filter |
| `disk_usage` | Show disk usage | path |
| `hardware_info` | Get hardware details (CPU, GPU, memory) | (none) |

## Desktop Automation

| Tool | Description | Parameters |
|------|-------------|------------|
| `computer` | Control the desktop — click, type, scroll, and take screenshots of any application | **action**, x, y, text, key, direction, amount, from_x, from_y, to_x, to_y |
| `window_list` | List open windows | (none) |
| `window_focus` | Focus/activate an application window | **app** |
| `display_info` | Get display/screen information | (none) |
| `clipboard_read` | Read clipboard contents | (none) |
| `clipboard_write` | Write text to clipboard | **content** |
| `open_app` | Open a file, URL, or application | **target** |
| `notify` | Show a desktop notification | **title**, **message** |

## Personal Information

| Tool | Description | Parameters |
|------|-------------|------------|
| `apple_mail` | Send, read, and search email using Outlook | **action**, to, cc, bcc, subject, body, query, id, mailbox, account, count |
| `apple_calendar` | View and create calendar events using Outlook | **action**, title, start, end, location, notes, calendar, query, days, id |
| `apple_contacts` | Search and read contacts from Outlook | **action**, query, name, id, count |
| `apple_reminders` | Create, list, complete, and search tasks using Outlook Tasks | **action**, title, notes, list, due, priority, id, query, count, completed |
| `apple_notes` | Search, read, and create notes stored as local markdown files in ~/ | **action**, title, body, folder, query, id, count |

## Scripting

| Tool | Description | Parameters |
|------|-------------|------------|
| `applescript` | Run an AppleScript | **script** |
| `powershell_script` | Run a PowerShell script | **script** |

## Media & Browser

| Tool | Description | Parameters |
|------|-------------|------------|
| `image_generate` | Generate an image locally on the GPU | **prompt**, width, height, style |
| `voice` | Voice interface — speech-to-text via Whisper (local) and text-to-speech via macOS say | **action**, text, path, audio_base64, mime_type, voice, rate, output, format, model, language |
| `pdf_export` | Export an artifact to PDF for sharing | **title**, path |
| `browser` | Control a headless Chrome browser | **action**, url, selector, text, x, y, key, direction, amount, script, clear, full_page |

## Automation & Intelligence

| Tool | Description | Parameters |
|------|-------------|------------|
| `cron` | Manage recurring scheduled tasks | **action**, schedule, prompt, description, id |
| `spawn_agent` | Spawn an autonomous sub-agent for research-heavy tasks | **task** |
| `spawn_multi` | Run multiple research sub-agents in PARALLEL, collecting results from all | **tasks** |
| `list_agents` | List all spawned sub-agents and their status (running, completed, failed) | (none) |
| `background_agent` | Launch an autonomous background agent that works independently while the user continues chatting | **action**, task, name, id |
| `trigger` | Event-driven triggers that fire prompts in response to events (file changes, webhooks, polling) | **action**, type, name, prompt, path, glob, recursive, debounce, secret, services, interval_minutes, id |
| `custom_tool` | Create, manage, and inspect self-defined virtual tools | **action**, name, description, parameters, template, workflow_name, steps, speed |
| `experience_search` | Search the experience ledger for lessons learned from past tasks | **query** |
| `experience_list` | List all entries in the experience ledger (lessons from past tasks) | (none) |
| `memory_health` | Check the health of the memory system: staleness report, aging warnings, maintenance status | (none) |
| `workflow` | Record, replay, and manage desktop automation workflows | **action**, name, description, speed |
| `rag` | Local document RAG (Retrieval-Augmented Generation) | **action**, path, query, index_name, top_k, min_score, recursive, description |
| `training_export` | Export training data from conversation history and experience ledger for personal LoRA fine-tuning | **action**, format, project, min_tool_calls, include_experience |
| `finetune` | Fine-tune a Llama model with LoRA on eGPU using tinygrad | **action**, name, base_model, training_data, format, id, lora_rank, lora_alpha, learning_rate, epochs, batch_size, max_seq_len, quantization |
| `calibration` | View the model's calibrated self-knowledge — confidence scores across task categories based on historical performance | **action** |
| `knowledge_graph` | Manage the knowledge graph: entities, relationships, and graph queries | **action**, query, name, type, target, relation, hops |

## Cloud Integrations

| Tool | Description | Parameters |
|------|-------------|------------|
| `github` | Interact with GitHub | **action**, repo, query, number, username, state |
| `gmail` | Gmail API operations (Google account only — on macOS prefer apple_mail which covers all accounts) | **action**, query, id, to, subject, body, account |
| `gdrive` | Google Drive operations | **action**, id, path, name, query, account |
| `gdocs` | Google Docs operations | **action**, id, title, content, account |
| `jira` | Interact with Jira Server | **action**, key, project, jql, summary, description, type, priority, assignee, status, body, count |
| `confluence` | Interact with Confluence Server wiki | **action**, id, title, space, cql, query, content, parent_id, count |
| `smartsheet` | Interact with Smartsheet | **action**, id, name, query, columns, rows, row_ids, title, type, options, text, workspace_id, count |
| `slack` | Interact with Slack | **action**, channel, text, thread_ts, ts, emoji, query, user, count |
| `sharepoint` | Interact with Microsoft SharePoint | **action**, query, site_id, drive_id, folder_path, item_id, list_id, page_id, fields, folder_name, file_name, content, dest_folder, dest_drive_id, filename, filter, count |
| `linear` | Interact with Linear project tracking | **action**, query, id, key, title, description, team, project, status, priority, assignee, body, count |
| `zoom` | Interact with Zoom | **action**, id, topic, start_time, duration, agenda, timezone, type, user_id, from, to, count |
| `figma` | Interact with Figma design files | **action**, file_key, ids, team_id, project_id, message, comment_id, format, scale, depth |
| `asana` | Interact with Asana project management | **action**, id, gid, workspace, project, section, team, name, notes, assignee, due_on, completed, query, text, count |
| `dynamics365` | Interact with Dynamics 365 / Dataverse | **action**, entity, id, query, field, select, filter, orderby, expand, data, count |
| `telegram` | Send messages via Telegram bot | **action**, chat_id, text, parse_mode |
| `wolfram` | Query Wolfram Alpha for computation/facts | **query** |

---

**Bold** parameters are required. Core tools load by default; other domains activate via `request_tools` or auto-detection.

Cloud integrations require credentials in `~/.pre/connections.json`. Desktop automation requires `cliclick` (macOS), `xdotool` (Linux), or native P/Invoke (Windows). Image generation requires ComfyUI.