Security and trust
Tatu runs commands and edits files with your permissions. Whatever your user can do in a terminal, the model can ask Tatu to do. Treat it like a colleague at your keyboard.
What the model can do
Section titled “What the model can do”- Run commands. The
bashtool runs a command inbash(orshifbashis not installed), in the project folder, with your whole environment. That includes variables such asANTHROPIC_API_KEYif you export them. - Read and change files. The
read,writeandedittools accept any path your user can reach: a relative path, an absolute one, or one that starts with~/. They are not limited to the project folder. - Reach the web.
web_searchandweb_fetchsend queries and addresses to other services. See Privacy: what leaves your machine.
There is no sandbox, and there are no permissions per tool yet. Tatu does not ask before it runs a command or writes a file. A hook can answer permissionDecision: "ask" or "allow", but that changes nothing yet. What does work is a PreToolUse hook that blocks a call: it exits with code 2, or answers with a deny decision. See Hooks.
A repository is not you
Section titled “A repository is not you”Some files in a project are instructions for Tatu. Whoever owns the repository wrote them, and Tatu follows them as soon as you start it there:
| Where | What it can do |
|---|---|
AGENTS.md or CLAUDE.md, in the folder or in any parent of it |
Goes into the system prompt: it can tell the model what to do. The files it imports with @path go in too, and an import can name any file you can read, inside the project or out of it. |
.tatu/settings.json |
Sets hooks (shell commands that run around tool calls and messages), extra system instructions, the model and provider, the vision model, the web services and the address of the model catalog. Only the daemon section is ignored there. |
.tatu/skills/, .tatu/prompts/, .tatu/agents/ |
Add commands and subagents that tell the model what to do. |
.mcp.json, in the folder |
Lists MCP servers, which are programs. Unlike the rest, Tatu does not start them until you trust the project with /mcp trust. |
A hook is a shell command. It runs on your computer, with your permissions, without asking. A cloned repository can contain one that reads your files or sends them somewhere.
Tatu marks the content of web pages as untrusted data for the model. That helps, but it is not a guarantee. Text in a file, a page or the output of a command can try to steer a model, so be careful with sources you do not trust.
Git publication and web previews
Section titled “Git publication and web previews”Publishing from the app asks you to review files and the destination before confirming commit, push or pull-request creation. This confirmation belongs to that app action; it is not a permission prompt for commands the model runs. A repository’s commit and pre-push hooks can run with your permissions. Read a clone’s Git hooks and configuration before publishing, as well as the Tatu instructions listed above. A failed push or pull-request step does not undo a completed commit.
CI logs and review comments are third-party content. The app marks them as untrusted when adding them to your message draft, but that is not a guarantee against instructions hidden in them. Review the text before sending it to the model.
A web preview shares only the local ports you explicitly publish with trusted paired devices; it does not create a public URL. Publish only servers you intend those devices to reach, and use a trusted device: the server may expose development data or actions. Encryption protects traffic through the relay, not the page’s own behavior. Closing a preview does not revoke its publication or stop the server. Revoke access when done, then stop the server separately. See Web previews.
Your credentials
Section titled “Your credentials”- Keys and sign-in tokens are stored in
~/.tatu/auth.json(inauth.jsonunderTATU_HOMEif you set it). Tatu writes the file with mode0600, so only your user can read it./logoutremoves a stored credential. - A key you export in your shell is not stored by Tatu. Commands the model runs inherit it.
- Sessions in
~/.tatu/sessions/hold everything said in a conversation, including the content of files and command output. They are created with mode0600. - The log file is created with mode
0600too. With-debugit records the arguments of every tool call, which may include a secret you typed in a command.
Do not commit ~/.tatu to a repository or share its files.