Skip to content

Commands

All commands are run from the monorepo root.

CommandDescription
npm run dev:coreStart Core daemon with hot-reload (port 9100)
npm run dev:maestroStart Maestro service with hot-reload (port 9200)
npm run dev:webStart Web Client dev server (port 5173)
npm run dev:cliStart CLI client in development mode
CommandDescription
npm run buildBuild all packages (respects dependency graph)
npx nx run @condrix/core:buildBuild a specific package
npx nx run-many -t buildBuild all packages (explicit NX form)
npx nx affected -t buildBuild only packages affected by recent changes
CommandDescription
npm testRun all tests with Vitest
npm run lintLint all packages with ESLint
npm run typecheckType-check all packages with tsc --noEmit
npx nx affected -t testTest only affected packages
npx nx affected -t lintLint only affected packages
CommandDescription
npm installInstall all dependencies (npm workspaces)
npx nx graphOpen interactive dependency graph in browser
npx nx resetClear NX cache

Condrix uses NX for build orchestration. NX automatically:

  • Respects dependency order@condrix/protocol builds before packages that depend on it
  • Caches results — Unchanged packages skip rebuilding
  • Parallelizes — Independent packages build concurrently
Terminal window
# Build just the protocol library
npx nx run @condrix/protocol:build
# Test just the core
npx nx run @condrix/core:test
# Lint the web client
npx nx run @condrix/client-web:lint

After making changes, run tasks only on packages that could be affected:

Terminal window
# Test affected packages since last commit
npx nx affected -t test
# Build affected packages against main branch
npx nx affected -t build --base=main

The Core daemon accepts command-line options that override environment variables:

Terminal window
# Specify port
npm run dev:core -- --port 9101
# Specify bind address
npm run dev:core -- --host 0.0.0.0
# Set log level
npm run dev:core -- --log-level debug
# Specify data directory
npm run dev:core -- --data-dir /path/to/data
# Combine options
npm run dev:core -- --port 9101 --host 0.0.0.0 --log-level debug
OptionShortDefaultDescription
--port-p9100WebSocket listen port
--host-h127.0.0.1Bind address
--log-level-linfoLog verbosity
--data-dir-d~/.condrixData directory
--maestro-url-mMaestro WebSocket URL
Terminal window
# Specify port
npm run dev:maestro -- --port 9201
# Set log level
npm run dev:maestro -- --log-level debug

A typical development session:

Terminal window
# 1. Install dependencies (first time or after pulling)
npm install
# 2. Start Core in one terminal
npm run dev:core
# 3. Start Web Client in another terminal
npm run dev:web
# 4. Open http://localhost:5173 in your browser
# 5. Make changes — hot-reload handles the rest
# 6. Run tests before committing
npm test
# 7. Type-check before pushing
npm run typecheck