Browser Automation
Drives a real browser for signed-in sites, forms, screenshots, and web QA.
Install
npx skills add code-yeongyu/oh-my-openagent --skill browser -g -a claude-code -y- Repository
- code-yeongyu/oh-my-openagent70.6k
- Category
- Testing
- Updated
- 3d ago
- License
- See repository
- Context cost
- Mediumabout 2,022 tokens
- Runs scripts
- Yes, review before use
What it does
Drives a real browser through the omowright library from the js eval kernel: sites the user is already signed into, forms and clicks, JS-rendered pages, screenshots, web QA, extension popups, a human handoff for login, CAPTCHA or OTP, and a browser you own for scraping, bot-scored targets, network capture and QA traces. Use for any interactive browser task; not for a plain search or an unblocked static fetch.
Browser
One library, two engines. omowright ships inside this skill; choose the engine before you act:
| You need | Engine | Entry point |
|---|---|---|
| A site the user is signed into, their open tabs, a form, a click-through, a screenshot, web QA, an extension popup | attached, the user's own browser through BrowserSkill | connectBrowserSkill() |
| A throwaway profile, bot-scoring evasion, a CAPTCHA, network interception, a QA flight trace, coordinate control, headless runs | owned, a browser your code launches | connectPipe() / connectCloakProfile(), references/owned-engine/README.md |
| A 403/WAF host the attached engine cannot open, a platform with a native reader, an archive snapshot | neither | the ultimate-browsing skill |
Attached is the default, because it is the only engine carrying the user's logins and the only one where a human is a single call away. Never substitute one engine for the other silently: if the attached engine is not set up, run the onboarding script and tell the user its one remaining step.
Step 0, inside OmO Desktop: everything above, plus the app's built-in browser
When OMO_BROWSER_ENGINE is set (the OmO desktop app sets it for every session), everything above works exactly
as in the terminal: connectBrowserSkill() for the user's own browser, connectPipe() / connectCloakProfile() /
connect() for a browser of your own, with the same table to choose between them. The app adds one more option:
| Option | What it is | Use it when |
|---|---|---|
connectBuiltinBrowser() | OmO's built-in browser for this thread: the tab the user sees beside the chat, which they can watch, take over and share | the user should see the page while you work, the task is QA of something in the app, or a sign-in the user should do themselves in a visible tab |


