We have drafted a new specification for JavaScript and TypeScript extensions in Command Palette.
The goal is to expand CmdPal extension authoring beyond in-process WinRT/COM by enabling isolated Node.js-based extensions communicating with the host over JSON-RPC 2.0 via stdio.
This issue is intended to collect high-level feedback on the proposal and track follow-up work items.
Spec document:
CmdPal JSON-RPC Spec Overview (jsonrpc-spec branch)
What this proposal covers (high level)
- Per-extension process isolation (one Node.js process per extension)
- JSON-RPC 2.0 transport over stdio with LSP-style framing
- Type-safe TypeScript SDK surface aligned with CmdPal concepts
- Lifecycle model (discover, initialize, query, dispose, restart)
- Developer ergonomics such as hot-reload and debugger attach
- Support for core command/page/content scenarios expected from CmdPal extensions
Why this direction
- Improves accessibility for web developers (TypeScript, npm, Node.js ecosystem)
- Increases resilience through process isolation and crash containment
- Keeps host/extension boundaries explicit and protocol-driven
- Provides a scalable foundation for future extension capabilities
Out of scope for this initial spec
- WebView/browser-rendered extension UI
- Marketplace and auto-update infrastructure
- Full permission sandboxing model
- Non-JS language runtimes (for now)
Feedback requested
We would especially appreciate input on:
- API shape and ergonomics for extension developers
- JSON-RPC method boundaries and protocol design
- Extension lifecycle and failure handling behavior
- Manifest/schema expectations for packaging/discovery
- Security boundaries and permission model priorities
- Performance considerations for one-process-per-extension
Tracking and follow-ups
Please keep this thread focused on high-level spec feedback.
For implementation details, bugs, or discrete feature work, please open separate atomic issues and link them here so we can track progress cleanly.
We have drafted a new specification for JavaScript and TypeScript extensions in Command Palette.
The goal is to expand CmdPal extension authoring beyond in-process WinRT/COM by enabling isolated Node.js-based extensions communicating with the host over JSON-RPC 2.0 via stdio.
This issue is intended to collect high-level feedback on the proposal and track follow-up work items.
Spec document:
CmdPal JSON-RPC Spec Overview (jsonrpc-spec branch)
What this proposal covers (high level)
Why this direction
Out of scope for this initial spec
Feedback requested
We would especially appreciate input on:
Tracking and follow-ups
Please keep this thread focused on high-level spec feedback.
For implementation details, bugs, or discrete feature work, please open separate atomic issues and link them here so we can track progress cleanly.