Plank help · updated 2026-09-10
Browser access
Let your assistant operate a browser for sites that need a login — you sign in once, it does the work. Plank never sees your password.
Agents: fetch the raw markdown of this page at /en/help/browser-access.md
Browser access
Some work lives behind a login — your accounting portal, a vendor dashboard, an internal tool. Your Plank assistant can operate a browser on your behalf for those sites. You log in once; it does the repetitive work inside.
Availability: Browser access is available to everyone, on the web app and in the Plank mobile app. There is nothing to switch on — browser sessions appear as tabs alongside your files whenever the assistant opens one.
It used to be a beta feature you turned on in Settings. If you turned it on some time ago and the assistant still says it has no browser, its workspace is running with the settings it started with: open Settings → Preferences, choose Restart assistant, and try again. That starts a fresh assistant process. One assistant serves all of your spaces, so it stops whatever it is doing in any of them; your files and chat history are untouched.
How it works
- The assistant asks first, then opens a browser tab. It tries the service's API first (see Prefer the API? Just say so below). When there's no API — or it hits a site that needs a login mid-task — it asks you before opening anything. Once you agree, it creates a private cloud browser for that site: a new tab appears in your file viewer, named after the site, right alongside your other open files. The tab shows a tidied-up form of the name the assistant chose —
kaspi-businessreads as Kaspi Business — so point at the site rather than hunting for an exact spelling. Hover a tab to see its full name. The assistant tells you in chat: for example, "I've opened a QuickBooks session. Click the QuickBooks tab and sign in, then tell me when you're done." - You log in. Click the browser tab. You'll see the live browser for that site. Sign in exactly as you normally would.
- You hand it back. Tell the assistant you're signed in. It picks up from there and works inside the site. You can switch between the browser tab and your files at any time — the live session stays open in the background.
One login, remembered forever
Your login is saved durably after you sign in. If you close a browser tab, or the session ends for any reason, your credentials are preserved. The next time the assistant needs that same site, the tab opens already signed in — you don't need to enter your password again.
To use multiple accounts on the same site, ask the assistant to use distinct names for each (for example, "QuickBooks — personal" and "QuickBooks — company"). Each appears as its own tab. If two names would read the same on a tab, both tabs fall back to showing the assistant's exact names instead, so you can always tell which is which before you close one.
Your password is yours
You type your credentials directly into the browser tab. Plank and the AI never see your password — they only see the pages after you're signed in. Every action the assistant takes in the browser is logged.
Managing sessions
Go to Settings → Browser sessions to see every site you're connected to and when each was last used. Each row shows the tidied name, and underneath it the assistant's own name for that session when the two differ — that second line is the name the assistant uses in chat. Click Revoke to sign the assistant out of a site; the confirmation names the session exactly as the assistant does. You can also close the browser tab in the file viewer — closing it ends that session immediately. Either way, your saved login is kept, so the next session for that site starts already authenticated.
Exporting files from a site
You can ask the assistant to grab a file from a logged-in site and save it straight into your workspace — for example, "log into OneDrive and save that report to reports/" or "export the orders list from the supplier portal and save it to reports/orders.csv." Up to about 25 MB.
For cloud storage like OneDrive, Google Drive, and SharePoint the assistant clicks the real Download button in the browser — even when that takes a few steps (opening the file, a "More" menu, then Download) — and captures the file through your authenticated session, even though the actual bytes come from a different host. For sites with a plain download link it can also fetch the link directly. Most everyday export flows work this way. A small number of high-security sites use unusual export flows; the assistant will tell you if it can't capture the file.
Uploading a file to a site
You can also ask the assistant to attach a workspace file to a website's upload button — for example, "upload the invoice from invoices/jan.pdf to the supplier portal" or "attach the signed contract to the upload field on that form." The assistant clicks the upload button, and Plank reads the file straight from your workspace and places it into the chooser — you never have to download it first. You can attach several files in one go if the site's upload field accepts multiple files ("upload all three receipts from receipts/"); if it only takes one at a time, the assistant will send them one by one. Files up to a few megabytes each work well; very large files may time out depending on the site.
Save a setup you'll repeat
Once you've walked the assistant through a browser task, say "save this as a browser automation." It becomes a named entry in your Integrations sidebar with a Run button — click it any time to re-run the same workflow, reusing the login you already set up. To run it on a schedule or when a message comes in, set up a normal schedule or trigger with the same instructions.
Prefer the API? Just say so
Many services can be connected over their API instead — no browser, no live session. Your assistant tries that route first, and it only proposes a browser when there's no usable API or the API route fails. When it does propose one, it tells you why.
If you'd rather sign in yourself, say so — "just give me the link" — and the assistant hands you a URL to open in your own browser, where you're already signed in. For services that use OAuth, that's the normal flow anyway: you approve in your browser and paste the redirect address back into chat.
Some sites have no API and no OAuth at all — an internal tool, an older vendor portal. There the browser session is the only way in, and the assistant will say so rather than send you a link that leads nowhere.
You only have to say it once per service. The assistant remembers your preference and won't ask again for that one.
Good to know
- Tabs appear automatically. When the assistant opens a browser session, the tab appears in your file viewer without any extra steps. You can switch to it, switch away, and switch back — the live view stays active.
- Desktop only for now. The live browser view works on the web app; it isn't available on mobile yet.
- Some sites resist automation. Most everyday business tools work well. A few high-security sites (some banks, some payroll systems) may challenge the session or ask you to verify again.
For the assistant — driving the browser (tool reference)
This section is for the AI operating the browser. Read it before any non-trivial browser work.
Don't open a browser as your first move. If a session for this site already exists (browser_list_integrations), use it. Otherwise take the credential path first — existing creds in scripts/<provider>/, the provider guide, the OAuth relay (a link the user opens in their OWN browser). Only when there's no usable API, or it failed, say why in one line and ASK before calling browser_request_user_login. Then record their answer with plank_memory_add keyed to the service, so you ask once per service rather than once per turn.
Read, then act. browser_snapshot returns the page's accessibility tree plus a "Targetable elements" index of refs. Target by ref (exact) or by role + accessible name. browser_navigate accepts http(s) only — never a javascript: URL. Snapshots are the slowest step: act on every field you can see in ONE snapshot before taking another; re-snapshot only after a navigation, a dialog open/close, or when a ref stops matching (the page re-rendered). If the snapshot says a list was truncated or "more not shown", narrow it (below) — don't scroll blindly.
Picker / chooser fields. Some fields can't be typed into — their value is CHOSEN from a popup (lookup/reference fields, "Select an item" modals, cascading tree pickers). browser_snapshot flags these as "picker field (read-only)". Don't browser_type into them (it silently no-ops, and a required empty picker blocks Submit). Instead click the adjacent control that opens the chooser (label varies — Select, Choose, Lookup, Browse, a magnifier/▾ icon, possibly in the site's own language); these triggers, plus toolbar buttons, list rows, and Save controls, appear in the snapshot as buttons even when the site builds them as plain clickable text with a JavaScript handler. Take a FRESH snapshot — the dialog's controls are included even inside an iframe modal or a popup window. To narrow a long list, type in its search box and click its Search button — do NOT press Enter (avoid submit:true in a picker search), because on some enterprise forms Enter submits the underlying form and navigates away, discarding the unsaved draft. Then click the result row by ref and click Confirm/OK. A rich-text field (a reason/description editor) appears as a textbox with an empty or generic name inside an ── Frame: about:blank ── section — fill it with browser_type by its ref, like any field.
Download a file to the workspace (browser_download). Single clear button: click:{role,name}; same-site direct link: url. Multi-step or hidden downloads (OneDrive, SharePoint, Drive): ARM/COLLECT — browser_download(label, arm:true), trigger the download with normal clicks/navigation, then browser_download(label, collect:true, save_to) (if nothing captured yet, trigger then collect again). ~25MB cap; save_to is a workspace-relative path. In a file list where every row's checkbox shares one name, scope the click to the row by its file name. Reveal a hidden Download (viewer/toolbar) with browser_press_key, or fall back to vision.
Upload a workspace file into a site (browser_upload). Pass the file path plus the ref (preferred) or role+name of the upload control; the file dialog is filled for you. A hidden/styled <input type=file> (common on enterprise forms — shown as a textbox named like __landray_filefd_... or a "Choose File" button) is filled DIRECTLY by its ref, no click needed. Several files at once: extra_paths (one at a time if the control rejects a batch). For a flyout/menu upload the snapshot can't see, use browser_upload_at with screenshot coordinates.
Vision fallback — last resort, only for controls not in the snapshot at all (a canvas, a PDF/non-DOM viewer): browser_screenshot (1536×864), then browser_click_at(x,y) / browser_type_at(x,y,text,submit).
Save a re-runnable automation. Write scripts/browser/<slug>.md whose first lines are <!-- @plank-browser-automation / name: <display name> / login: <the EXACT browser login label this reuses> / -->, followed by the workflow written as a prompt. It then appears in the Integrations sidebar with a Run button.