Skip to main content

CLI and tooling overview

Draton treats tooling as part of the language, not as an afterthought. The drat binary is the operational front door for the early Draton experience.

Core commands

The current official tooling suite includes:

  • drat build
  • drat run
  • drat fmt
  • drat lint
  • drat task
  • drat lsp

Build and run

Use drat build to compile a file or project:

drat build examples/hello.dt -o hello

Use drat run to compile and run in one step:

drat run examples/hello.dt

Strict syntax mode is available when you need the canonical surface enforced:

drat build --strict-syntax examples/hello.dt

Format and lint

The formatter and linter are part of the first-party CLI:

drat fmt --check examples/hello.dt
drat lint examples

They are expected to reinforce canonical syntax and repo rules rather than invent new stylistic directions.

Task runner

drat task gives Draton projects a structured task surface:

drat task
drat task build

The goal is to reduce ad-hoc project scripting and make the project workflow inspectable.

Language server

drat lsp exposes diagnostics and editor-facing features through the existing Rust frontend:

drat lsp

The LSP path is built to reuse parser/typechecker knowledge rather than invent a disconnected analysis layer.

Tooling and language philosophy

Draton’s tooling design follows the same philosophy as the language:

  • one canonical syntax lane
  • explicit behavior
  • strong docs/runtime/tool alignment
  • clear boundaries between implementation truth and compatibility support

Tool references