Skip to content

Development environment

Tool Released requirement or role
macOS 10.15 or later; development and CI are macOS-specific
Rust Package declares minimum 1.77.2, edition 2021
Cargo Builds and tests the Tauri backend
Node.js 24 and npm Install frontend dependencies and run package scripts
Python 3 Runs the bundled kernel server and its pytest suite
Tauri CLI Major version 2

Install the Tauri CLI through Cargo when it is not already available:

Terminal window
cargo install tauri-cli --version "^2"

A macOS native compiler/linker is also required. Install Xcode Command Line Tools if Cargo reports missing build tools:

Terminal window
xcode-select --install
Terminal window
git clone https://github.com/beatrice-b-m/molt.git
cd molt
npm ci

Use npm and the committed package-lock.json; npm ci is the reproducible install.

Terminal window
npm run dev

That script runs:

cargo tauri dev

Tauri starts the Vite frontend and rebuilds Rust as needed. The configured Vite development server uses port 5173 and requires that port to be available.

You can invoke Tauri directly:

Terminal window
cargo tauri dev
Terminal window
npm run dev:fe

This starts Vite without the Rust commands Molt expects. It is useful for isolated styling work only when Tauri APIs are mocked or the affected view does not invoke them.

Terminal window
npm run build

This runs the TypeScript project build and Vite production build. Vite emits both the main and settings HTML entry points and targets Safari 14.

Terminal window
npm run build:app

The script sets CI=true and runs cargo tauri build. The source README notes that this avoids an interactive DMG Finder-layout step that can hang in non-GUI shells such as SSH or tmux.

For a normal release build outside that wrapper:

Terminal window
cargo tauri build

Do not apply the fast CI optimization overrides to artifacts intended for users.

  • Vite forwards variables beginning with VITE_ or TAURI_ to the frontend.
  • Debug frontend builds are unminified and include source maps when TAURI_DEBUG is set.
  • Cargo uses git-fetch-with-cli = true.
  • The custom Cargo ci profile inherits dev, uses no optimization, and raises codegen units for faster checks. The current GitHub CI commands use their default profiles rather than this custom profile.
  1. Confirm the main window appears.
  2. Run 1 + 1 in Tab 1.
  3. Open File → Settings….
  4. Switch to another tab and run an independent variable assignment.
  5. Quit and confirm no Python kernel processes remain.

Use the full matrix in Testing and quality before committing.