eguidev
AI-assisted development tooling for egui.
Coding agents drive your app through Luau scripts while edev manages
lifecycle and hosts the MCP tool surface.
Join the Discord server for discussion and release updates.
How It Works
eguidev instruments your app from inside the process. It captures widget state
at frame boundaries and injects input through egui's raw_input_hook before
events are consumed. Automation stays aligned with the real event loop -- no
pixel guessing, no sleeps.
The agent-facing surface is Luau, not fine-grained RPC. script_eval runs
inside the app process against the latest captured frame, so one script can
inspect widgets, queue input, wait for state changes, and return structured
results in a single round trip.
Structure
eguidevcrate -- instrument your egui app. Tag widgets withdev_*helpers, wrap frames withFrameGuard, forward raw input. In default builds the instrumentation compiles but stays inert.edevbinary -- the MCP launcher. Starts and stops the app, proxiesscript_eval, serves the Luau API definition. Run it withedev mcp -- <cargo args>.devtoolsfeature -- gates the embedded runtime (tokio, MCP server, Luau VM). Enable it in one app-local feature; keep widget code unconditional.
Configuration
edev reads .edev.toml from the current directory upward, stopping at the
nearest git root. All subcommands share this config; CLI flags override file
values. See examples/edev.toml for a commented
reference with all options.
The only required field is app.command -- the full argv to launch the app
with DevMCP enabled. edev does not synthesize cargo flags. The command can
also be passed after -- on any subcommand.
Fixtures
List registered fixtures or launch the app from a known baseline for manual testing:
edev fixture applies the named fixture and blocks until ctrl-c. Use it to
get the app into a repeatable state for interactive work.
Smoketests
eguidev includes a built-in smoketest runner. A smoketest suite is a directory
of self-contained .luau scripts. The configured suite is discovered
recursively and executed in lexicographic order by relative path. Explicit
script arguments to edev smoke run in the order provided. Every script
establishes its own state via fixture(), exercises the UI, and asserts
outcomes.
Smoketests run against the live app through the same script_eval path agents
use. They double as regression tests and as executable documentation for your
scripting surface.
API Reference
The canonical scripting reference is
eguidev.d.luau -- a strict Luau type
definition covering viewports, widgets, actions, waits, fixtures, and
assertions. Fetch it at any time with script_api or edev --script-docs.
For the Rust API, run ruskel eguidev or see the crate-level doc comments.
The repo also ships a ready-to-use agent skill at
skills/SKILL.md. For Codex-style setups, install it by
copying or symlinking it into your local skills directory as
~/.codex/skills/eguidev/SKILL.md, then invoke the eguidev skill in your
agent workflow.
License
MIT