Reference

CLI reference

All point commands, arguments, defaults, and exit behavior.

Summary

The point CLI ships in @hatchingpoint/point. Commands take a file path unless noted. Project-wide commands end in -all.

Version: @hatchingpoint/point@0.2.7 (see npm view @hatchingpoint/point version)

CLI rings (start here)

Most users need only these:

RingCommandsPurpose
Dailycheck, box, launch, demo, devValidate, discover, run, app dev
Buildbuild, build-app, build-schemaEmit for legacy hosts and deploy
Agentcheck-json, repair, repair-plan, index, explainCompiler as agent IDE
Advancedbuild-ts, build-py, build-ast, *-all, replAlternate emit, batch, tooling

See Point in 60 seconds and Build and emit decision tree.

Invocation

point <command> [input] [output-or-ref]

Defaults when omitted: input = examples/math.point, output = generated/math.ast.json (for build) or path used as ref (for explain).

Single-file commands

CommandPurposeExit
checkTypecheck one file1 on diagnostics
check-jsonJSON diagnostics with semantic refs1 on diagnostics
fmtRewrite file with canonical formatting0
fmt-checkFail if file would change1 if unformatted
indexSymbol index JSON (semantic when available)0
explainExplain a ref: point explain <file> <ref>0
repair-planOrdered repair steps from diagnostics1 if diagnostics
repairAlias for repair-plan1 if diagnostics
demoGolden demo path: check, box, print dev/launch/repair next steps1 on check failure
capabilitiesList built-in std modules (use http shorthand); --json for agents0
commandsList runnable command blocks in a file; --json for agents0
boxCapabilities + commands for one file in one screen; --json for agents0
print-astDump core program JSON0
buildEmit JavaScript (default generated/<base>.js); --production for deploy-oriented emit1 on diagnostics
build-tsEmit TypeScript (default generated/<base>.ts)1 on diagnostics
build-jsAlias for build (same flags)1 on diagnostics
build-pyEmit Python (logic, actions, routes, workflows, commands where supported)1 on diagnostics
build-py-allEmit Python for all discovered files (skips unsupported blocks)1 on diagnostics
runCheck, run zero-arg entrypoint: point run <file> [command name]1 on check/runtime error
launchAlias for point run — requires command name: point launch <file> <command name>1 on check/runtime error
devRuntime-owned apps (point.json runtime: "owned") run through packages/point/runtime/; legacy apps still use incremental build/dev and may start Vite1 on initial check failure
serveRuntime-owned apps serve through packages/point/runtime/; legacy Path B apps serve static dist/ + /api/* routes1 on check failure or missing legacy dist/
build-appLegacy app build: emit JS + TS then run Vite build → dist/ (requires web/vite.config.*; disabled for runtime: "owned")1 on check failure, vite error, or runtime-owned app
testRun test* Bool calculations/actions1 on failure
test integrationStart route server and run integration test* Bool actions1 on failure
replEvaluate expressions from stdin or inline0
lspStart stdio language serverruns until stopped

App scaffolding

CommandPurposeExit
createScaffold a new runtime-owned app: point create <name> [directory] (default --template runtime-app)1 on invalid name or non-empty target
create --list-templatesList bundled app templates0
initAdd Point to an existing repo: point init [directory] [--skip-install] [--force]0
app newLegacy alias for point createsame as create

Creates a project directory with point.json, package.json, src/app.point, editor configs (.vscode/, .point/), .gitignore, and README. The default runtime-app template sets point.json to runtime: "owned" so point run, point test, point dev, and point serve use the Point runtime instead of generated app artifacts.

Available templates include:

TemplateCommandRuntime mode
runtime-apppoint create my-app or point create my-app --template runtime-appRuntime-owned (point.json runtime: "owned")
runtime-saas-apppoint create my-app --template runtime-saas-appRuntime-owned auth middleware + SQLite, no web/ or Vite
full-stack-apppoint create my-app --template full-stack-appLegacy Vite/React host
saas-apppoint create my-app --template saas-appLegacy Vite/React host with auth/SQLite
vercel-apppoint create my-app --template vercel-appLegacy Vite/React/Vercel host

Runtime-owned apps disable emit/app-build paths (build, build-js, build-ts, build-app) for that app surface. Use legacy templates only when you explicitly want generated host artifacts and Vite/React integration during the transition.

point init adds @hatchingpoint/point, workspace editor settings, .point/lsp.mjs (portable LSP launcher), and a check script when .point files are present.

Package management

CommandPurposeExit
addAdd dependency: point add <name> <spec>1 on invalid spec or missing point.json

Supported specs: workspace:<path>, file:<path>, npm:<package>[@version].

Updates point.json and regenerates point.lock. Project-wide check/build resolve use <package>.<module> through the lockfile (see package management in the repo docs).

Project commands (-all)

Discovered globs: examples/**/*.point, std/**/*.point, compiler/**/*.point.

CommandPurpose
check-allTypecheck all discovered files in dependency order
fmt-allFormat all discovered files
fmt-check-allVerify formatting for all files
build-allWrite AST JSON for each file under generated/
build-ts-allEmit TypeScript for each file
build-js-allEmit JavaScript for each file
build-py-allEmit Python for pure-logic fixtures (skips views, routes, workflows, commands)
test-allRun tests in all discovered files

Environment

VariableEffect
POINT_INCREMENTAL=1Cache unchanged files during check-all and legacy point dev rebuilds

Run and test conventions

  • run: point run <file> [command name] — when omitted, picks default command (non-serve first), then main, then first zero-arg function
  • launch: same as run but command name is required
  • commands / box: discover entrypoints before running
  • test: zero-input calculation or action whose semantic name starts with test and returns Bool
  • runtime-owned apps: a nearby point.json with runtime: "owned" is the app ownership boundary. Run/test/dev/serve stay inside packages/point/runtime/; generated JS/TS app artifacts are not part of that workflow.

Agent-facing commands

Prefer check-json, index, explain, repair-plan, capabilities, commands, and box for automation. See AI overview.

Build flags

FlagCommandsEffect
--productionbuild, build-jsOptimized JavaScript emit for deploy (header + compact spacing; use host minifier for final bundle)
--port <n>dev, serveListen port (default 3456)
--apidevAPI-only dev — skip Vite
--static <dir>serveStatic root (default dist)

See also