# Browser (Ghosty for Chrome)

> The Ghosty for Chrome extension lends your browser to your agent, with the sessions you already have open. Install, use from /c, the app and the terminal, browser_* tools, shortcuts, scheduled tasks and privacy.

URL: https://www.ghosty.studio/en/docs/browser

**Ghosty for Chrome** lets your agent use your browser: it opens pages, reads, fills forms, clicks and takes screenshots in the sessions you already have open (your email, your image bank, your store's dashboard). You keep chatting where you always do —`/c`, the app or the terminal— and the extension only carries out what the agent decides.

## Install

1. Install the extension. Until it is out on the Chrome Web Store, install it manually ([below](#install-manually-without-the-store)); once it is published, [ghosty.studio/chrome](https://www.ghosty.studio/chrome) will take you to the listing.
2. Sign in to [ghosty.studio](https://www.ghosty.studio) in that same Chrome.
3. Open `/c`. The extension pairs with your account on its own within a few seconds, no tokens to copy. Its panel (⌘⇧G on Mac, Ctrl+Shift+G on Windows/Linux) says **Connected** with your email.

There is one connection per person: if you open Ghosty in another Chrome with the same account, the last one to connect is the one the agent uses.

### Install manually (without the store)

1. Download [ghosty-chrome.zip](/descargas/ghosty-chrome.zip) and unzip it into a folder you won't delete (for example `Documents/Ghosty`).
2. In Chrome open `chrome://extensions` and turn on **Developer mode** (top right).
3. Click **Load unpacked** and choose the folder you unzipped.
4. Pin the Ghosty icon to the toolbar and continue with steps 2 and 3 above.

To update: download the new zip, replace the folder's contents and click ↻ on Ghosty in `chrome://extensions`. Once the extension is on the store, remove this copy and install the store one to get automatic updates.

## How to use it

Ask your agent in plain language, in your personal chat:

> Open ghosty.studio/planes, take a screenshot and tell me how much the Pro plan costs.

> Go to my Shopify dashboard, find today's pending orders and make me a table.

- **/c and the app (iOS, Android)**: the agent uses the Chrome on your computer even when you write from your phone. What it delivers (a table, a GIF of what it did) lands in the thread like any other file.
- **Terminal**: from [Claude Code or another coding agent](#for-developers) you use the same browser.
- If Chrome is not open or the extension is not connected, the agent tells you and gives you the link to install it.

The browser is only available in **your personal chats and your scheduled tasks**. Never in customer channels (WhatsApp, Messenger, embed).

## What the agent can do

The tools reach the agent with the `browser_` prefix:

| Tool | What for |
|---|---|
| `browser_status` | Whether your browser is connected and what the last step was. |
| `browser_navigate`, `browser_navigate_back` | Open a URL or go back to the previous page. Waits for the page to finish loading. |
| `browser_read_page` | Read the page structure (buttons, fields, links) with a reference for each element. |
| `browser_find` | Find an element by description ("the save button in the modal") on large pages. |
| `browser_get_page_text` | Extract the main text (an article, documentation) without menus. |
| `browser_click`, `browser_hover`, `browser_drag` | Click, hover or drag on an element. |
| `browser_type`, `browser_fill_form`, `browser_select_option`, `browser_press_key` | Type, fill several fields at once, pick from a list or press a key. |
| `browser_scroll`, `browser_wait_for` | Scroll the page or wait for a text to appear or disappear. |
| `browser_take_screenshot` | See the page as an image. |
| `browser_computer` | Mouse and keyboard by coordinates, for what references can't reach (a canvas, a map). |
| `browser_attach_image`, `browser_file_upload` | Attach an image or a file to a form without opening the file picker. |
| `browser_tabs`, `browser_resize`, `browser_viewport` | List, open, close or switch tabs; resize the window. |
| `browser_console_messages`, `browser_network_requests` | Check your site's errors and requests when you ask it to debug it. |
| `browser_gif_creator` | Record what it does as a GIF. From /c the GIF stays in the thread; from the terminal, in your Downloads folder. |

Agents running Claude receive screenshots as images; other engines receive the page text.

## Shortcuts

Save a task you repeat and run it by name:

> Save this as shortcut /prices: open ghosty.studio/planes and tell me the Pro price.

Then just type `/prices`. "What shortcuts do I have?" lists them and "delete the /prices shortcut" removes it. Shortcuts belong to your account and work with all your agents (tools `shortcut_save`, `shortcut_run`, `shortcut_list`, `shortcut_delete`).

## Scheduled tasks

A task scheduled from your personal chat can also use the browser:

> Every Monday at 9 open my store's dashboard and send me the week's sales.

At that time the agent works on its own in your Chrome. If Chrome is closed, you get a "… needs your Chrome" notification and the agent records that it could not run.

## What you see while it works

- **"Ghosty" tab group** (purple): the agent opens its tabs there and only sees, switches and closes those.
- **Pulsing lilac border** around the page while it works; amber while it waits.
- **Ghosty's cursor** with its name, moving to each element. It is only a drawing: your mouse does not move.
- **■ Stop Ghosty**, at the bottom center of the page, and in the panel. Also with ⌘⇧K (Ctrl+Shift+K). The agent is told that you stopped it.
- **Chrome notifications**: "Ghosty finished" if you were on another tab, and "Ghosty needs you to sign in to …" when it reaches a login page.

## Privacy

- The extension only acts on the tabs of its "Ghosty" group and only while a task is running. It does not record your browsing outside of that.
- **It never types passwords.** If a page asks you to sign in, it notifies you so you sign in yourself, then it continues.
- What the agent sees (text, screenshots) is used only to decide the next step and stays in your conversation like any other message.
- You can stop any task, disconnect the extension or uninstall it at any time.

Details are in the [Privacy Notice, section 11](/privacidad?lang=en#seccion-11).

## For developers

Any client (your own MCP server, a script) can use your browser through the HTTP API. Both routes are in the [API reference](/en/docs/api/reference).

1. **Token**: the extension panel requests one from `GET /api/browser/token` with your web session and shows it to you. It is a personal `bt_…` token that lasts 30 days and only reaches your browser. Treat it like a password.
2. **Status and tools**: `GET /api/browser/call` with `Authorization: Bearer bt_…` returns `connected`, `email`, `lastStep` and `tools` (name, description and `inputSchema` of each), ready to expose as MCP tools.
3. **Run**: `POST /api/browser/call` with `{ "tool": "navigate", "input": { "url": "https://example.com" } }`. It accepts the name with or without `browser_`.

```bash
curl -s https://www.ghosty.studio/api/browser/call \
  -H "Authorization: Bearer $GS_BROWSER_TOKEN" \
  -H "content-type: application/json" \
  -d '{"tool":"read_page","input":{},"client":"My script"}'
```

`client` is the name the person sees in the panel ("who is using it"). Responses: `200` with the result, `409` if the browser is not connected, `504` if the tool failed or did not answer in time (`timeoutMs`, up to 180 s).

Your coding agent learns all of this with the `ghosty-browser` skill: `npx skills add blissito/ghosty-skills`.
