Skip to content

BhuvanAde/do-nothing

Repository files navigation

Do Nothing

AI-powered Chrome extension that can read pages, reason with Gemini, and execute real DOM actions (click, type, extract, scroll, fill forms, and more).

Why This Exists

Most browser assistants stop at suggestions. Do Nothing executes actions directly on the current page through a controlled tool loop.

What It Can Do

  • Run browser automation from natural language prompts.
  • Auto-select domain-specific skills (for LinkedIn, jobs, extraction, summaries, etc.).
  • Stream progress via pipeline steps and tool call states.
  • Keep session history and long-term memory in local extension storage.
  • Support voice typing in the sidepanel chat input.

How It Works (High Level)

flowchart LR
    U[User Prompt in Sidepanel] --> BG[Background Service Worker]
    BG --> CTX[Context Builder<br/>+ Memory + Skills]
    CTX --> LLM[Gemini Model]
    LLM -->|Function Calls| DOM[Content Script DOM Engine]
    DOM -->|Action Results| LLM
    LLM -->|Final Text| BG
    BG --> UI[Sidepanel Updates<br/>chat, pipeline, tools]
Loading

Read deeper architecture docs in ARCHITECTURE.md.

Built-In Skills

The registry lives in src/background/skills.ts and includes skills such as:

  • LinkedIn Connect / Message / Follow / Comment
  • X/Twitter Follow
  • Job Applier
  • Page Summarizer
  • Data Extractor
  • Form Filler
  • Auto Scroller
  • Email Drafter
  • Shopping Assistant

Skills are matched by URL + intent score and can be explicitly selected from the Skills tab.

Quick Start

1. Install dependencies

npm install

2. Build extension

npm run build

3. Load in Chrome

  1. Open chrome://extensions
  2. Enable Developer mode
  3. Click Load unpacked
  4. Select the dist/ folder

4. Configure API key

  1. Open extension sidepanel
  2. Go to Settings
  3. Add your Gemini API key
  4. Save settings

Usage Guide

Chat panel

  • Ask with direct intent: Extract all job titles and company names from this page.
  • Use explicit constraints: Apply only to remote React roles with Easy Apply.
  • If tasks are complex, split into smaller prompts.

Skills panel

  • Pick a specific skill when you need deterministic behavior.
  • Use sample prompts from each skill card as templates.

Memory panel

  • Store durable facts you want future tasks to reuse.
  • Keep memory concise and structured for better reuse.

Voice typing

  • Click the mic icon in chat input.
  • Allow microphone permission when prompted.
  • Speak in short phrases for cleaner transcripts.

Use It Better (Practical Tips)

  • Start with a dry run prompt: Show me what you'd do first, then execute.
  • Prefer exact selectors/targets in prompts when possible.
  • For bulk actions, define limits: first 10, top 5, only visible.
  • For form tasks, provide profile data once in memory, then reuse.
  • Tune Action Delay in Settings to reduce rate-limit or anti-bot triggers.

Project Structure

src/
  background/    Service worker, Gemini loop, skills, memory, session
  content/       DOM interaction engine injected into pages
  sidepanel/     React UI (chat, skills, memory, history, settings)
dist/            Webpack build output for unpacked extension loading

Development

npm run dev     # watch mode
npm run build   # production build
npm run clean   # remove dist

Security & Privacy Notes

  • Memory and session data are stored in chrome.storage.local.
  • API key is stored locally via extension settings.
  • The extension executes DOM actions only on pages where content scripts run.

Troubleshooting

  • No response / errors: verify API key and selected model in Settings.
  • Action fails repeatedly: ask for smaller scoped actions and clearer targets.
  • Voice typing not starting: check browser microphone permissions for extensions.
  • Content script issues: reload extension and the active tab.

Contributing

Contributions are welcome, especially new day-to-day automation skills.


Support & Community

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages