Skip to content

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:

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:

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.

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:

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:

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.