Execlens is an IDE function execution simulator. The goal is to let a developer place the cursor on a function, inspect generated inputs, run the function in a controlled runtime, and read the result directly from the editor.
The project is designed to grow through adapters: new languages, IDEs, runtimes, and UI surfaces should plug into stable contracts instead of changing the core.
This repository is still early. The current implementation focuses on:
- VS Code as the first IDE adapter
- TypeScript/JavaScript as the first language adapter
- Node.js as the first runtime adapter
- a webview-based simulator UI
packages/
protocol/ shared contracts and ports
core/ stack-independent use cases
adapters/
ide/vscode/ VS Code composition root
language/tsjs/ TypeScript/JavaScript analysis
runtime/node/ Node.js execution
ui/ simulator webview renderingExeclens follows a hexagonal architecture.
protocoldefines shared contracts.coreorchestrates use cases and depends only onprotocol.- language adapters analyze code.
- runtime adapters execute code.
- IDE adapters wire concrete adapters together.
- UI renders simulator input/output.
Read:
pnpm install
pnpm buildRun the VS Code extension in development mode:
pnpm dev:vscodeThen start the Run Execlens Extension debug configuration from VS Code.
In the Extension Development Host:
- Open
playground/languages/tsjs. - Open a file under
src. - Place the cursor inside a supported function.
- Run
Execlens: Open Simulatorfrom the editor context menu.
pnpm testRuns the full Vitest suite.
pnpm test:unit
pnpm test:playground
pnpm test:uiRun focused subsets.
pnpm test:coverage
pnpm qualityRun coverage and full quality checks.
Electron-based VS Code end-to-end tests are intentionally not enabled yet. The
VS Code adapter is currently covered with mocked vscode APIs, and the shared
TS/JS behavior is covered through playground analysis/runtime tests.
Shared language playgrounds live under:
playground/languages/<language-id>The current TS/JS playground is:
playground/languages/tsjsThese scenarios are IDE-neutral. Future IDE adapters should reuse the same language playgrounds instead of duplicating code scenarios per IDE.
Before opening a pull request:
pnpm qualityIf you change behavior or tests:
pnpm test:coverageSee CONTRIBUTING.md for adapter boundaries, test layout, and pull request guidance.
Execlens executes code from the workspace you open it in. Only run it on code you trust. See SECURITY.md for the trust model and how to report a vulnerability.
MIT © decazed and Execlens contributors.