Building from Source
Development
# Clone the repositorygit clone https://github.com/Flexmark-Intl/aiterm.gitcd aiterm
# Install dependenciesnpm install
# Full app dev (frontend + Rust backend + MCP bridge)npm run tauri:dev
# Frontend only (no Tauri)npm run dev
# Type checkingnpm run check
# Rust compilation check (run from src-tauri/)cd src-tauri && cargo checknpm run tauri:dev enables the MCP bridge feature and applies dev-specific configuration automatically.
Production Build
npm run tauri:buildBuild Output
| Platform | Format | Output Path |
|---|---|---|
| macOS | DMG | src-tauri/target/release/bundle/dmg/ |
| Windows | NSIS installer | src-tauri/target/release/bundle/nsis/ |
| Linux | .deb | src-tauri/target/release/bundle/deb/ |
macOS Post-Build
After building on macOS, set the DMG volume icon:
./scripts/set-dmg-icon.shTech Stack
| Layer | Technology |
|---|---|
| Frontend | Svelte 5 (runes), SvelteKit, TypeScript |
| Backend | Rust, Tauri 2 |
| Terminal | xterm.js (FitAddon, SerializeAddon, WebLinksAddon) |
| Editor | CodeMirror 6 (+ MergeView for diffs) |
| PTY | portable-pty |
| State | parking_lot RwLock |
Dev/Production Isolation
Dev and production builds use separate data directories so they can run simultaneously:
- Dev:
~/Library/Application Support/com.aiterm.dev/ - Production:
~/Library/Application Support/com.aiterm.app/
The window title shows “aiTerm (Dev)” in debug builds, and the sidebar displays a DEV badge.