The API Problem
The promise of automation has always bumped against a hard reality: most websites do not offer public APIs. And the ones that do often make them expensive, rate-limited, or restricted to enterprise customers. Want to automate filing a government form? No API. Want to auto-fill job applications across multiple career sites? No API, or a different API for each one. Want to extract data from your insurance company's dashboard? Definitely no API.
Traditional automation tools like Zapier and Make work by connecting to APIs. If a service has a Zapier integration, you can automate it. If it does not, you are stuck. This creates a frustrating divide where well-funded SaaS tools with developer teams get automated, but the everyday websites where people spend most of their time — government portals, HR systems, banking dashboards, insurance forms, university applications — remain entirely manual.
The developer approach has been tools like Selenium and Playwright, which can control a browser programmatically. These are powerful but require significant coding skill. You need to inspect the page's HTML, write CSS selectors or XPath expressions for every element, handle page loads and JavaScript rendering, manage browser sessions, and write retry logic for flaky interactions. For a single page, this might take an afternoon. For a workflow that spans multiple pages on multiple sites, it becomes a full development project.
Nemo's Chrome extension solves this problem differently. Instead of requiring an API or coding, it lets an AI agent interact with any website the same way you do: by reading what is on the page and filling in fields, clicking buttons, and navigating links. You describe what you want in plain English, and the AI handles the rest.
What the Nemo Chrome Extension Does
The Nemo Chrome extension gives Nemo's AI agent the ability to interact with your web browser. It is a Manifest V3 Chrome extension that connects to the Nemo desktop application and acts as the agent's "hands" in the browser. Here is what it can do:
- Read page content: Extract the text, structure, and form fields from any web page. The agent sees what you see, including dynamically rendered content from JavaScript frameworks like React, Angular, and Vue.
- Fill form fields: Enter text into input fields, select options from dropdowns, check checkboxes, and select radio buttons. The agent maps your personal data to form fields using AI reasoning, not hardcoded selectors.
- Navigate between pages: Follow links, submit forms, and move between pages in a multi-step workflow. The agent can handle sequences like "go to the careers page, click Apply, fill the application, and submit."
- Extract structured data: Pull specific information from a page into a structured format. For example, extracting product names, prices, and availability from an e-commerce page into a comparison table.
- Submit forms: After filling fields, submit forms with a single confirmation from you (all form submissions require draft consent — you always approve before anything is sent).
All of this is controlled through natural language in Nemo's chat interface. You do not write code, inspect HTML, or configure selectors. You say "fill out this form with my information" and the agent handles field detection, data mapping, and entry.
Architecture: How It Works
The Chrome extension communicates with Nemo through a carefully designed architecture that prioritizes security and privacy. Here is how the pieces fit together:
Native Messaging (Manifest V3)
Chrome extensions have strict security boundaries. They cannot directly communicate with arbitrary local applications. Chrome provides a mechanism called Native Messaging that allows extensions to communicate with registered native applications through stdin/stdout pipes. When you install Nemo, it registers a native messaging host (com.nemo.agent) with Chrome. This registration is automatic — you do not need to edit registry keys or configuration files manually.
The communication chain is: Chrome Extension connects to native_host.py (a lightweight Python process) via Chrome's Native Messaging protocol. The native host then connects to Nemo's BrowserRelay server running on localhost port 18792 via TCP. The BrowserRelay is part of Nemo's Python backend and integrates with the agent's skill system.
End-to-end encryption
All commands between the extension and Nemo are encrypted. When the extension first connects to the native host, they perform an ECDH P-256 key exchange. This generates a shared secret that is never transmitted. The shared secret is then fed through HKDF with SHA-256 (using the salt "nemo-relay-v1") to derive an AES-256-GCM encryption key. Every subsequent message is encrypted with this key, including a unique nonce for each message to prevent replay attacks.
This means that even if another local application could intercept the communication between the extension and the native host (which Chrome's sandboxing makes difficult), the data would be indecipherable without the session key. The key is ephemeral — it is regenerated every time the extension connects.
Heartbeat and reconnection
The extension sends a heartbeat ping every 20 seconds. The relay responds with a pong. If the relay does not receive a heartbeat for 45 seconds, it considers the extension disconnected and cleans up the session. If the extension loses its connection, it uses exponential backoff (starting at 1 second, capped at 30 seconds) to reconnect, with a maximum of 10 attempts before giving up. This ensures that temporary interruptions (like Nemo restarting) are handled gracefully without losing state.
Content size limits
Chrome's Native Messaging protocol has a hard limit of 1MB per message. To stay well within this limit, the extension caps HTML content at 500KB. For most web pages, this captures the full page content. For extremely large pages (some enterprise dashboards can render massive DOM trees), the extension intelligently truncates by removing script tags, style blocks, and deeply nested elements that are typically not relevant to form fields or readable content.
Form Filling Deep Dive
Form filling is the Chrome extension's most sophisticated capability. Nemo's form_filler skill uses a multi-phase approach that combines AI reasoning with a learned strategy system to fill forms accurately and efficiently.
Phase 1: Scan and ask
When you ask Nemo to fill a form, the agent first sends a browser.read_fields command to the extension. This returns a structured list of all form fields on the page: their names, types (text, select, checkbox, etc.), current values, and any label text or placeholder text. The agent then analyzes these fields against your saved profile data to create a fill plan.
If the form has fields that the agent cannot map to your profile data, it triggers the ask-for-missing pattern. Instead of guessing or leaving fields blank, the agent explicitly asks you: "This form has a field labeled 'Employee ID Number' that I don't have in your profile. What should I enter?" This happens before any data is entered into the form, so you have full visibility and control.
Phase 2: Save and fill
After you confirm the fill plan (and provide any missing values), the agent enters data into each field using browser.fill_field commands. Each field fill is a separate command, allowing the agent to handle errors and unexpected page behavior on a per-field basis. If a field triggers a dynamic page change (like selecting a country that loads a new set of state options), the agent detects this and adapts.
Any new information you provided (like that Employee ID) is optionally written back to your profile for future use. This means the agent learns your data over time, and the second time you fill a similar form, it will not need to ask for those values again.
Strategy Knowledge Base
One of Nemo's most powerful features is the Form Strategy Knowledge Base. After successfully filling a form, the agent saves a complete recipe for that form's domain. The recipe maps each form field to the profile key it was filled from (e.g., 02frstname = profile.name.first) and records any derived transformations (e.g., profile.dob = extract month).
The next time you or any Nemo user fills a form on the same domain, the agent can follow this recipe directly instead of reasoning through every field mapping from scratch. This dramatically reduces the number of LLM calls needed (from 7+ to 1–2) and improves accuracy because the recipe was verified by a successful previous fill. The Strategy Knowledge Base is part of Nemo's Collective Intelligence system, so recipes are shared (anonymized) across all Nemo users.
Submission safety
Form submission always uses draft consent. The agent prepares the submission and shows you exactly what will be submitted, but nothing is sent until you explicitly approve. Additionally, the agent blocks submission attempts when less than 50% of the form fields are filled, returning an error that lists the unfilled fields. This prevents accidental submission of incomplete forms.
Page Reading and Data Extraction
Beyond form filling, the Chrome extension allows Nemo to read and understand web page content. When the agent sends a browser.read command, the extension extracts the page's DOM content, strips non-essential elements (scripts, styles, hidden elements), and returns a cleaned HTML representation capped at 500KB.
The AI model then processes this content to understand the page's structure and extract relevant information. This is fundamentally different from traditional web scraping:
- Traditional scraping requires you to write CSS selectors or XPath expressions for each piece of data. Change the website's HTML structure and your selectors break.
- AI-powered reading understands the semantic meaning of content. "Find the price of this product" works regardless of whether the price is in a
<span class="price">, a<div data-price>, or a table cell. The AI understands context, not selectors.
This makes the extension resilient to website redesigns. A traditional scraper breaks when a website changes its CSS classes. Nemo's AI-powered reading adapts automatically because it understands what information looks like, not where specific HTML elements are.
Structured data extraction
You can ask Nemo to extract specific data from a page in a structured format. For example: "Extract all product names, prices, and star ratings from this page and list them in order of price." The agent reads the page, identifies the relevant data points using AI comprehension, and presents the results in a clean, structured format. This works on pages the agent has never seen before, without any preconfiguration.
Navigation and Multi-Step Workflows
Real web automation rarely involves a single page. Job applications span multiple pages. Government forms have multi-step wizards. E-commerce checkout flows go through cart, shipping, and payment pages. Nemo's Chrome extension supports multi-step workflows through its browser.navigate command.
The agent can navigate to URLs, follow links on the current page, and handle page transitions. Because Nemo is a multi-turn skill, the conversation persists across multiple pages. The agent remembers what it has done on previous pages and uses that context to inform its actions on subsequent ones.
Multi-step form sequences
For multi-page forms (common in government and enterprise applications), the agent fills the current page, submits it (with your approval), waits for the next page to load, reads the new form fields, and continues filling. The entire sequence is managed as a single task. You see the progress in Nemo's chat interface and approve each submission step.
Login flows
The extension can interact with login pages, but with an important distinction: Nemo does not store your third-party website passwords. If you need to access a page behind authentication, you log in manually first, and then ask Nemo to work with the authenticated page. This is a deliberate security decision — storing passwords for arbitrary websites would create a significant security risk that the convenience does not justify.
For sites where Nemo has OAuth integration (currently Google and GitHub), the authentication is handled through the Connections page with proper OAuth token management. For everything else, the browser extension approach (you log in, then Nemo automates within your authenticated session) provides the best balance of functionality and security.
Security and Privacy
Browser extensions have a complicated reputation when it comes to privacy. Many popular extensions have been caught selling browsing data, injecting ads, or tracking user behavior. Nemo's extension is designed from the ground up with the opposite approach.
What the extension does NOT do
- No browsing history tracking: The extension does not monitor, record, or transmit which pages you visit. It has no background scripts that run when you are not actively using Nemo.
- No data collection: There are no analytics, telemetry, or tracking pixels. The extension does not communicate with any external servers, ever.
- No advertising: No ads, no affiliate links, no monetization of your browsing behavior.
- No always-on monitoring: The extension only activates when Nemo sends it a command. Between commands, it sits idle. It does not read pages proactively or in the background.
What the extension DOES do for security
- End-to-end encryption: Every message between the extension and Nemo uses AES-256-GCM encryption with an ephemeral session key derived from ECDH P-256 key exchange.
- Local-only communication: The extension communicates exclusively with the Nemo desktop application on your local machine via Chrome's Native Messaging protocol. No data is sent to external servers.
- On-demand activation: The extension only reads page content when explicitly commanded by Nemo as part of a task you initiated. It never proactively accesses your browser data.
- Sentinel integration: All data received from the extension passes through Nemo's Sentinel safety layer before any action is taken. PII detection, consent enforcement, and audit logging apply to all browser interactions.
Use Cases
The Chrome extension unlocks automation for tasks that were previously impossible without writing code or paying for expensive RPA software. Here are the most common use cases:
Filling government forms
Government websites are notorious for long, repetitive forms that require entering the same personal information repeatedly. Tax forms, DMV renewals, permit applications, immigration paperwork — all require manually filling dozens of fields. With Nemo, you say "fill this form with my information," review the filled fields, and submit. Your profile data is mapped to form fields automatically. The Strategy Knowledge Base means the second time you fill the same type of government form, it is even faster.
Applying to jobs
Job applications are a particularly painful form-filling problem because every company uses a different application system. Greenhouse, Lever, Workday, Taleo, and custom ATS platforms all have different form layouts. Traditional automation breaks because selectors differ across platforms. Nemo's AI-powered form filling adapts to each platform automatically. You load the application page and say "fill this application with my resume data." The agent figures out the field mapping for each unique platform.
Extracting data from dashboards
Many business tools present data in web dashboards without export functionality. Insurance portals, HR systems, analytics dashboards, and project management tools often make you manually copy data. With the Chrome extension, you can ask Nemo to extract specific data from these dashboards and present it in a structured format, or even summarize it.
Comparison shopping
Looking for the best price across multiple retailers? Ask Nemo to read product pages on different sites and compile a comparison. The agent navigates to each page, extracts the relevant information (price, availability, shipping cost, ratings), and presents a unified comparison. No APIs needed for any of the retailers.
Automating enterprise web tools
Many enterprises run on web-based tools that have no API access for individual employees: time tracking systems, expense reporting, internal wikis, project management tools. The Chrome extension lets Nemo automate routine tasks in these systems. "Submit my timesheet for this week" or "file an expense report for this receipt" become one-sentence commands.