Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
drawcall-ai avatar

Vitexec

  • 259 installs
  • 18 repo stars
  • Updated July 29, 2026
  • drawcall-ai/vitexec

Run temporary JavaScript snippets inside a live Vite app's browser page to inspect client state, DOM, WebGL, and read browser logs or captured artifacts.

About

vitexec lets an AI agent execute ad-hoc snippets inside a running Vite app's browser to inspect state, DOM, canvas/WebGL, and capture screenshots or profiles. Developers use it to verify, debug, or profile runtime-only behavior without editing app files.

  • Reads client state, imported modules, and canvas/WebGL/Three.js state at runtime
  • Supports screenshots, recordings, CPU/network/performance traces, and heap snapshots

Vitexec by the numbers

  • 259 all-time installs (skills.sh)
  • Ranked #144 of 596 Debugging skills by installs in the Skillselion catalog
  • Data as of Jul 30, 2026 (Skillselion catalog sync)
npx skills add https://github.com/drawcall-ai/vitexec --skill vitexec

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs259
repo stars18
Last updatedJuly 29, 2026
Repositorydrawcall-ai/vitexec

What it does

Run temporary JavaScript snippets inside a live Vite app's browser page to inspect client state, DOM, WebGL, and read browser logs or captured artifacts.

Files

SKILL.mdMarkdownGitHub ↗

vitexec

Use vitexec when the truth lives in the running browser: client state, imported app modules, DOM, canvas/WebGL, screenshots, recordings, or browser-only errors.

Do not use it for questions static files, unit tests, or TypeScript can answer directly.

References

  • For mouse, keyboard, pointer lock, gamepad, or other input, read references/inputs.md.
  • For CPU, network, performance timeline, or heap analysis, read references/performance.md.
  • For WebXR, read references/webxr.md.

Workflow

1. Identify the page path if it is not /. 2. Write the smallest snippet that performs the user-like action or reads the browser-only state. 3. Run vitexec '<snippet>', adding --path, --gpu, --screenshot, --record, --cpu-profile, --network-trace, --performance-trace, --heap-snapshot, --timeout, or --config only when needed. 4. Treat stdout as browser logs. It starts with logs:.

If vitexec itself is missing, install vitexec with the package manager already used by the project.

vitexec 'console.log("ready")'

For structured state, log JSON:

vitexec --path /cart '
  import { useCartStore } from "/src/store/cart.ts";
  document.querySelector("[data-testid=add-to-cart]")?.click();
  await new Promise((resolve) => requestAnimationFrame(resolve));
  console.log("cart", JSON.stringify(useCartStore.getState()));
'

Guidance

  • Prefer importing exported app state over scraping DOM when state is available.
  • Use direct state reads for observation and assertions, not to bypass user interaction.
  • Use live progress logs and focused assertions to early-exit on failures and see current progress.
  • Keep logs concise; overly verbose logs become unreadable and unnecessarily fill the context.
  • Prefer browser-root imports such as /src/store.ts, not local filesystem paths.
  • Use --gpu for WebGL, canvas, Three.js, and WebXR behavior.
  • If the local machine has no usable GPU, use --gpu --browser-ws-endpoint <ws-url> to connect to a remote Playwright server that was started with the right host-specific GPU settings.
  • If repeated runs need the same endpoint or artifact settings, prefer VITEXEC_* environment variables over repeating long flags.
  • Use screenshots or recordings only when visual evidence matters.
  • Do not leave temporary code in the app when vitexec can inspect it from outside.

Reading a screenshot as proof

A screenshot is only proof if you read it critically — "something rendered" is not "it works and looks right". When the evidence is a screenshot or clip, look at it for tells of unfinished work and treat any you find as a defect to fix, not as proof of done:

  • A character standing in a T-pose (or not animating) — its rig/animation isn't driving the model.
  • Flat solid-color boxes/planes standing in for real objects — placeholder geometry that needs a real asset or material.
  • Untextured surfaces (a flat-color ground, gray "clay") — missing materials.
  • Objects that float with no contact shadow — missing shadows or grounding.
  • A flat, raw render with no finishing pass.

Pair the picture with state assertions: confirm the player-visible outcome from real app state (the count changed, the entity was removed, the animation state advanced), not just that the frame drew.

Related skills

Debuggingtestingfrontend

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.