# Agents, access and modes

Any coding agent in a Thinair Terminal gets Thinair's tools. It acts as its Profile, and asks you before it reaches another.

## Agents in a Terminal

Start Claude Code or Codex in a Thinair Terminal. It is told it runs in Thinair, and
it gets Thinair's tool server, **thinair-native**, beside every MCP server you already
use, with the `thinair` command first on its path. On a computer signed in to Thinair
Cloud, Claude Code also gets **thinair-cloud**.

The tool server has six tools: search, describe, read, act, status and connect. Search
finds what Thinair offers, describe says what a tool takes, read runs a tool that reads,
and act runs one that changes something. The same six work from the shell:

```sh
thinair search --input '{"queries":["open terminal"]}'
thinair describe --input '{"ids":["control-plane.app.open"]}'
thinair act --input '{"tool":"tools.browser.open","input":{"url":"https://example.com"}}'
```

`tools.browser.open` opens a new Chrome window at that page and answers its `tab`, which
the agent names in every later browser call, such as `chrome.browser.snapshot` or
`chrome.browser.click`. Files take one command each:

```sh
thinair files put --input '{"from":"report.pdf","path":"/Reports/report.pdf"}'
thinair files open --input '{"path":"/Reports/report.pdf"}'
thinair files get --input '{"path":"/Reports/report.pdf","to":"report-copy.pdf"}'
```

`put` saves a file into Thinair Files, `open` shows it in a Window in the app for its
kind, and `get` reads it back. To edit code that lives in another VM, an agent uses a
[mirror](/docs/agents/mirrors).

## Windows open beside the agent

Every Window an agent opens appears right beside the Window it works from, linked to it:
the Links menu on either Window takes you to the other. One that lands out of your view
has the canvas glide to it. While an agent works in an app, that app's Window bar shows
its marker, such as **Claude (Personal) · typing**. An agent never gets a cursor.

## An agent acts as its Profile

An agent acts as the Profile it runs in, never as you. Inside that Profile it can do
anything: use its keys and Files, open and close its apps, delete, and spend. A message
you send it carries your name for the record only, and every action it takes traces
back to the messages that started it.

An agent in a Terminal on your computer itself acts for the computer, which reaches
every Profile there.

## Asking for access

To use an app in another Profile, an agent asks:

```sh
thinair act --input '{"tool":"tools.access.request","input":{"app":"chrome","profile":"Personal"}}'
```

The request appears over its Window, with **Deny** and **Allow**, and you choose:

* **How wide**: only the one app the request names (Only this Terminal), or every one of
  that app in that Profile (Every Terminal in Personal).
* **How long**: 1 hour, 1 day, 7 days, 30 days or 90 days. On a computer you can also
  keep it until you remove it.

The agent waits up to 50 seconds for your answer. After a Deny, the same request is
refused for a minute without asking again. The Access panel, the target Window's Access
menu and **Thinair Settings ▸ Access** list every grant, each with **Remove**, which
holds from the agent's next call.

**Agents never set access.** Allows, folders, modes, sharing and remote access change
only by a person's own click, in every mode. An agent can only ask.

## Modes

Each Profile runs in **Default** or **YOLO**, set by whoever manages it in
**Thinair Settings ▸ Access**. A new Profile starts in Default.

* **Default**: Thinair's own tools (its workspaces, the Trash and settings) are refused to
  the Profile's agents.
* **YOLO**: they work, but never reach your computer itself or drive Thinair's window.

A Window's Access menu can keep one app's agents in Default. Your computer itself is
always YOLO. **Development**, your computer's own switch, off until you turn it on, lets
agents on the computer drive Thinair's window as you do. In every mode, entering another
Profile and sharing a port ask first.

## Show a dev server in Chrome

Chrome runs in a VM, so its localhost is its own. To show a dev server that runs on your
computer, an agent asks to share its port:

```sh
thinair act --input '{"tool":"tools.access.request","input":{"app":"chrome","profile":"Personal","port":3000}}'
```

Once you Allow it, `http://localhost:3000` in that Profile's Chrome is your computer's,
and `https://localhost:3000` works too, with HTTP/2. Each share is listed with your
grants, with Remove.
