personalize your browsing experience in seconds
the extension is an AI-agent powered Chrome side panel that turns one sentence into a real, installable Chrome extension. Type what you want, and an Agentverse-registered agent plans it, writes it, validates the Manifest V3 manifest, packages a ZIP, and hands you a Load Unpacked card. End to end, prompt to installed extension, takes under a minute.
It also has an Edit DOM mode: hold ⌘, hover any element on a webpage, click to select it, and tell the agent things like "make this 30% wider," "hide it," "move it to the top," or "change the text to 'inbox zero'." Watch the page change live. When you're happy with the edits, one button exports them as a permanent Chrome extension that re-applies your changes every time you visit that site.
- Landing page: thewebisboring.design
- Public agent on ASI:One / Agentverse: the extension orchestrator
- Built at LA Hacks for the Flicker to Flow track.
backend/ FastAPI execution layer + uAgents (Agentverse) app
browser-agent-console/ Chrome side panel (React + TypeScript + Vite)
ARCHITECTURE.md deeper architecture reference
DEVPOST.md Devpost submission writeup
git clone https://github.com/aidanjnn/the-extension.git
cd the-extension
# backend deps
cd backend && uv sync && cd ..
# extension deps
cd browser-agent-console && npm install && cd ..Create backend/.env (this file is gitignored). The seeds determine the agent's on-Agentverse identity, so leave them alone unless you want to register a fresh agent.
GEMINI_API_KEY=your_gemini_key
AGENTVERSE_API_KEY=your_agentverse_key
PUBLIC_AGENT_BASE_URL=https://your-static-ngrok-uagents-url
PUBLIC_BACKEND_BASE_URL=https://your-public-backend-url
BACKEND_EXECUTION_API_URL=http://localhost:8000
UAGENTS_PORT=8001
AGENTVERSE_EXECUTION_TOKEN=dev-agentverse-token
ORCHESTRATOR_SEED=the-extension-orchestrator-demo-seed
ARCHITECT_SEED=the-extension-architect-demo-seed
RAG_SEED=the-extension-rag-demo-seed
CODEGEN_SEED=the-extension-codegen-demo-seed
VALIDATOR_SEED=the-extension-validator-demo-seed
PACKAGER_SEED=the-extension-packager-demo-seedSet up an ngrok config at ~/Library/Application Support/ngrok/ngrok.yml so a single command starts both tunnels:
version: "3"
agent:
authtoken: <your-ngrok-authtoken>
tunnels:
uagents:
proto: http
addr: 8001
domain: <your-static-ngrok-domain>.ngrok-free.dev
backend:
proto: http
addr: 8000The uagents tunnel needs a static domain so Agentverse can keep reaching your registered agent. The backend tunnel can be ephemeral.
You'll want four terminals running at once.
1. FastAPI backend — port 8000
cd backend
uv run main.py2. uAgents Chat Protocol server — port 8001
cd backend
uv run python -m agentverse_app.main3. ngrok tunnels — exposes 8000 and 8001 publicly
ngrok start uagents backendAfter ngrok prints the backend URL, copy it into PUBLIC_BACKEND_BASE_URL in backend/.env and restart the FastAPI server.
4. Chrome side panel dev build
cd browser-agent-console
npm run devThen open chrome://extensions, enable Developer mode, click Load unpacked, and select browser-agent-console/dist. Pin the side panel and you're good.
In the side panel (or via ASI:One on the agent's public page):
Hide YouTube comments and Shorts on the homepage.
You should see progress events, an extension_ready install card, and a folder + ZIP under backend/generated_extensions/. Load the unpacked folder, refresh YouTube, comments are gone.
backend/main.py— FastAPI routes, WebSocket chat, DOM-edits export endpointbackend/agentverse_app/— uAgents Bureau, Orchestrator, and specialist roles (Architect / RAG / Codegen / Validator / Packager)browser-agent-console/src/sidepanel/— Create / Edit DOM UIbrowser-agent-console/src/content/— Cmd-hover purple overlay and live DOM ops
For the deeper architecture see ARCHITECTURE.md. For the Devpost writeup see DEVPOST.md.