Tools
Web and research
Searching the web, reading pages in full, calling APIs, and research that reads real sources and names them.
What this family is for
These tools answer questions with what is true today instead of what a model remembers: prices, news, versions, how a library is really used. They read; they never click, sign in or type into a site. Work that needs a real browser is Browser control.
How a search is answered
web_search returns results as text Mori can read, not a tab she cannot see. It tries the search services you have keys for first, Tavily, then Exa, then Studio Mori's hosted search when you are signed in, and falls back to a search that needs no key. If one service fails, the next is tried, so an expired key does not end the search. Research keys go in Settings > Connections, under More ways to connect.
For live values she does not reliably know, such as a price, a score or today's weather, she searches instead of answering from memory.
Reading a page all the way
A snippet is not the page. web_extract reads up to five pages at once as clean text. A long page is never cut silently: the full text is saved, and the result says how to read the rest. http_request calls an exact address and returns the raw answer, for a JSON API or a feed. It waits 15 seconds, keeps 200 KB, and refuses local and private network addresses, so a page can never point her at your router or a service on your machine.
Developer sources
For code, Mori goes to where the answers live:
- GitHub: repositories by stars, a repository's tree and files, real code that calls an API, issues and pull requests with their whole threads (closed ones too, where the reasoning often is), and release notes. Searching code on GitHub needs a token.
- StackOverflow's top voted full answer for an error, and Hacker News discussions for prior art.
package_lookupfor versions and licences on npm, PyPI, crates.io and the game mod registries.
Deep research
deep_research is for questions that need several sources. Mori splits the question into angles, sends researchers to search and read in parallel, and writes one answer with a list of sources. A quick fact gets web_search instead. Deep research runs a day are a plan count: Free has one a day. See Plans, credits and your own keys.
Studying a reference before building
When you say "like this site" or "from this video", study_reference reads it all the way through: a site's pages, a repository cloned into her own folder, a video's speech and frames across the whole clip, a picture, or a product's own site. It returns a reference brief with what to take and what stays yours. design_references gathers design references for designer mode. What she gathers stays in her own folder, never in your project.
Text is data, and the switch
Whatever a page says, Mori reads it as information, never as an instruction to act. The family follows the Browser Control switch in Settings > Permissions. Searching GitHub, StackOverflow, Hacker News and the package registries, and studying a reference, always run because they only read. At the Safe level, browser and web tools are what still runs.
Each description below is the exact text her model reads when it decides which tool to call.
Search the web and READ the results back as text: the way to ANSWER questions with current or live information you do not reliably know: crypto and stock prices, 'today/now/latest/current' values, exchange rates, weather, sports scores, breaking news, or any fact you are unsure of. ALWAYS use this for live or uncertain data instead of answering from memory. Unlike search_google, which only opens a tab, this gives you the text to read.
Fetch web pages as clean readable TEXT, deeper than a web_search snippet. Pass up to 5 URLs in 'urls' to read them ALL IN PARALLEL. A long page is never lost: the full text is cached and the result ends with the read_file call (path + offset) for the rest, so never treat a truncated extract as the whole document. Raise char_limit for more inline; raw JSON or APIs are http_request.
Call a URL or API directly and get the raw response back: JSON APIs, RSS/XML feeds, raw file contents, webhooks, status endpoints. Use this, not web_search, when you have an exact URL and want its actual payload. Supports method, headers and body. 15s timeout, response capped at 200KB, local/private addresses blocked.
Do THOROUGH, autonomous research on a question: Mori breaks it into angles, sends parallel researcher sub-agents to search the live web and READ the best sources, then synthesizes an answer WITH a Sources list. Use for anything needing real cited findings across multiple sources. For a single quick fact use web_search.
Search GitHub repositories by keywords (sorted by stars). REAL research: find libraries, reference implementations, prior art. Follow up with github_read to read the winning repo.
Read a GitHub repo directly: without "path" returns metadata + README + the full file tree; with "path" returns that file's contents (via the CDN, effectively unlimited). The real way to study how a library works.
Search real code across GitHub and return the MATCHING LINES, answers "how do people actually call this API", which no README does. Scope with repo/language/path. Note: GitHub requires a token for code search; without one, use github_read on a specific repo instead.
Search or READ GitHub issues and pull requests, where the reasoning lives. A maintainer explaining in a CLOSED issue why the obvious fix breaks something is worth more than the file it is about. Search with query (+repo to scope); then read one in full with repo + number to get its whole comment thread. Closed issues are included by default on purpose.
Read a repo's releases and release notes, what ACTUALLY changed between versions, which a version number cannot tell you. Omit tag for the latest few; pass tag for one version in full. Projects without GitHub Releases are pointed at their CHANGELOG instead.
Search StackOverflow and return the top-voted FULL answer for a technical question or error message, ground truth for debugging, not search snippets.
Search Hacker News discussions, prior art, library sentiment, "has anyone hit this" discourse. Returns stories with points/comments; web_extract a link to read further.
Look up packages, mods and plugins: npm, PyPI, crates.io; Modrinth and CurseForge (Minecraft mods, modpacks, data packs), Hangar and SpigotMC (server plugins), Thunderstore (BepInEx games), GameBanana (CS2, GTA, Source), Wally and the Roblox Creator Store, a Steam Workshop item by id. Exact name or slug gives versions, sides and licence; keywords search.
STUDY what the person points at, all the way through, before building from it: a website (its pages: sections, type, colours, spacing, motion, copy), a git repo (cloned shallow into Mori's folder: stack, layout, how it runs, licence), a video file or a YouTube, Vimeo or social link (every frame measured: a timestamped shot list of cuts, flashes, whips and dissolves, camera, effects, words on screen, palette, beats, speech), a picture or screenshot, or a product by name (its own site). Returns a Reference Brief (what to take, as close as asked, what stays theirs) with its pictures attached, kept in the job folder.
Design research: project tokens + real refs.
The best FREE resources for a job, a few and relevant: UI parts (shadcn/ui, Radix, 21st.dev look only), icons, open fonts, CC0 pictures, models and sounds, well-kept libraries, security references and scanners (OWASP, Semgrep, CodeQL, gitleaks, osv-scanner, trivy), primary research sources (arXiv, Semantic Scholar, OpenAlex, standards) and official game SDKs, each with its licence and what may be done with it. action find gives the shortlist; action credit records what you used in the project's CREDITS.md. Skip it when the person said not to use outside resources.