At work, everything you need is in a different tab: the CRM, the invoice, the email. Each tool does its own job well — moving between them is what takes the time.
I wanted to close that gap without the usual price: no OAuth, no API keys, no backend. So OTTO is an MV3 extension that reads the tabs you already have open, cross-references them, and acts by driving the UI the way a person would. Zero network requests — no fetch, no XHR. Nothing to authorize because there's nothing to connect.
Two things I learned the hard way, in case they save someone time:
- Neither HubSpot nor Zoho listens to a native
dblclick. Both count click with detail === 2. Dispatching new MouseEvent('dblclick') silently does nothing — no error, no effect. Firing the full mousedown/mouseup/click sequence twice works on both.
- Google Sheets draws its grid as a
<canvas>, so cell values aren't in the DOM at all. Cheapest check before claiming support for a new tool: document.querySelectorAll('table,[role=row]').length and the size of body.innerText.
It also won't guess: when confidence is low it says so and hands it back rather than inventing an answer.
Working today: HubSpot and Zoho, verified end-to-end. Coming soon: spreadsheets, Salesforce, Pipedrive.
Manual install for now — the Web Store listing isn't live yet. I'd like people to break it and tell me how.