Getting Started¶
This page walks you through understanding the project structure and launching PlainScript for the first time. For platform-specific install prerequisites see Installation.
Prerequisites¶
| Requirement | Minimum version | Notes |
|---|---|---|
| Node.js | 20.0 | LTS recommended |
| npm | 10.0 | Bundled with Node 20 |
| Git | any | For cloning |
| Python | 3.8 | Required by native module builds |
| C/C++ compiler | — | gcc/g++ on Linux, Xcode CLT on macOS, MSVC on Windows |
Clone and Install¶
npm install will:
- Install root devDependencies (TypeScript, ESLint, Prettier, Husky, Turbo).
- Run
scripts/postinstall.js, which performs a non-fatal Theia version compatibility check. - Install dependencies in each workspace (
custom-ui,browser-app,electron-app).
Plugins are not downloaded automatically — run this explicitly afterwards:
This fetches the VS Code–compatible extensions listed in root package.json's theiaPlugins field
into plugins/.
Build¶
Turbo orchestrates the build across all three workspaces in dependency order:
Run¶
The browser app defaults to http://localhost:3000.
Code Quality¶
Pre-commit hooks (Husky + lint-staged) run ESLint and Prettier automatically on staged files. Commit messages are validated against the Conventional Commits format.
npm run lint # ESLint check
npm run lint:fix # ESLint auto-fix
npm run format # Prettier write
npm run format:check # Prettier check (used in CI)
Release Tagging¶
This calls release-tag.sh, validates the date, and pushes an annotated tag to origin. GitHub
Actions then builds distributable artifacts automatically.