Arun Prakash · Reel 2026

· 4 min read · AI Agents · Browser Automation · MCP · Claude Code · Product

Agentic Routines: A Cache for Your Agent’s Browser Work

Coding agents drive a browser one step at a time and pay for the whole run again tomorrow. Agentic Routines records what the agent did, lets it tidy the run into a routine, and replays it as one tool call with no model. Why I built it, how it works, and the numbers from a small benchmark.

Most of my browser chores with a coding agent look the same. I ask Claude Code to draft a release in a store console, or edit a video description, or pull a report out of an admin page. It reads the page, thinks, clicks, reads again, and a few minutes later it is done. The next time I ask, it does all of that from scratch and I pay for it again. Agentic Routines is my attempt to stop paying twice.

What it is

It is a browser extension and a small tool server that sit behind your agent’s browser tools. It works with Claude Code, Codex, GitHub Copilot and OpenCode, in Chrome, Edge and Firefox. It is free and open source. The repository is private for now and will be made public soon. The site is at agenticroutines.arunprakashg.com, and the docs are already up.

Three screens of the side panel. Record: a run by Claude Code waiting to be saved. Refine: the Save screen, with the typed values as parameters and the click-through replaced by one address. Replay: a pause before the step that starts the rollout.
Record, refine, replay. The agent does the first two, so you do not have to.

It does five things.

  • Record. Everything your agent does in the browser is recorded on your computer.
  • Refine. After a task the agent decides whether the run is worth keeping. If it is, the values it typed become parameters and a click-through can become a direct address. It tests the draft before saving.
  • Replay. A saved routine shows up as one tool called rt_<name>. Calling it replays the steps with no model, and what comes back is a few lines of text instead of page snapshots.
  • Check. Before each step the replay compares the page to what was recorded. If a step has changed, it hands the page to the agent once and saves the fix.
  • Pause. A replay stops before a step that publishes, pays or deletes.
rt_acme_release(release_name = "2.15.0 (215)", notes = "Dark mode for the reader.")
-> 6 steps, 0 model calls, 27 s
   paused before step 6: Start rollout to Internal testing

Why a cache

When I looked at where the cost of a browser run goes, it is mostly the model deciding what to do at each step, not the clicks. Caching a single tool call saves very little. Collapsing a whole run into one call saves most of it. That made the shape obvious: let the agent do the task the slow way once, keep what it did, and replay it.

I wasn’t the first to think of this. Browser Use and Stagehand both cache or replay browser actions. When I checked on 5 November, none of the tools I found was a drop-in layer for Claude Code and Codex. What I wanted was something that sits behind the agent I already use, so there is nothing new to learn: the agent looks for a routine before it opens a page by hand, and when it finishes a task it decides on its own whether to keep it. You never record or manage anything.

The numbers

I ran three tasks by hand with Claude Sonnet 5.5, then replayed the saved routine, five runs each. The table is the median. Two of the tasks run on a replica of a store console that I built so the runs are repeatable, and one is a real, signed-in YouTube description edit.

TaskTokensTimeCost
Edit a YouTube description539k → 97k0:56 → 0:19$0.21 → $0.04
Release a build to testers430k → 131k0:46 → 0:15$0.17 → $0.04
Release with every setting910k → 199k1:33 → 0:27$0.32 → $0.06

The best row is 83% cheaper and about 3.5 times faster. I also renamed one button after recording to see what a changed page costs. The long release then took 0:41 instead of 0:27 and cost $0.08, still below doing it by hand ($0.32), because only the changed step needed the model.

Read these as a first look, not a verdict. It is five runs, one model, and three tasks, and a replay still leaves the cost of recording once. A task that runs only once never gets it back.

What it is not

  • It is not a way to avoid being careful. A replay pauses before anything you cannot undo, and it only works on the site it was recorded on. I wrote about how it checks each step in the next post.
  • It is not a reason to trust pages. Everything a site says reaches the agent as data, not instructions. That is the third post, on prompt injection.
  • It is not for one-off lookups. If a task will not come back, the agent does not save it.

Try it

Add the extension for your browser, then run npx agentic-routines setup to connect your agents. Ask the agent to do a browser task as you normally would, and the next time you ask, it should reach for the routine. If it does not, npx agentic-routines doctor shows what is not connected. Start at the site, and I’ll link the repository here once it is public.