DEV Community

Cover image for Ego Browser: give the agent a workspace, then check its work
Harshith Vaddiparthy
Harshith Vaddiparthy

Posted on

Ego Browser: give the agent a workspace, then check its work

I've been using Ego Browser since it was released on GitHub. The useful idea is that an agent gets its own browser space while the human keeps their own browsing context.

That is a practical change in how browser automation fits into a working day. An agent can have a task and a set of pages to work through, without that task becoming a pile of tabs in the middle of whatever I am doing.

Ego calls these workspaces Spaces. Its documentation describes separate task tabs with access to the browser's available login state. The agent can use structured page snapshots, navigate, click, fill controls and capture screenshots. The visible agent cursor and action labels help a person follow the interaction.

Ego browser introduction

Start with one question and a result you can inspect

A good first task is small and read-only. For example:

Compare these three product pages. For each product, find the supported operating systems, whether data export is documented, and where the pricing is explained. Return a table with a source URL for every answer. If the page does not answer a question, say that. Do not sign up, submit a form or change any account settings.

This task has a clear end. It also gives me something to check: each answer should agree with its source. A polished summary with no traceable evidence is harder to trust than a modest table that admits what is missing.

The same pattern works for release research. Open the repository, follow the relevant documentation, distinguish released features from roadmap items, and retain the exact sources.

Separate spaces in Ego

Ego Space switch animation

Animation: Ego / Citro Labs, excerpted from the official GitHub demo.

Three useful applications

Research and comparison. Give the agent the same questions for each product or source. Ask it to preserve URLs and uncertainty. This is more useful than asking it to browse broadly and report whatever looks interesting.

Website checks. Pick one journey: find a feature, use a navigation menu, or complete a form in a test environment. Ask for the steps taken, the resulting state and a screenshot of anything confusing or broken. Successful clicking does not establish that the site saved the result correctly.

Content preparation. Gather original sources and relevant screenshots before drafting. Keep the evidence beside the draft so that a factual claim can be checked without repeating the entire browsing session. Preparing an article and publishing it are different actions; authorize the latter explicitly.

These are suggested workflows, not performance results from a benchmark or claims that every website permits automation.

Three practical tasks

What the animation tells me

A visible cursor and a short action label make the next interaction easier to follow. They help answer: which control is the agent targeting, and what does it think that control will do?

The next question still matters: what happened on the page?

After navigation, check the destination. After filling a field, check its value. After an authorized save, reload and check that the result persisted. An action receipt establishes that an input was sent; it does not establish that the task succeeded.

The accompanying clip is an excerpt from Ego / Citro Labs' official demonstration. It shows the browser's own interaction treatment. The documentation screenshot was captured through Ego on my Mac mini; it is a separate source, not a claim that I recorded the official demo.

Native Ego browsing animation

Footage: Ego / Citro Labs. The excerpt preserves the browser's actual visual feedback.

Check the result of the action

A small implementation pattern

On the installed Ego API used for this walkthrough, a task has a persistent space ID and managed page labels. Reuse them across rounds:

const task = await taskSpace("Compare product documentation");
const page = task.page("p1");
await page.goto("https://lite.ego.app/document/en/docs/space");
console.log({ spaceId: task.spaceId, page: page.label });
console.log(await page.snapshot());
Enter fullscreen mode Exit fullscreen mode

Read the current installed Ego guide before adapting this example. Observe the actual page before choosing a click target; do not assume a selector from another site will apply.

Keep the boundary clear: which pages may the agent inspect, which changes may it make, and when should it stop? Separate task spaces organize the work. Account access still needs an explicit scope.

Sources and credits

Product descriptions were checked against the project's documentation. Ego Browser and its interface are the work of the Ego / Citro Labs team.

Top comments (0)