Run code inside your live app. $app.get(UserService) returns the real instance.
One global install. No config files, no plugins, no framework changes.
Run appwire in your project root. Entry point auto-detected, TypeScript runtime resolved, agent injected.
You're in. Call services, read env vars, query the database. Your app keeps running.
Call services, read env vars, query the database. Your app keeps running.
Call DI-injected services, query the database, and read env vars from one prompt.
console.log output streams inline with your eval results. Logs and return values appear in order, in context.
Full ts-node and tsx support. Import and evaluate TypeScript directly, against your project's types.
$app is wired to your NestJS DI container. Resolve any service, repository, or provider in the live app.
Drop into block mode with .editor for multi-statement evals. Write async functions, loops, or conditional logic inline.
Handles undefined, bigint, circular refs, and Errors with stack trimming. Results display correctly across all types.
Run appwire from your project root. Entry point auto-detected from package.json, TypeScript runtime resolved from devDependencies, agent injected.
Time any expression N times against your real DI and database. Reports avg, min, and max.
.doc shows the class name, every method with its signature, and own properties on any value.
appwire-mcp spawns your app the same way appwire does. No separate process needed. Claude Code, Cursor, Zed, and Cline can call evaluate, list_services, and ping directly inside your running app.
{ "mcpServers": { "appwire": { "command": "appwire-mcp" } } }
Logs show a 500 but the stack is missing context. Call the failing service, inspect its state, and run the query against live data — without restarting.
.services lists every DI provider. .doc shows every method and signature. Call them and see what they return against real data.
Need to backfill a column or test a migration? Use .editor mode for multi-line TypeScript against your real database — no throwaway script files.
No. The bootstrap is injected via --require only when appwire spawns your process. When running normally — in CI, in production, anywhere without appwire — the module is never loaded. Zero overhead.
Yes. APPWIRE=1 gates the IPC channel, not NODE_ENV. appwire sets it when it spawns your process, so it works on any environment. The agent binds to 127.0.0.1 only, never exposed externally.
Node.js 18 and above. Works with ts-node, tsx, and plain JavaScript projects.
NestJS is auto-wired with no configuration. For plain Node, Express, or Fastify, call startAppwireAgent() and pass whatever context keys you want available in the REPL.
A debugger pauses execution. appwire runs code alongside your app — it keeps serving requests while you evaluate in a parallel VM context. No breakpoints, no stepping, no pausing.
appwire-mcp exposes the same capabilities to AI editors — Claude Code, Cursor, Zed, Cline. It spawns your app the same way appwire does and surfaces evaluate, list_services, and ping as MCP tools your AI can call directly.
Still have questions? Ask on GitHub Discussions →
$ npm install -g appwireMIT license · No signup required