rote

overview

What Rote is

Rote is the memory manager for browser agents. Agent harnesses all have memory — history arrays, screenshot piles, selector caches. What none of them has is a manager: something that decides what stays in the context window, what leaves, what comes back, and what has to be proven before it's trusted. The window is treated as a garbage dump — append, and hope. Rote treats it as a managed resource: a budget, an eviction policy, a layout contract, and a trust gate on the way back in.

The name is the thesis. Rote: doing something from memory, by repetition, without re-deriving it. Technically, it is memoization applied to agent trajectories — cache the result of expensive exploration, keyed by task class and environment fingerprint, invalidated by assertion rather than TTL.

The three amnesias

  • 0 · Working
    Scope
    within one run
    The bill
    cost is O(n²) in task length
    Status
    built · measured (G1 pass)
  • 1 · Episodic
    Scope
    across runs of a task
    The bill
    run #50 costs what run #1 cost
    Status
    replay built · distiller unbuilt (P2)
  • 2 · Semantic
    Scope
    across tasks on a site
    The bill
    every task re-learns the portal
    Status
    designed (P2)

The trust gate is not a fourth tier — it is the precondition for all three. Memory that might be wrong is worse than no memory: every tier is assertion-gated on the way back in, and success is decided by page state, never by the absence of an exception.

Try it

The rote CLI launches verified cold browser tasks and prefers exact-fingerprint, zero-LLM replay when a recorded candidate matches. (Pre-release: the packages are unpublished at 0.0.0 — build from source.)

# run a task cold, with a verify gate — success is page state, not vibes
rote run "create a tag named release-notes" \
  --url http://localhost:8080/wp-admin \
  --verify-text "release-notes"

# inspect what was recorded
rote runs ls
rote runs show <run_id>

# promote a verified run into a replay candidate
rote candidate create

Where to go next