Monorepo for Consoleri — a desktop host console manager (SSH, shells, RDP, VNC).
apps/desktop— Electron application (@consoleri/desktop)packages/core— shared pure functions (@consoleri/core)scripts/— root tooling (dev launcher, native rebuild, etc.)
- Node.js 20+
pnpm is bundled in the repo (devDependencies). You do not need a global pnpm install.
# First time (fresh clone) — bootstrap with npx if pnpm is not on PATH:
npx pnpm install
# Afterwards, or if node_modules already exists:
npm run install:deps
# postinstall downloads Electron (if needed) and rebuilds node-pty for Electron
npm run rebuild-native # optional re-run if local terminals break after Electron upgradesIf install scripts were skipped, run
npm run install:electronthennpm run rebuild-native.
npm run devnpm run dev runs a full electron-vite build first, then starts the dev server — so the app always launches with the latest compiled main/preload/renderer bundles.
For hot-reload only (skip pre-build):
node scripts/pnpm.mjs --filter @consoleri/desktop dev:watchIf you have pnpm on PATH, pnpm dev works the same way.
npm run build
npm run packagenpm run testPrerequisites:
- git-cliff in
PATH(scoop install git-cliffon Windows) - Git Bash or another
bashshell (bashships with Git for Windows) - Clean working tree on
mainormaster
# Preview the next version and changelog
npm run release -- --dry-run patch
# Bump version, update CHANGELOG.md, commit, tag, and push to origin
# (pushing the tag starts the GitHub Actions Release workflow)
npm run release -- patch # or minor | majorIf you only push a version bump to main without a tag, the Tag version workflow creates vX.Y.Z automatically when that tag is missing.
Release commits use the message chore(release): vX.Y.Z and are excluded from future changelogs.
Pass --no-test to skip the pre-release test run, --no-push to create commit+tag locally only.