ExisJS

CLI Command Reference

exisjs dev

Starts the development server with live reload and automatic port collision avoidance.

$ npx exisjs dev [options]

Options

OptionDescription
-p, --port <port>Port to listen on (overrides .env and exis.config.ts).
-H, --host <host>Host to bind to (e.g. 0.0.0.0 or localhost).
-e, --entry <file>Custom entry file path (default: src/http/server.ts).
  • Automatic Port Collision Detection: If the designated port is occupied, the CLI detects the conflict and increments to the next available port automatically.
  • PID Lockfile: Manages a .exis/dev.pid lockfile to prevent accidentally spawning duplicate dev servers in the same directory.

exisjs build

Compiles TypeScript to production JavaScript and produces route manifests.

$ npx exisjs build [options]

Options

OptionDescription
-o, --out-dir <dir>Output directory (default: .exis/server or dist).
--no-cleanSkip cleaning the output directory before compilation.
  • Type-Check: Runs the TypeScript compiler in check-only mode (noEmit) to verify strict typing before compiling.
  • Fast Bundling: Emits JavaScript via esbuild.
  • Route Manifest: Generates .exis/routes-manifest.js to enable O(1) route discovery at runtime without filesystem directory walks.

exisjs start

Starts the compiled production server.

$ npx exisjs start [options]

Options

OptionDescription
-p, --port <port>Port to listen on.
-H, --host <host>Host to bind to.
-e, --entry <file>Custom compiled entry file path.

exisjs generate

Scaffolds framework components and files according to ExisJS core conventions.

$ npx exisjs generate <type> <name> [options]$ npx exisjs g <type> <name> [options]

Arguments

ArgumentDescription
<type>The schematic type to generate.
<name>The name of the feature / folder.

Options

OptionDescription
--oopGenerates using Class-Based (OOP) decorators instead of Functional syntax.

Supported Schematics

SchematicAliasDescriptionOutput Path
resourceComplete domain slice (schema.ts, service.ts, boundary.ts, route.ts)src/http/<name>/
router, c, controllerHTTP route filesrc/http/<name>/route.ts
servicesInjectable service / business logicsrc/http/<name>/service.ts
schemascValidation schemas powered by texsrc/http/<name>/schema.ts
boundarybFolder-scoped configuration and request pipelinesrc/http/<name>/boundary.ts
pluginpDistributable plugin modulesrc/plugins/<name>.ts
middlewaremStandalone middleware handlersrc/middleware/<name>.ts
testtNative test suitetests/<name>.test.ts

exisjs routes

Analyzes and prints the application routing table to the terminal.

$ npx exisjs routes [options]

Options

OptionDescription
-e, --entry <file>Custom entry file path to bootstrap the app from.

exisjs init

Initializes a new ExisJS project in the current directory using @exisjs/create.

$ npx exisjs init

exisjs test

Runs the native Node.js test runner (node:test) across the project.

$ npx exisjs test [files...] [options]

Options

OptionDescription
--watchWatch for file changes and re-run tests.
-u, --updateUpdate test snapshots.
-e, --entry <file>Custom entry file path to bootstrap before running tests.

exisjs repl

Starts an interactive Node.js REPL console loaded with your application context.

$ npx exisjs repl [options]$ npx exisjs console [options]

exisjs exports

Lists all available framework exports and public subpaths exposed by exisjs/*.

$ npx exisjs exports

exisjs info

Displays runtime environment, Node.js version, platform, architecture, and ExisJS version.

$ npx exisjs info