Skip to main content

Documentation Index

Fetch the complete documentation index at: https://momentic.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

Most interactive steps (Click, Type, etc.) cache the resolved element after a successful run. On the next run, Momentic replays from cache and only falls back to AI when the cache misses (see auto-heal). Module and auth-state caching are covered in Modules.

How the cache works

A cached step stores more than one way to find its target: where the element sits on screen, what it looks like, what text it contains, and the accessibility and structural attributes around it. Which of those signals matters for a given step is inferred from the step’s natural-language description. “The red Cancel button below the Order Summary header” leans on visual and positional signals; “the Sign in button” leans on accessibility and text. On replay, the runner matches the stored signals against the live page or screen and runs the action without invoking the LLM when there’s a match. When the signals no longer match, auto-heal re-resolves the description against the current UI and updates the entry in place.

Cache saving eligibility

A run only saves cache when it passes and the run is eligible.
  • CI runs (CI=true) are always eligible.
  • Local runs are eligible when the current branch is not the main branch or a protected branch.
  • Pass --save-cache to force eligibility.

Never cached

  • AI-evaluated steps like AI check and AI extract
  • Steps whose variables change every run (e.g. {{ Date.now() }})
  • Steps with caching explicitly disabled

Disabling cache

Globally:
npx momentic run --disable-cache
Per step: toggle Disable cache in step options. Useful for inherently dynamic targets like last item in list.

Cache invalidation

Cache entries are scoped per step. Changing a step’s natural-language description or the variable values it depends on (e.g. a different {{ env.USERNAME }}) re-keys the entry. Re-rendering siblings, mutating unrelated attributes, or animating background content does not.

Storage

  • Stored per organization; only accessible to authenticated runs
  • Expires after 90 days of inactivity

Git-based isolation

Caches are scoped per branch so concurrent work doesn’t collide:
  • main keeps per-commit caches; new branches seed from the cache at their merge base.
  • Non-main branches store only the latest cache.
  • On merge, the merged branch’s cache is combined with main’s previous commit so subsequent runs on main stay green.