Docs

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.

ToolNameWhat it does
List fileslsLists a folder's contents, and by default its subfolders' contents too, so the model can see how a project is laid out.
Search contentgrepSearches file contents with a regular expression and returns each matching line with its file and line number.
Find filesfindFinds files and folders by name or path with a glob pattern, so the model can locate things without listing whole folders.
Read filereadReads a text file or an image into the conversation so the model can work with what is in it.
Write filewriteCreates a file, or replaces an existing one completely, with the content the model supplies.
Edit fileeditReplaces one exact passage in an existing file with new text and leaves the rest of the file untouched.
Code navigationlspAsks 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.

ToolNameWhat it does
PowerShellpowershellRuns a command line in PowerShell in the conversation's workspace and returns its output.
BashbashRuns a command line in Bash in the conversation's workspace and returns its output.
zshzshRuns a command line in zsh in the conversation's workspace and returns its output.
shshRuns 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.

ToolNameWhat it does
Start previewpreview_startStarts a dev server from the workspace's .mework/launch.json and points the conversation's preview page at it.
Stop previewpreview_stopStops one of the conversation's dev servers, together with every process it started.
List previewspreview_listLists the dev servers this conversation can address, with the server ID the other preview tools take.
Server logspreview_logsReads what a dev server printed to stdout and stderr, so the model can check build errors and server behaviour.
Console logspreview_console_logsReads the browser console of the conversation's preview page: console messages, uncaught errors and unhandled promise rejections.
Page screenshotpreview_screenshotCaptures the visible part of the conversation's preview page as a JPEG image and shows it to the model.
Page snapshotpreview_snapshotReads the accessibility tree of the conversation's preview page: each element's role, name and value, as indented text.
Inspect elementpreview_inspectReports one element's computed styles, box and text on the conversation's preview page, found by CSS selector.
Click elementpreview_clickClicks 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 inputpreview_fillFills an input, textarea, select or editable element on the conversation's preview page, found by a CSS selector or its snapshot uid.
Run scriptpreview_evalRuns a JavaScript expression in the conversation's preview page and returns its result as JSON.
Network requestspreview_networkLists the network requests of the conversation's preview page, or returns one response's body by its request ID.
Resize viewportpreview_resizeEmulates a device size or a light or dark colour scheme on the conversation's preview page, for testing responsive layouts.
Upload imagepreview_upload_imagePuts an image from this conversation into a file input on the conversation's preview page, as a real file.
Answer dialogpreview_dialogAccepts 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.

ToolNameWhat it does
Web searchweb_searchSearches the web for one query and brings the results into the conversation.
Fetch web pagesweb_fetchFetches 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_wait and task_list: any tool that starts background work, which means agent_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).
ToolNameWhat it does
Subagentagent_spawnStarts a subagent: a separate model run that works on one task in the background and reports back to this conversation.
WorkflowworkflowRuns a script the model writes that hands work out to many subagents in a fixed shape, as one background task.
Ask userask_userShows you a card of up to four multiple-choice questions and waits for your answers before the model goes on.
Fork conversationforkAsks you to start a new, separate conversation from a task the model writes; nothing from that conversation comes back here.
Wait for taskstask_waitLets the model pause until the background tasks it names have finished, then hands it all their results in one answer.
List taskstask_listLists the conversation's tasks with each one's address, status and latest update, so the model knows what it can wait for.
Background resultboxThe channel Mework uses to hand the model background results and its own notices in the middle of a conversation.
SkillskillLoads the full instructions of one of the conversation's selected skills, at the moment the model decides the task calls for it.
Tool discoverytool_searchFetches 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.

ToolNameWhat it does
Plan documentplanWrites or reads the conversation's plan, the Markdown document you review in plan mode before the model changes your repository.
Exit plan modeexit_plan_modePuts 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.

ToolNameWhat it does
Read global memoryread_global_memoryReads one document from your global memory, the notes the model keeps for itself across every workspace on this computer.
Create global memorycreate_global_memorySaves a new document to your global memory and adds its one-line description to the memory index, once you approve it.
Edit global memoryedit_global_memoryChanges one passage of an existing global memory document and rewrites its line in the memory index, once you approve it.
Read project memoryread_project_memoryReads one document from the project memory, the notes the model keeps for itself about one of the conversation's workspaces.
Create project memorycreate_project_memorySaves a new document to the project memory and adds its one-line description to the memory index.
Edit project memoryedit_project_memoryChanges 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.

ToolNameWhat it does
Read handoff noteread_handoff_noteReads one of the handoff notes that carry unfinished work from one conversation into the conversation that continues it.
Write handoff notecreate_handoff_noteWrites a new handoff note, telling the next conversation what it needs to know to carry on once this one hands off.
Edit handoff noteedit_handoff_noteChanges one passage of an existing handoff note and rewrites its line in the handoff index.
Hand offhandoffEnds this conversation's run and continues the work in a new conversation that starts from the handoff notes.

Edit this page on GitHub