Skip to main content
Forst ships as a native compiler with an optional npm wrapper for Node/TypeScript workflows. Pick the path that matches how you deploy and develop: npm, Debian package, native binary, or Docker.

npm (@forst/cli)

Best for teams already on Node.js, npm scripts, or monorepos with TypeScript clients. Install the package:
After install, invoke the compiler via:
On first use, @forst/cli downloads the native forst binary for your platform from GitHub Releases and caches it locally.

CI and offline environments

Set FORST_BINARY to a pre-installed executable path to skip the download step:
Other useful variables: Full details: @forst/cli README.

Native binary

Download the release artifact for your OS/arch from GitHub Releases, extract it, and add it to your PATH. Verify the install:
Use this path when you do not need npm integration, for example pure Go modules or system wide installs.

Debian / Ubuntu (.deb)

Best for system-wide installs on Debian or Ubuntu without npm. Installs forst to /usr/bin. Pick amd64 or arm64 from GitHub Releases when a compiler v* release ships.

Docker (GHCR)

Official multi-arch images are published on GitHub Container Registry when a compiler v* release ships. Pin the image tag to the compiler release (for example v0.1.0). latest tracks the latest stable compiler release. Generate TypeScript types in CI:
Run Forst tests:
Dev server:
The default image includes Go for transpile-and-run workflows. Use forst-minimal only when you want a smaller image and will not call forst run or forst test. Generated Go for production deploys still requires go build in your own image if you only transpile to .go files.

Editor support

For diagnostics, hover, go-to-definition, and formatting in VS Code, install the Forst extension and run the language server. See Editor workflow.

Verify your install

Confirm the compiler is on your PATH:
You should see version output and subcommand help. If the npm wrapper fails to download, check network access to github.com or set FORST_BINARY.

Next

Quickstart

Write and run your first validated handler.