I built a web automation CLI to make repeated browser tasks cheaper and more stable
I’ve been building a local-first web automation CLI for AI agents.
The basic idea is simple: if a browser task is already known and repeatable, the agent should not have to inspect the page, reason about every button, and spend tokens on every klick.
For example, instead of asking a model to:
open page -> inspect DOM -> find input -> type query -> search -> wait -> read results
I can wrap that workflow as a command like:
search.hot
get.detail
post.feed
account.health
The agent decides what it wants to do. The CLI executes the actual browser flow locally through a browser/CDP runtime and site-specific plugins.
This makes the most sense for fixed workflows:
- searching a known site
- reading a list
- opening detail pages
- submitting forms
- posting content
- checking account status
- replaying a previous workflow
For those cases, token usage during execution can get close to zero, because the model is no longer involved in every page-level decision. It only calls a semantic command and gets structured results back.
It also makes the workflow more stable. Instead of hiding site knowledge inside prompts, the selectors, fallbacks, login checks, pop-up handling, and output schema live in versioned plugins that can be tested and reused.
I don’t think this replaces general browser agents. If the site is unknown or the task is exploratory, a normal browser agent is still more flexible.
But once a workflow is known, I think it should become something closer to an API call.
Would this be useful to anyone here? Curious if other people are running into the same problem with browser agents and repeated web tasks.