MARLIN Controller Extension
VS Code extension for running MARLIN student scripts and bridging them to the
Controller over USB serial.
Student-facing setup and usage guides belong in
MARLIN-docs. This README is
for extension development and release packaging.
Runtime expectation
The extension launches a student Python script. That Python environment must
already be able to import the separate marlin package:
python -c "import marlin"
The extension sets MARLIN_LINK_ENDPOINT when it launches the script. Student
code connects back to the extension through that local IPC endpoint.
For local development only, set marlin-controller.apiPath to the monorepo's
lib/src directory instead of installing the wheel.
Development
npm install
npm run compile
Fast loop:
npm run watch
Then launch Run MARLIN Extension (fast, no build) from VS Code.
Checks
npm run check-types
npm run lint
npm run test:unit
npm run package
Package / publish
Before publishing, set real Marketplace metadata in package.json, including
publisher, repository, and license.
Create a local .vsix:
npm run package
npx @vscode/vsce package
Publish:
npx @vscode/vsce login YOUR_PUBLISHER_ID
npx @vscode/vsce publish
The generated .vsix should include runtime dependencies such as serialport;
do not commit node_modules to git.