Skip to main content

Reference

Pointers to API, config, CLI, and license info.

API Reference

Placeholder

Placeholder: OpenAPI/Swagger spec not yet published. For now:

  • REST API: See website/docs/developer/docs.old/reference/api.md (or existing API docs in repo) for endpoint overview.
  • Implementation: apps/server/src/api/ — one module per logical API area (e.g. api.settings.js, api.machines.js).

Base URL (dev): http://localhost:8000

Auth: JWT. Obtain token via login flow; send as Authorization: Bearer <token> or equivalent.

Plugin / Extension API

Placeholder

Placeholder: Plugin/extension API not defined. The codebase does not currently expose a formal plugin system. Customization is via config, themes, and forks.

Configuration Reference

Config File: ~/.axiocnc/config.json

Location: User home, .axiocnc/config.json

Override: axiocnc --config /path/to/config.json

Structure: Key settings include:

  • rcfile — Path to this config (default ~/.axiocnc/config.json)
  • secret — Session/JWT secret (do not commit)
  • middleware.session — Session config (e.g. path: ~/.axiocnc/sessions)
  • machines — Machine/connection configs (port, baud, controller type, etc.)
  • general — App-wide options

Defaults: See apps/server/assets/config/.cncrc.default and apps/server/src/config/settings.base.js.

Placeholder

Placeholder: Full config schema and all keys should be documented in a dedicated config reference (or derived from .cncrc.default + settings.base.js).

CLI Reference

Main Entry

Binary: apps/server/bin/axiocnc (or axiocnc when installed)

Common options:

  • -c, --config <path> — Config file (default ~/.axiocnc/config.json)
  • -p, --port <port> — HTTP port (default often 8000)
  • -m, --mount <path>:<url> — Mount widget/app (e.g. /widget:https://...)

Example:

axiocnc --port 8000 --config ~/.axiocnc/config.json

Help:

axiocnc --help

pnpm Commands (Development)

CommandPurpose
pnpm dev:start-serverStart backend dev server
pnpm dev:start-appStart frontend dev server
pnpm dev:start-electronStart Electron app
pnpm dev:grblsim:setupOne-time GRBL sim setup
pnpm dev:grblsim:runRun GRBL simulator
pnpm test:testRun server tests
pnpm test:coverageRun tests with coverage
pnpm test:lintRun all lint checks
pnpm test:typecheckTypeScript check (frontend)
pnpm build:allBuild all apps
pnpm build:serverBuild server
pnpm build:webBuild web app
pnpm release:tagCreate release tag
pnpm release:tag:pushPush release tag

See Day-1 Workflow for more.

License and Contributor Policy

License: MIT — see LICENSE in the repo.

Contributions: By submitting a PR, you agree that your contributions are under the same license. There is no CLA; standard GitHub terms apply.

Copyright: See LICENSE file. Includes "Copyright (c) 2015–2017 Cheton Wu (cncjs foundation)" and "Copyright (c) 2024 AxioCNC Contributors".

Development Guides

Next Steps