Skip to content
pando/ docs

Built-in Tools Reference

Every option for the tools Pando ships with: reading web pages, searching the web, driving a browser, driving your desktop and converting documents. For the explanations see Browser Automation, Desktop Controller and Document Conversion; for the step-by-step see the guide Give Pando eyes and hands.

All keys live in the [InternalTools] section of .pando.toml.

Web reading and search

[InternalTools]
FetchEnabled            = true
FetchMaxSizeMB          = 10
GoogleSearchEnabled     = true
GoogleAPIKey            = ''
GoogleSearchEngineID    = ''
BraveSearchEnabled      = true
BraveAPIKey             = ''
PerplexitySearchEnabled = true
PerplexityAPIKey        = ''
ExaSearchEnabled        = false
ExaAPIKey               = ''
SourcegraphEnabled      = false
SourcegraphToken        = ''      # optional: the public service is used when empty
Context7Enabled         = true    # library documentation, no key needed

The fetch tool can read a page through a browser when the page needs JavaScript:

{
  "url": "https://example.com",
  "format": "markdown",
  "browser": "auto"
}

browser accepts auto, chrome, firefox, curl and http.

Browser

[InternalTools]
BrowserEnabled     = true
BrowserType        = 'chrome'
BrowserExecutable  = ''         # empty: find it automatically
BrowserHeadless    = false      # true: no visible window
BrowserTimeout     = 30         # seconds
BrowserUserDataDir = ''
BrowserMaxSessions = 3
BrowserTypeBrowser
chromeGoogle Chrome (default)
msedgeMicrosoft Edge
chromiumChromium
operaOpera
firefoxFirefox (through the fetch tool)
lightpandaLightpanda, a light browser with no window
obscuraObscura, a fast browser with no window, written in Rust

Lightpanda and Obscura are started by Pando as a background program and have no window and no user profile, so BrowserHeadless and BrowserUserDataDir do not apply to them. For Obscura, the obscura command must be in your PATH.

Browser sessions are shared from a pool limited by BrowserMaxSessions. If your normal browser profile is in use, Pando falls back to a temporary one.

ToolWhat the agent does with it
browser_navigateOpen an address
browser_get_contentRead the page: HTML, text or title
browser_screenshotTake a picture of the page or of one element
browser_clickClick something
browser_fillFill a form field
browser_scrollScroll
browser_evaluateRun JavaScript in the page
browser_console_logsRead the page’s console messages
browser_networkSee the requests the page made
browser_pdfSave the page as PDF

Desktop controller

[InternalTools]
DesktopEnabled            = false   # master switch
DesktopBackend            = 'auto'  # auto | atspi | uia | ax | cdp | null
DesktopAllowPhysicalInput = true    # allow a real mouse click or key press as fallback
DesktopMaxNodes           = 500     # most elements reported per look
DesktopDefaultDepth       = 3       # how deep to look into a window by default
DesktopActionTimeout      = 10      # seconds
DesktopSnapshotTTL        = 60      # seconds a look stays usable
DesktopScreenshotScale    = 1.0     # shrink screenshots before sending them to the model
DesktopAllowedApps        = []      # if set, only these apps can be touched
DesktopDeniedApps         = []      # never touched; wins over the allow list
KeyWhat it is for
DesktopBackendLeave on auto. Pando picks the right one for your system and, when a browser session is open, drives the browser through the same tools. Any other value pins that one
DesktopAllowPhysicalInputWhen an app does not offer a proper way to act on an element, Pando can fall back to a real click or key press. false forbids that
DesktopAllowedApps / DesktopDeniedAppsThe practical way to fence the agent in: allow only the app you are working on, deny your password manager, mail or terminal. Deny always wins
DesktopScreenshotScaleLower it (for example 0.5) to make screenshots cheaper
What the agent can doAsks you first?
List running apps and their windowsno
Read a window’s content and structureno
Find an element by name or roleno
Wait for something to appear, disappear, become enabled or focusedno
Click, focus, type text, press a key or key combination, scrollyes
Take a screenshot of the screen, a window or one elementyes
Click a raw screen position (last resort, by sight)yes
PlatformWhat you need
Linux (X11)An accessibility bus running (org.a11y.Bus); GNOME and KDE have it on by default
Linux (Wayland)Say yes to the desktop dialog the first time. Your answer is remembered
macOSGive Pando Accessibility permission (System Settings → Privacy & Security → Accessibility). Screenshots also need Screen Recording
WindowsNothing extra

The desktop tools can also be offered to other programs through pando mcp-server. They follow the same DesktopEnabled switch.

Document conversion

No options. It works out of the box.

pando convert report.docx              # print the Markdown
pando convert data.xlsx -o data.md     # write it to a file
pando convert https://example.com/page.html
pando convert --list-formats
KindExtensions
PDF.pdf
Word.docx
Excel.xlsx, .xls
PowerPoint.pptx
Web.html, .htm
Data.csv
E-book.epub
Notebook.ipynb
Feed.rss, .atom
Markup.xml, .json, .jsonl
Archive.zip
Text.txt, .md, .markdown

To add a whole folder of documents to the knowledge base, converting on the way:

pando kb import /path/to/documents