Sero's Web plugin is a built-in plugin (@sero-ai/plugin-web) for bringing web
context into an agent session. It can search the web, fetch readable content from
sources you provide, retrieve previously stored search/fetch content, run
code-oriented web lookups, and keep workspace-scoped bookmarks and activity for
later review. See the
Plugin Catalog for the built-in plugin inventory.
Sero is still a source-only OSS alpha. Web access depends on configured providers, local runtime support, signed-in browser/profile state for some paths, and third-party services that can change outside Sero.
The Web plugin focuses on a few practical workflows:
web_search or the
/web_search slash command.fetch_content.get_search_content.code_search.web_bookmark or /web_bookmark.These features are provider-mediated. Do not treat Web as a guaranteed plain search engine or universal file extractor.
web_searchUse web_search when you want current or external information brought into the
agent workflow. The tool returns an AI-synthesized answer with source citations.
Depending on the provider response and runtime behavior, some source content may
also be included or fetched in the background.
Example prompts:
web_search supports multiple related queries. For broader research, it can be
useful to ask for a few varied searches instead of one narrow query:
Search results are added to the session and mirrored into the Web app's workspace state so they can be revisited later.

fetch_contentUse fetch_content when you already have a URL or source and want the agent to
read it directly. The source code includes support paths for pages/URLs, PDFs,
GitHub repositories or content, YouTube video transcripts, video-related paths,
local video files, and readable markdown extraction from pages.
Those paths are not a promise that every source will extract cleanly. PDFs, GitHub, YouTube/video, and local-video extraction can depend on provider access, runtime dependencies, source availability, and the format of the content itself. Gemini-backed extraction may be used for some fallbacks, so Gemini access can matter for those cases.
Example prompts:
For a single URL, returned content may be truncated for the chat response. If the
full content was stored, use get_search_content to retrieve it by the saved
response details.
get_search_contentget_search_content retrieves content that was previously stored by
web_search or fetch_content. It does not fetch arbitrary new URLs on its own.
It needs the saved response identifier plus either the query/query index or the
URL/URL index from the earlier result.
Use it when the agent says content was stored but the chat response only showed a summary or truncated excerpt:
If there is no stored result for the requested response, ask the agent to run
fetch_content again on the source.
code_searchcode_search is for developer questions where examples, API docs, snippets, or
implementation context are more useful than a broad web answer. It is a limited
code-context lookup tool, not a replacement for web_search.
Example prompts:
Provider behavior for code search should still be treated as alpha. Verify any code examples against the upstream project before applying them.
Use web_bookmark or /web_bookmark to manage Web plugin bookmarks and related
history for the current workspace.
Examples:
Bookmarks are workspace-scoped, not global. They are stored with the current workspace's Web state, so a bookmark saved in one workspace should not be assumed to appear in another workspace.
The bookmark tool also manages search/fetch history. Clearing history removes stored search/fetch activity for the workspace and can clear runtime memory for the current session, so use it intentionally.
The Web app provides a visual place to revisit Web plugin state. The current source-supported surfaces are:
The Web Activity widget is a compact dashboard summary. It can show counts for searches, fetches, bookmarks, and downloads, provider availability dots, and a small list of recent activity.
Exact app layout and widget placement may change during alpha. Treat the app and widget as browsing surfaces for Web plugin state, while the tools remain the agent-facing way to perform search, fetch, code search, and bookmark actions.
Sero does not bundle third-party provider credentials. Search and some extraction paths depend on what is configured or signed in for the active profile/session.
Provider paths currently include:
PERPLEXITY_API_KEY or perplexityApiKey in the
Web config file.GEMINI_API_KEY or geminiApiKey in the Web config
file.The Web plugin's provider order for web_search is Exa, then Perplexity, then
Gemini API, then Gemini Web. Availability can change if credentials expire,
provider limits are reached, browser sign-in state changes, or a third-party
service changes behavior.
For Gemini Web troubleshooting, the support command google-account can report
which Google account appears active. It is a support aid only; it does not make
Gemini available by itself.
Web plugin state is stored under the current workspace:
That state can include search/fetch entries, bookmarks, downloads, provider availability, active provider information, workflow data, and timestamps. Search and fetch results are also appended to session entries and mirrored into this state file.
Because this is workspace state, avoid assuming bookmarks, history, downloads, or provider status are global across every workspace or profile.
Web access can send your query, fetched URLs, and relevant page/source content to the configured provider or model handling the request. Treat web activity as sensitive local workspace state.
Practical safety habits:
Check that at least one provider path is configured: Exa, Perplexity, Gemini API, or Gemini Web. API-backed providers need credentials. Gemini Web needs the right signed-in browser/profile state. Sero does not include default credentials.
A web_search answer can include citations without full inline source content.
Ask the agent to use fetch_content on the cited source, or use
get_search_content if the tool stored content for that response.
Single-source fetch output can be truncated in chat. Ask for stored full content
with get_search_content. If no stored full content exists, rerun
fetch_content and narrow the source or section.
These are source-supported paths, not guaranteed universal extraction. Failures can come from provider access, format differences, missing transcripts, rate-limits, blocked content, local runtime dependencies, or Gemini availability for fallback extraction.
Bookmarks live in the current workspace's .sero/apps/web/state.json. Switch
back to the workspace where the bookmark was saved, or save a separate bookmark
in the new workspace.
If Gemini Web is expected to work, use the google-account support command to
check the active account reported from the profile. Then confirm the profile is
signed in and has the cookies needed for Gemini Web-backed behavior.
Web providers are third-party services. Results, rate limits, auth requirements, content access, and extraction behavior can change without a Sero release. When in doubt, retry with another provider path or fetch the specific source directly.