A browser for the model
Give the model a browser so it can open your site, take screenshots and read the console to check its own work. Tatu does not include a browser: you choose and configure one through an MCP server or a command-line tool, on any computer where you run Tatu.
Add a browser through MCP
Section titled “Add a browser through MCP”This example uses Chrome DevTools MCP. Install Node.js with npm and a supported Chrome browser separately on the computer running Tatu; npx runs the server, not a browser installer. Follow the upstream prerequisites for compatible releases.
Add this entry to ~/.tatu/mcp.json for all your projects, or .mcp.json in your project’s folder:
{ "mcpServers": { "chrome": { "command": "npx", "args": [ "-y", "chrome-devtools-mcp@latest", "--headless", "--isolated", "--no-usage-statistics", "--no-performance-crux" ] } }}Keep any other servers already in the file. Restart Tatu after editing it and open /mcp to check the server.
Ask the model to open your site’s address, take a screenshot and check the console for errors.
How it works
Section titled “How it works”The server’s tools have names such as mcp__chrome__take_screenshot. Tatu gives their results to the model, including images. An image-capable model receives the screenshot itself. If your main model cannot see images, choose a vision model with /settings vision: it describes tool images too, and your main model receives that text. Without one, your main model gets only a short note instead of the image.
The read tool also returns an image when it reads a PNG. As an alternative to MCP, install a browser command-line tool of your choice and have the model call it through bash, then use read on its saved screenshot. A skill can explain the commands to the model.
On a computer without a screen
Section titled “On a computer without a screen”The example already uses --headless to run without a visible window. --isolated creates a temporary browser profile and cleans it up when the browser closes; it is not a permissions sandbox. To choose the initial viewport, add --viewport=WIDTHxHEIGHT to args, replacing WIDTH and HEIGHT with your desired dimensions. See the server configuration.
If you need a separate browser binary, the Puppeteer browser installer can download Chrome for Testing:
npx -y @puppeteer/browsers@latest install chrome@stableUse the executable path printed by the installer: add --executablePath=/absolute/path/to/chrome to the server’s args, replacing the example path with yours. The browser still needs its operating-system dependencies; installing Node.js and the MCP server does not install those.
The current Chrome for Testing availability list includes Linux arm64 builds. Check the matching platform there before installing, rather than using a binary for a different architecture.
On your phone
Section titled “On your phone”In the Tatu app, images returned by tools appear as thumbnails below the tool group and in the call’s details. Tap one to open it full screen with zoom; photos in messages open the same way. The model’s browser runs on your computer, not on your phone.
To interact with the site yourself on a phone or tablet, ask the agent for a web preview. That opens the site in the app’s WebView over an encrypted connection; it does not give the model browser tools or require a browser MCP server.
An image too large to send to the app is reduced first. If it still cannot be sent, or cannot be decoded, you see a placeholder. This changes only the copy sent to the app; the model’s image stays unchanged.
Limits and cautions
Section titled “Limits and cautions”Chrome DevTools MCP collects usage statistics by default, separately from Chrome’s own metrics. Its performance tools can also send trace URLs to Google’s CrUX API. The example opts out with --no-usage-statistics and --no-performance-crux; these flags do not disable Chrome’s own metrics. Review the upstream privacy options for your setup.