simframe
Always-warm iOS Simulator and Android emulator frames: agents read the screen in ~20ms
Connector by lvlrSajjad · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/lvlrsajjad-simframe
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 8 read · 4 write · 0 delete · 11 not yet classified
- Secrets
- None asked for
- Install scripts
- Not scanned yet
- Runs as
- Node.js package
Tools by what they do 23
Read from the source code; the running server may list different tools.
Read 8 · Look things up without changing anything.
sim_assertsim_capturesim_devicessim_findsim_looksim_recallsim_stripsim_ui
Write 4 · Create, change, send or run things.
sim_flow_runsim_scroll_tosim_tapsim_type_into
Not yet classified 11 · We could not tell from the name and description.
sim_dosim_goalsim_gotosim_launchsim_mapsim_open_urlsim_permissionsim_statesim_storagesim_waitsim_wait_for
Tools (23)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
sim_assertCheck one thing about the screen and fail loudly if it is not so. Cheaper inside a sim_do flow, where a failed assert stops the remaining steps.
sim_captureInspect or control the background capture loops: action "status" (what is running and how fresh), "start", "stop". Capture starts automatically on first use, so you rarely need this.
sim_devicesList the devices simframe can drive — iOS simulators and Android emulators. Booted ones by default; pass all to see every device on the host and its state. Also reports which simframe build is answering.
sim_doTHE MAIN TOOL, and the cheapest path. Plan the WHOLE flow and run it in one call — tap, type, scroll, wait, assert — asserting after each step that matters. Every step settles and is checked against what that action did here before, so a wrong turn halts the flow instead of tapping on. Single-action tools are for recovery.
sim_findResolve one intent to one control: "tap Save", "the Assets tab", "back". Understands verbs, typos, and where on screen you meant. When two things answer equally well it says so and lists them rather than guessing. Use it when you doubt a selector will resolve; otherwise just tap. Prefer a label or a #ref over coordinates.
sim_flow_runReplay a saved flow by name, verifying each step. Omit `name` to list the saved flows. Save one with sim_do's `saveAs`.
sim_goalHand simframe a goal in words and let it drive there locally, returning only at a milestone: done (with evidence), blocked by the verify barrier, ambiguous, not found, or out of budget. Use it instead of a sequence of single taps when you know where you want to be: "open Time Sheets", "find Larger Text", "Settings > Accessibility > Display & Text Size". It walks remembered routes first, taps what the goal names, and explores at most six steps for anything it has not seen. It never taps destructive controls (Delete, Send, Pay, Sign out…) even when named — it stops and says so. Text only, no ima…
sim_gotoWalk to a screen simframe already knows, over edges it has already verified, with no model call per step. Names come from sim_recall or a previous map. Refuses rather than guesses when the route is unknown or the name is ambiguous — a refusal is cheap and a wrong walk is not.
sim_launchLaunch or relaunch an app, optionally with launch arguments and environment variables — the way to put an app into a test mode without touching its UI.
sim_lookA screenshot: ~1600 tokens, the most expensive call here. Only for what text cannot answer — layout, colour, spacing, a control the map omits. NOT for what a field contains, whether a button is enabled, or whether an action worked: sim_ui reports the first two and the flow's own verdict already answered the third.
sim_mapCrawl an app unattended and record every screen and transition into the graph, so later goals and sim_goto are served from memory with no model calls. Opt-in and slow on purpose: minutes, not seconds. Read-only by default — it opens doors and never types, toggles, or opens a write flow; the verify barrier (Delete, Pay, Send, Sign out, Submit, Save…) and leaving the app are never crossed. Resumes a saved crawl. Returns a text coverage report: screens, transitions, unopened frontier, what the barrier refused and why, suspected merges and splits.
sim_open_urlOpen a URL or deep link on the device — the fastest way to reach a screen when the app has a link for it.
sim_permissionDescription is built at runtime.
sim_recallWhat happened recently, as text: the screens visited, the actions taken, and what each one did. Use it to re-orient after a failure instead of taking a screenshot, and to learn the screen names sim_goto accepts.
sim_scroll_toScroll until something is in view. A control that scrolled off the bottom of a list is not missing, and this is the difference.
Show 8 more tools
sim_stateCheapest possible check: a stable screen hash, whether anything changed SINCE YOUR LAST LOOK in this session, how long the screen has been still, and an ASCII map of which regions moved. A fraction of the cost of even the text screen map. Use it to poll ("has it finished loading?"). To find out WHAT is on screen, use sim_ui.
sim_storageWhat the app saved, as text: its UserDefaults and (for React Native) its AsyncStorage, read straight out of the data container. sim_ui says what is drawn; sim_storage says what the app believes — use it when the screen and the behaviour disagree, or to check a value without driving the UI to it. Works on a device that is NOT running, so it can answer before anything is booted — pass device when nothing is booted and the host has more than one simulator with data. Call with no bundleId to list the apps that have a container (match filters that list).
sim_stripReturn the last few buffered frames tiled into ONE image, oldest first — an image, so not cheap. Lets you understand a transition, animation or flicker in a single call instead of a burst of screenshots. Looks backwards in time; it does not wait.
sim_tapTap one thing. For more than one step, use sim_do — it batches the verification and costs one round trip. Returns the screen map afterwards.
sim_type_intoFocus a field and type into it. Prefer a sim_do step when this is part of a sequence.
sim_uiREAD THE SCREEN as text: every element numbered, with region, type, label, state, contents and tap point, plus which screen this is and what simframe knows about it. A tenth the cost of a screenshot and more useful, because it says what is tappable and where. Act on what it shows by NAME — whatever it calls "General", you can tap as "General"; the #3 numbers are exact but only until the screen moves. Start here, never with sim_look.
sim_waitWait for the screen to change, settle, or both. sim_do already settles after every step, so you rarely need this inside a flow — reach for it when something moves without you acting, like a push or a background load. Pass `since` from a hash captured before the thing you are waiting on.
sim_wait_forBlock until something appears on screen, then return the screen map. Use this instead of pausing and re-reading.
Signals
- Stars
- 0
- Forks
- 1
- Open issues
- 0
- Last commit
- Oct 5, 2026 (24 days ago)
- Last release
- Oct 5, 2026 (25 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.lvlrSajjad/simframe- Version
- 0.23.1
- Auth
- No auth
- Packages
- npm simframe
- License
- MIT
- Repository
- github.com/lvlrSajjad/simframe
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from lvlrSajjad
Cite this page
simframe MCP server. Agent Mart. https://agentmart.dev/connectors/lvlrsajjad-simframe (last updated 2026-10-24)