A workspace can search the web, fetch pages, research people and companies, and work with the email, calendar and Drive connected to it. Those same tools work outside the workspace too, through one of two doors.
What comes with a workspace, and what takes Tools
A workspace’s own applications come with the workspace. Anyone in it can connect an AI or a terminal to it and use them, with nothing more to buy.
The applications you connect for yourself, outside every workspace, take Tools to use from an AI or a terminal. Without it you can still connect them and look around; GBrain asks for Tools when you connect the AI or the terminal. Checkout takes a card, and a welcome email lists the next steps, what Tools costs and when it is charged. Manage or cancel it from Billing in your account, under your name at the top right; your own applications stop reaching your AIs and terminals at the end of the period you paid for.
Each license is one person’s Tools. Buy as many as your team needs, then send a link from your Billing page to the people you’re giving them to: whoever opens it and signs in gets a license, until they’re all taken. A link works for 30 days; you can make as many as you like and stop any one of them. Billing lists who holds each license, and you can take one back: GBrain emails the person that their license ended, and it is spare again for your links.
Two ways in
| An AI, over MCP | A terminal | |
|---|---|---|
| For | Sharing a team’s context with whichever AI each person uses: ChatGPT, Claude, Cursor, Codex. | One person setting up and running GBrain across several workspaces, for the people they work with. |
| Connects | One workspace: its memory, its schedules, and its applications. Or, with Tools, your own applications. | As many workspaces as you turn on, and, with Tools, your own applications outside them. |
| Set up | Paste https://gbrain.io/mcp into the AI, choose a workspace or your applications here, and approve it. | gbrainio terminal connect, or Connect a terminal in Tools, then run the one command the page gives you. |
| Read | What an AI can reach | Set up a terminal |
Both doors ask the same question of each workspace: Memory and Schedules are Off, Read or Read & Write, and Tools in the workspace are Off, Mine or All. Mine is your accounts in that workspace; All adds everybody else’s there, and a teammate’s tool runs as them, with the record naming you as the one who asked.
Three things are true through either door:
- Nothing runs until you allow it. An AI or a terminal reaches exactly what you turned on, and nothing else; every refusal says, in plain words, how to allow what was missing.
- Every action is recorded. Who did what, when, the outcome, and the cost. So is every change to access itself: connecting, changing a level, giving something more time or turning it off. You can watch it happen live.
- The accounts stay put. Keys and sign-ins never leave our servers. Tools that change things, like sending email, exist only at a level you choose, are clearly marked, and are off until you choose it.
From the terminal
Three levels, each showing what is under it:
gbrainio tool ls # the tools this terminal can reach gbrainio tool show # every tool on your account, and where gbrainio tool help gmail # one tool's commands gbrainio tool gmail message search -h # one command's arguments gbrainio tool ls --all # that, then the store: what you can install gbrainio tool search mail # the ones that have to do with mail gbrainio tool install -w 7 # the page that installs one
Then call one:
gbrainio tool exa search "planning agendas" gbrainio tool firecrawl scrape https://example.com gbrainio tool perplexity research "what has the SF planning commission approved this year" gbrainio tool x search "from:garrytan" gbrainio tool crustdata person https://www.linkedin.com/in/jane-doe gbrainio tool captain company stripe.com gbrainio tool captain investor-search "Jane Doe" gbrainio tool happenstance research "Jane Doe, Acme, CEO" gbrainio tool gmail message search "invoices from June" gbrainio tool gdrive file search "board deck" gbrainio activity ls # your recent actions gbrainio activity show 52 # one action in full gbrainio activity open # open the activity page in a browser gbrainio tool gmail open # open the page where Gmail is connected or shared gbrainio workspace ls # your workspaces and their ids gbrainio workspace show # one workspace: its facts, and how to use it gbrainio terminal show # who this terminal is, and what it reaches gbrainio terminal show --format json # the same, for an AI to read gbrainio terminal open # open the page that changes what it reaches gbrainio terminal disconnect # delete this terminal
Anything ending in open prints the address first and then opens your browser, so the same command works when you are on a machine that has no browser, and an AI running it can read the link out to you.
Every listing is JSON when its output is piped, or with --format json; Set up a terminal has what an AI reads.
Every argument a command takes is also a flag, so you can say what you want one piece at a time instead of composing a search string:
gbrainio tool gmail message search --from billing@stripe.com --newer-than 7d --unread gbrainio tool gmail message search --subject "Action needed" --has-attachment
Searching mail takes --from, --to, --subject, --label, --after, --before, --newer-than, --older-than, --has-attachment, --unread and --max-results, and a phrase alongside them if you want one. On a search, --from is the sender you are looking for; --account is always which of the connected addresses to look in.
Writing one you’ll send yourself:
gbrainio tool gmail draft new --to jenny@example.com --subject "Tuesday" --body "Works for me." gbrainio tool gmail draft new --reply-to <id> --body "Noon works." # answers in the same thread gbrainio tool gmail draft new --to a@b.com --body "Attached." --attachments - < receipt.pdf tar cf - receipt.pdf photo.png | gbrainio tool gmail draft new --to a@b.com --attachments - cat message.eml | gbrainio tool gmail draft new --eml - gbrainio tool gmail draft ls # what's waiting for you gbrainio tool gmail draft edit <id> --body "Noon works." # change one, unsent
Sending, and who else it goes to:
gbrainio tool gmail send-as ls # the addresses you can send as gbrainio tool gmail message send --to jenny@example.com --subject "Tuesday" --body "Works." --from brad@gbrain.io gbrainio tool gmail message send --to jenny@example.com --subject "Tuesday" --body "Works." --cc sam@example.com --bcc pat@example.com gbrainio tool gmail message reply <id> --body "Works for everyone?" --reply-all gbrainio tool gmail message reply --thread-id <thread-id> --body "Still on?" --reply-all # the latest message in the conversation gbrainio tool gmail message forward <id> --to sam@example.com --body "See below."
A reply goes out from the address the message was sent to, and --from takes any address Gmail has verified for the mailbox. Forwarding carries the original’s attachments unless you pass --no-include-attachments.
Drafts are the half of email that can’t get you in trouble: the workspace writes it, it lands in the Drafts folder, and nothing goes anywhere until you read it, edit whatever you like, and press send yourself. Writing drafts and sending email are separate things to allow, and most people should only ever allow the first.
Organizing it:
gbrainio tool gmail label ls # what labels you have gbrainio tool gmail message label <id> --name Receipts # file it, by name gbrainio tool gmail message label <id> --name Flights --create gbrainio tool gmail message move <id> --to archive # or inbox, trash, spam gbrainio tool gmail message mark <id> --read --starred
Add --thread-id <id> in place of the message id and the whole conversation moves as one thing. Nothing here deletes mail for good: the furthest anything goes is the trash, which Gmail keeps for 30 days and you empty yourself.
Reading one message:
gbrainio tool gmail message show <id> # the message as readable text gbrainio tool gmail message show <id> --mime-type text/html # the markup, exactly as sent gbrainio tool gmail message show <id> --attachment-id <id> # read what came attached gbrainio tool gmail message show <id> --attachment-id <id> --download > receipt.pdf # the file gbrainio tool gmail message show <id> -f eml > message.eml # the whole message, as delivered gbrainio tool gmail thread show <thread-id> # the whole conversation, oldest first
Your calendar:
gbrainio tool gcal calendar ls # yours and the shared ones gbrainio tool gcal event ls --calendar-id <id> --query standup gbrainio tool gcal event new --summary "Standup" --start 2026-10-05T09:00:00 --attendees jamie@example.com --recurrence "RRULE:FREQ=WEEKLY;BYDAY=MO" --meet gbrainio tool gcal event edit <id> --add-attendees sam@example.com gbrainio tool gcal event respond <id> --response maybe --comment "Might be late"
A date on its own makes an all-day event, and a time with no offset is in the calendar’s own zone unless you pass --time-zone. A new event, or a change to who is invited, emails the guests unless you pass --no-notify; any other change or a deletion stays quiet unless you pass --notify.
Plans that are not settled yet:
gbrainio tool gcal event new --summary "Alcatraz tour" --start 2026-10-05T08:40:00 --show-as free --color graphite --status tentative --tags family-trip --idempotency-key trip-alcatraz gbrainio tool gcal event ls --tag family-trip # every event with that tag gbrainio tool gcal event edit <id> --status confirmed --color blueberry --show-as busy gbrainio tool gcal event move <id> --destination-calendar-id <id> # to another calendar
--show-as free puts an event on the calendar without blocking the time. Colors use Google Calendar’s names, so gray is graphite. Tags are kept privately on your calendar: they never show in the event, and guests never see them. The same --idempotency-key on the same calendar never makes a second event, so a create can safely run again.
Finding a file in Drive:
gbrainio tool gdrive file search "board deck" # by name gbrainio tool gdrive file search --text "Series A" # by what is inside it gbrainio tool gdrive file ls # the root of My Drive gbrainio tool gdrive file ls <folder-id> # one folder, folders first gbrainio tool gdrive file show <id> # size, owner, when it changed
Reading one, or taking it with you:
gbrainio tool gdrive file read <id> # a Doc as markdown, a Sheet as CSV gbrainio tool gdrive file read <id> --mode text # plain text instead gbrainio tool gdrive file export <id> -f pdf > ~/Desktop/deck.pdf gbrainio tool gdrive file export <id> -f docx > ~/Desktop/memo.docx
read gives you the words, export gives you the file. A PDF, a Word document or a PowerPoint deck reads as text too: Google converts a copy, hands back the text, and the copy is removed. Nothing is left behind in Drive.
Writing one:
gbrainio tool gdrive file new "Board notes" --type doc --content "# Q4" gbrainio tool gdrive file new "Numbers" --type sheet --content "$(cat q4.csv)" gbrainio tool gdrive file append <id> --content "One more thing." gbrainio tool gdrive file edit <id> --content "$(cat notes.md)" # same file, same link gbrainio tool gdrive file edit <id> --rename "Board notes, final" gbrainio tool gdrive file copy <id> --name "Board notes (copy)" gbrainio tool gdrive folder new "Q4" gbrainio tool gdrive file upload --file - --name contract.pdf < ~/Desktop/contract.pdf
edit changes the file in place, so the link, the sharing and the version history all survive. Making a second file instead would lose all three, which is why creating and changing are separate commands.
Sharing it, and undoing things:
gbrainio tool gdrive share ls <id> # who can reach it right now gbrainio tool gdrive share new <id> --with jenny@example.com --role reader --confirm gbrainio tool gdrive share rm <id> --with jenny@example.com gbrainio tool gdrive file trash <id> # and file restore <id> brings it back
Sharing is the one command that reaches outside the account, so it refuses to run without --confirm. An AI has to tell you who is about to get what and wait for a yes. Nothing here deletes a file for good either: trash is Drive’s own Trash, which keeps it about 30 days.
These flags work the same way on every command, in either spelling:
-w, --workspace <id> which workspace, when the terminal reaches several
-u, --user <email> whose copy, when several people share one tool
-a, --account <email> one of several connected addresses
-f, --format json|text|eml readable text on a terminal, JSON when piped
-d, --dry-run what a call would do, without running it
-h, --help what this command takes
-- the end of the flags: what follows is textAnything the command does not recognize is an error that names the flags it does take, so a mistyped flag never quietly ends up inside the search text.
Research tools
Beyond plain search, the workspace can research: ask an open question across the web and get a cited answer (perplexity research), search posts on X (x search), read a LinkedIn profile (crustdata person), look up a company’s funding and investors (captain company, captain investor-search), or pull a person’s career history (happenstance research). These are on for the workspace from the start and metered against its credits; each one is Off or On on the workspace’s Tools page, under Workspace (Connect accounts), so turning any of them off is up to an admin, not a support request. On a terminal, the people and company lookups start off until you switch them on. Like everything else, every action shows up in the activity log with its cost.
Sending a fax
The workspace can fax a document to any US or Canadian number. Faxing is on for every workspace, and you can switch it off on the workspace’s Tools page, under its lookups (accounts). Ask the workspace (“fax this letter to the county clerk at 415 555 0123”), or from a terminal:
gbrainio tool fax send "+1 415 555 0123" --text "Please find our application attached." gbrainio tool fax send "+1 415 555 0123" --file - < application.pdf gbrainio tool fax status <id>
A fax carries one PDF, plain text, PNG or JPEG of up to 50 pages. Save a Word file as a PDF first. It costs 10 cents a page, taken from the workspace’s usage credit once the fax goes through, and a fax that fails (a busy line, a number that is not a fax) costs nothing. A workspace can fax up to 100 pages a day, and the same number up to 5 times a day.
From another AI
Any AI that speaks MCP (ChatGPT, Claude, Claude Code, Cursor, and others) takes one address:
https://gbrain.io/mcpIt sends you to GBrain to choose where it connects. Pick a workspace and say what it may do there, and it reaches that workspace and nothing else. That includes the workspace’s own memory, as GBrain’s tools recall, remember, search and the rest, and its tools at the level you chose. Connect an AI has the steps for each one, and What an AI can reach has all of what it gets.
To connect an AI to your own applications instead, with Tools, pick the connection it is on now under Tools on the same screen, or Create a new ChatGPT connection (named for the AI connecting), or a connection you made for it under Ready to connect. GBrain lists your applications, each at Off; turn on what the AI may use, then press Connect. It reaches those applications and nothing in your workspaces.
Email, calendar and Drive
Connect a Google account once, for yourself or in a workspace, and it carries all three. Reading and changing are separate grants: a permission can allow reading email without allowing sending, or reading Drive without allowing anything to be written to it. The grant screens always show exactly which of the connected addresses a grant reaches. Tools that change things are marked, and they start off.
Reading a message gives you its text whether the sender wrote it as plain text or as a web page, along with a list of whatever came attached, so you can read an attachment by name. If you would rather have the message untouched, ask for it as it was delivered with -f eml and hand the file to whatever you like.
Drive works the same way from either direction. read turns a file into text, and the conversion is Google’s own, so a PDF, a Word document or a spreadsheet reads as readily as a Google Doc does. export is the file itself, in whichever of ten formats you ask for. Writing, copying, trashing and sharing sit on the level above reading, and sharing asks for a --confirm on top of that, because it is the one thing here that reaches somebody outside the account.
A workspace moves files between Drive and its own disk the same way. Exporting hands it a link that works once, for ten minutes, and it saves the file from there; uploading runs the other way round, a link it sends the file to, then the call that puts it in Drive. The file never passes through the conversation, and each move is on the record like any other action.
Seeing what happened
Every action, including refused ones, is on the record with what was asked, the outcome, and the cost. So is every access change you’ve ever made. Read it on Activity in Tools or on any terminal’s page as it happens, click any entry for the full detail, run gbrainio activity ls, or ask the workspace. If something looks wrong, press Turn off now on the terminal’s Connection tab, or delete it, and it stops at once.