Built-in tools
Mework has 49 built-in tools the model can call. You switch 31 of them on per conversation; the other 18 come with another setting, such as web access, memory or Plan mode.
How a tool is turned on
Open More options → Conversation settings → Tools from the top bar, or press ⇧⌘, (CtrlShift, on Windows). Each row is one tool: click it to switch the tool on or off. What you set here applies to this conversation only.
Tools without a row come with another setting. Each group below says which.
A new conversation starts with the tools of its preset (Presets). The built-in mework preset turns on every tool that has a row, with one shell: zsh on macOS, PowerShell on Windows. It also turns on web search, both kinds of memory, Load skills on demand and Tool discovery.
Two checks happen when a request goes out, whatever the rows say: a shell tool is left out when none of the conversation's machines has that shell, and preview_screenshot and preview_upload_image are left out for models without Vision.
Locked rows
After the first request, some rows can show a lock instead of + or −:
- Orange: the model's prompt cache is still warm, which lasts for the model's Cache lifetime (minutes) after the last request (30 by default). Turning off a tool that request carried throws the cache away, so the next request pays for the whole conversation again. The row still moves; the first time in a conversation, Mework asks with This change throws the cache away. Turning a tool on is never orange.
- Gray: the model does not have Mid-conversation tools (model properties), so its tools were fixed at the first request. Select another model to change them.
The lock belongs to the model that sent the last request. Selecting another model lifts it; selecting that model again brings it back.
Approvals
Whether a call waits for you depends on the conversation's security level, chosen under the message box: Manual, Accept edits or Full access.
| Call | Manual | Accept edits | Full access |
|---|---|---|---|
| Read inside the conversation's workspaces | runs | runs | runs |
| Read anywhere else | asks | runs | runs |
| Write inside the workspaces | asks | runs | runs |
| Write anywhere else | asks | asks | runs |
| Shell commands, web, workflows, preview servers and page actions | asks | asks | runs |
Mework's app-data folder (where it is) counts as inside. Its memory and handoffs folders are off limits to the file tools at every level.
The Reviewed mark flags the tools whose calls write or act without a fixed bound, the ones that can stop for your approval below Full access: write, edit, the shells, the web tools, workflow, agent_spawn, fork, and the preview tools that act on the page or read its console, network requests or screenshots. preview_snapshot, preview_inspect and preview_resize only read or adjust the built-in browser, never ask and carry no mark. Each tool's page says when it asks.
Some cards appear at every level, Full access included: writing global memory, a recursive shell delete aimed at the filesystem root, your home folder, a system folder or a path built from a variable or command substitution, and acting on a preview page you signed into yourself. Always allow on a card lets later calls of the same tool in this conversation, at the same risk or lower, through without asking, even after Mework restarts; shells, preview page actions and MCP tools never offer it. More in Approvals and safety.
Files and search
These work on files in the conversation's workspaces, and each has its own row. write and edit only change an existing file the model has read or written in this conversation.
| Tool | Name | What it does |
|---|---|---|
| List files | ls | Lists a folder's contents, and by default its subfolders' contents too, so the model can see how a project is laid out. |
| Search content | grep | Searches file contents with a regular expression and returns each matching line with its file and line number. |
| Find files | find | Finds files and folders by name or path with a glob pattern, so the model can locate things without listing whole folders. |
| Read file | read | Reads a text file or an image into the conversation so the model can work with what is in it. |
| Write file | write | Creates a file, or replaces an existing one completely, with the content the model supplies. |
| Edit file | edit | Replaces one exact passage in an existing file with new text and leaves the rest of the file untouched. |
| Code navigation | lsp | Asks a language server about code: where a symbol is defined, where it is used, what type it has, and what calls what. |
Shell
One tool per shell. A row appears only for shells that one of the conversation's machines has: PowerShell and Bash (Git Bash) on Windows; zsh, Bash and sh on macOS; Bash, zsh and sh on Linux and WSL. Any shell also brings task_wait and task_list, because a command can become a background task.
| Tool | Name | What it does |
|---|---|---|
| PowerShell | powershell | Runs a command line in PowerShell in the conversation's workspace and returns its output. |
| Bash | bash | Runs a command line in Bash in the conversation's workspace and returns its output. |
| zsh | zsh | Runs a command line in zsh in the conversation's workspace and returns its output. |
| sh | sh | Runs a command line in sh in the conversation's workspace and returns its output. |
Preview
These drive the Preview pane's browser and the dev servers listed in your project's .mework/launch.json (Browser and preview). Twelve have rows. preview_start, preview_stop and preview_list have none: they are on whenever any other preview tool is, and they bring task_wait and task_list with them.
| Tool | Name | What it does |
|---|---|---|
| Start preview | preview_start | Starts a dev server from the workspace's .mework/launch.json and points the conversation's preview page at it. |
| Stop preview | preview_stop | Stops one of the conversation's dev servers, together with every process it started. |
| List previews | preview_list | Lists the dev servers this conversation can address, with the server ID the other preview tools take. |
| Server logs | preview_logs | Reads what a dev server printed to stdout and stderr, so the model can check build errors and server behaviour. |
| Console logs | preview_console_logs | Reads the browser console of the conversation's preview page: console messages, uncaught errors and unhandled promise rejections. |
| Page screenshot | preview_screenshot | Captures the visible part of the conversation's preview page as a JPEG image and shows it to the model. |
| Page snapshot | preview_snapshot | Reads the accessibility tree of the conversation's preview page: each element's role, name and value, as indented text. |
| Inspect element | preview_inspect | Reports one element's computed styles, box and text on the conversation's preview page, found by CSS selector. |
| Click element | preview_click | Clicks an element on the conversation's preview page, found by a CSS selector or by its uid from a page snapshot; doubleClick clicks twice. |
| Fill input | preview_fill | Fills an input, textarea, select or editable element on the conversation's preview page, found by a CSS selector or its snapshot uid. |
| Run script | preview_eval | Runs a JavaScript expression in the conversation's preview page and returns its result as JSON. |
| Network requests | preview_network | Lists the network requests of the conversation's preview page, or returns one response's body by its request ID. |
| Resize viewport | preview_resize | Emulates a device size or a light or dark colour scheme on the conversation's preview page, for testing responsive layouts. |
| Upload image | preview_upload_image | Puts an image from this conversation into a file input on the conversation's preview page, as a real file. |
| Answer dialog | preview_dialog | Accepts or dismisses an alert, confirm or prompt dialog that the conversation's preview page opened. |
Web
No rows. Both come from Enable web search on Conversation settings → Advanced tools: web_search whenever Search provider is not Off, and web_fetch whenever Fetch provider is not Off (with Native, only on Anthropic Messages and AWS Bedrock models). If the chosen provider is switched off in Settings, unavailable or missing its API key, the tool is still offered: the menu reads Repair search provider or Repair fetch provider, and each call fails with a message naming the setting to change. See Web search and fetch.
| Tool | Name | What it does |
|---|---|---|
| Web search | web_search | Searches the web for one query and brings the results into the conversation. |
| Fetch web pages | web_fetch | Fetches up to 20 web pages by URL and brings their text into the conversation. |
Agent orchestration
agent_spawn, workflow, ask_user and fork have rows (Subagents and workflows). The others come with something else:
task_waitandtask_list: any tool that starts background work, which meansagent_spawn,workflow, a shell or a preview tool.box: every run. It carries what Mework adds while the model works, such as finished background results and notices.skill: Load skills on demand on the Skills page, with at least one skill selected (Skills).tool_search: Tool discovery on the MCP page, on a model with Mid-conversation tools, when some MCP tools were held back (MCP servers).
| Tool | Name | What it does |
|---|---|---|
| Subagent | agent_spawn | Starts a subagent: a separate model run that works on one task in the background and reports back to this conversation. |
| Workflow | workflow | Runs a script the model writes that hands work out to many subagents in a fixed shape, as one background task. |
| Ask user | ask_user | Shows you a card of up to four multiple-choice questions and waits for your answers before the model goes on. |
| Fork conversation | fork | Asks you to start a new, separate conversation from a task the model writes; nothing from that conversation comes back here. |
| Wait for tasks | task_wait | Lets the model pause until the background tasks it names have finished, then hands it all their results in one answer. |
| List tasks | task_list | Lists the conversation's tasks with each one's address, status and latest update, so the model knows what it can wait for. |
| Background result | box | The channel Mework uses to hand the model background results and its own notices in the middle of a conversation. |
| Skill | skill | Loads the full instructions of one of the conversation's selected skills, at the moment the model decides the task calls for it. |
| Tool discovery | tool_search | Fetches the full definitions of MCP tools that Mework holds back, so the model can call the ones it turns out to need. |
Plan mode
Both appear the first time you turn on Plan under the message box, and stay for the rest of the conversation. Subagents never get them. See Plan mode.
| Tool | Name | What it does |
|---|---|---|
| Plan document | plan | Writes or reads the conversation's plan, the Markdown document you review in plan mode before the model changes your repository. |
| Exit plan mode | exit_plan_mode | Puts the finished plan in front of you for approval; approving it turns plan mode off so the model can start implementing. |
Long-term memory
Enable global memory and Enable project memory on Advanced tools each bring three tools. Project memory needs a workspace folder on disk. Creating or editing global memory asks at every level. See Memory and instructions.
| Tool | Name | What it does |
|---|---|---|
| Read global memory | read_global_memory | Reads one document from your global memory, the notes the model keeps for itself across every workspace on this computer. |
| Create global memory | create_global_memory | Saves a new document to your global memory and adds its one-line description to the memory index, once you approve it. |
| Edit global memory | edit_global_memory | Changes one passage of an existing global memory document and rewrites its line in the memory index, once you approve it. |
| Read project memory | read_project_memory | Reads one document from the project memory, the notes the model keeps for itself about one of the conversation's workspaces. |
| Create project memory | create_project_memory | Saves a new document to the project memory and adds its one-line description to the memory index. |
| Edit project memory | edit_project_memory | Changes one passage of an existing project memory document and rewrites its line in the memory index. |
Handoff
These belong to Auto-compact, on the context ring under the message box. When the context crosses its threshold, the model gets all four, writes handoff notes and continues in a new conversation. A conversation that inherited notes has read_handoff_note from its first request. Subagents never get them. See Auto-compact.
| Tool | Name | What it does |
|---|---|---|
| Read handoff note | read_handoff_note | Reads one of the handoff notes that carry unfinished work from one conversation into the conversation that continues it. |
| Write handoff note | create_handoff_note | Writes a new handoff note, telling the next conversation what it needs to know to carry on once this one hands off. |
| Edit handoff note | edit_handoff_note | Changes one passage of an existing handoff note and rewrites its line in the handoff index. |
| Hand off | handoff | Ends this conversation's run and continues the work in a new conversation that starts from the handoff notes. |