mobius-perf-stakeout

mobius-perf-stakeout is a skill for Claude Code from Topman-14/mobius-mcp. It costs 73 tokens per session (1,429 once invoked), scanned A, original, MIT.

A workflow for finding the cause of a slow or jerky web-app interaction. It checks whether the delay comes from network requests, JavaScript work, memory growth, or repeated rendering.

In plain words
What is it for?
Use it to investigate slow clicks, janky screens, apps that worsen during use, and possible memory leaks in a running browser app.
Why use it?
A vague report that an app feels slow does not show which part is responsible. This helps identify the source before choosing a fix.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the mobius-mcp plugin — 5 skills shipped together

Good fit Use it to investigate slow clicks, janky screens, apps that worsen during use, and possible memory leaks in a running browser app.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/topman-14/mobius-mcp/mobius-perf-stakeout
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add Topman-14/mobius-mcp --skill mobius-perf-stakeout
Clone the repo
git clone --depth 1 https://github.com/Topman-14/mobius-mcp

Made for: Claude Code.

Or install mobius-mcp, the plugin that ships this one along with the rest of its 5 skills.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for mobius-perf-stakeout

README.md
[![agentmods](https://agentmods.dev/badge/skills/topman-14/mobius-mcp/mobius-perf-stakeout/github.svg)](https://agentmods.dev/skills/topman-14/mobius-mcp/mobius-perf-stakeout)
Your own site
<a href="https://agentmods.dev/skills/topman-14/mobius-mcp/mobius-perf-stakeout"><img src="https://agentmods.dev/badge/skills/topman-14/mobius-mcp/mobius-perf-stakeout/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for mobius-perf-stakeout

Your own site · 80×15
<a href="https://agentmods.dev/skills/topman-14/mobius-mcp/mobius-perf-stakeout"><img src="https://agentmods.dev/badge/skills/topman-14/mobius-mcp/mobius-perf-stakeout.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 73 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,429 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00073 $0.01429
Opus 5 $0.00036 $0.00714
Sonnet 5 $0.00015 $0.00286
Haiku 4.5 $0.00007 $0.00143

Measured 12d ago against content hash 08c9be248ce2, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

mobius-perf-stakeout scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/mobius-perf-stakeout/SKILL.md · 38 lines

How it starts

The opening of the file, as written. The whole thing — 38 lines — stays where its author put it; the contents beside it link to each section on GitHub.

mobius-perf-stakeout

"It feels slow" is vague on purpose — the user isn't wrong, but they can't tell you why, and network delay, JS-bound rendering, and a slowly growing memory leak all look identical from the outside while needing completely different fixes. Guessing which one it is wastes a round-trip; measuring takes one pass.

When to use this

  • A vague sluggishness/jank report with no error attached.
  • "It gets slower the longer I use it" — a leak suspicion.
  • Before proposing a performance fix, to confirm which layer actually owns the delay.

Workflow

  1. mobius_diagnose — CPU/memory profiling and this skill's later steps require the browser extension (CDP); confirm the tab is ready and has that capability first.
  2. Baseline (network): clear_logs, then drive the interaction once yourself — find the control and click(ref, { observe: { windowMs: 5000 } }), which returns the requests it fired without a second call. Check durationMs on anything involved. Two distinct signals live here, don't stop at just the slowest one:
    • One request dominates the delay — network-bound. Look at whether it's a genuinely slow backend, an oversized responseBody, or something that should've been cached/debounced/batched instead of re-fetched. Stop here.
    • The same method+URL appears more than once, clustered within milliseconds of each other — this is the network-visible fingerprint of a render loop, not organic traffic. Skip straight to step 4 instead of profiling first; a burst of identical requests is a much cheaper signal to spot than a CPU profile and points directly at the cause.
  3. If network is fine (one clean call, or none) but the UI still lags: start_cpu_profile(tabId, durationMs) bracketing the interaction, poll get_job_status until done, then get_job_result. Look for the heaviest self-time frames — long tasks, expensive re-renders, layout thrashing. A single hot frame that's the same function called once is "this component is just expensive"; the same frame appearing many times in one short profile is actually a render loop too (see step 4) — profile output can surface the same bug the network burst check does, from the other side.
  4. Render loop or race condition (React useEffect and equivalent reactivity in other frameworks): this is the same underlying bug family regardless of framework — something re-triggers work every render/update instead of once — so trace it the same way everywhere:
    • Confirm the pattern: repeated identical requests in step 2, or a CPU profile (step 3) dominated by the same function called repeatedly rather than one expensive call.
    • Grep the component/module for the reactive trigger: a useEffect/useMemo/useCallback whose dependency array is missing an entry (fires once then never stops re-syncing) or includes a new reference every render — an inline object/array/function literal, or a value derived without memoization — which re-fires on every render since referential equality never holds. Same idea in other frameworks: a Vue watch/computed with an over-broad source, a Svelte reactive statement ($:) depending on something that changes every tick, Angular change detection re-running a getter that allocates a new object each call.
    • Missing cleanup is a common companion bug, not just a symptom: an effect that starts a subscription/interval/listener without a cleanup function compounds across every re-run, which is often why the loop gets worse over time rather than settling.
  5. Race condition (stale response wins): compare when each request was sent against when its response was applied — with get_logs_since or the debug-session timeline, if a request fired first but its response-bearing event lands after a later request's, and the UI reflects the earlier (slower) one's data, that's a classic unaborted-fetch race (rapid search-as-you-type, tab-switching, or any handler re-firing before the previous call resolved). Grep for the call site: no AbortController, no "is this still the latest request" guard, or a useEffect that doesn't cancel/ignore its previous in-flight call before firing a new one.
  6. If it gets worse the longer the session runs and steps 4–5 don't explain it: start_memory_profile, then repeat the interaction N times with a single run_sequence of real clicks, then profile again and compare heap growth via get_job_result. Use real actions rather than an evaluate_js loop — a synthetic element.click() can skip the very listeners and handlers that leak. A heap growing roughly linearly with identical repeated actions (rather than plateauing) points to a leak — unreleased event listeners, detached DOM nodes still referenced, or a cache that only ever grows.
  7. Report which bucket it falls into with the specific evidence (the dominant request + its duration; the burst pattern + the offending effect/watcher; the heaviest frame; the heap delta per iteration) — not a raw profile dump.

Read the full file on GitHub · 38 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago First seen · 38 lines · 73 tokens per session scan A 08c9be248ce2

Subscribe to this mod's changes

mobius-perf-stakeout is a skill published in the GitHub repository Topman-14/mobius-mcp (18 stars, last pushed 23d ago), licensed MIT. It adds 73 tokens to every session and 1,429 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

debug-optimize-lcp

Guides debugging and optimizing Largest Contentful Paint (LCP) using Chrome DevTools MCP tools. Use this skill whenever the user asks about LCP performance, slow page loads, Core Web Vitals optimization, or wants to understand why their page's main content takes too long to appear. Also use when the user mentions…

ChromeDevTools/chrome-devtools-mcp · 99 tokens

systematic-debugging

Use when debugging a failing test, build error, or runtime issue that isn't immediately obvious. Guides a 4-phase root cause analysis instead of random fix attempts.

open-metadata/OpenMetadata · 37 tokens

diagnose

Trace from a reproduced symptom to the source code that causes it. Pin the specific file and approximate line, rate confidence in the cause and clarity of the fix independently, and always propose a concrete fix.

emdash-cms/emdash · 43 tokens

repro-admin

Reproduce an EmDash admin UI bug. Attach a container, start the demo dev server, drive the admin with agent-browser using the dev-bypass session, and capture the reproduction as screenshots plus a replayable transcript.

emdash-cms/emdash · 48 tokens

log-error-digest

Analyze log files to troubleshoot errors, identify peak error periods, and produce error clustering, frequency statistics, and time distribution reports. Supports JSON, syslog, and Nginx formats with automatic detection. Use when a user uploads a .log file and asks to analyze errors, find patterns, debug issues, or…

zebbern/claude-code-guide · 71 tokens

byted-util-volcengine-detect-retry

An orchestration workflow for Volcengine Cloud Detect, a service that checks websites or network endpoints from test locations.

bytedance/agentkit-samples · 101 tokens