Skip to main content
Forge is the Kairo toolchain. It parses your source, resolves dependencies, checks types, builds artifacts, runs tests, packages libraries, and publishes to registries. Every operation is manifest-driven and deterministic: same input, same output.

What Forge does

Restore

Resolve dependencies from kairo.toml and write forge.lock.

Check

Parse, resolve names, and type-check without producing artifacts.

Build

Compile .ak source to a runnable or distributable artifact.

Test

Run tests declared in tests/ and report results.

Package

Produce a distributable library artifact.

Publish

Push a package to its configured registry.

Typical workflow

1

Create a package

Start with a kairo.toml, a src/ folder, and at least one .ak file.
2

Restore dependencies

forge restore reads the manifest and writes forge.lock.
3

Check while iterating

forge check gives you fast feedback: parse, resolve, type-check.
4

Build

forge build produces an artifact for Pulse to run.
5

Test

forge test runs any tests in tests/.

Command overview

See the Forge CLI reference for every flag and diagnostic code.

Determinism

Forge is deterministic by design:
  • Manifest is authoritative for package identity and dependencies.
  • forge.lock captures every resolved version, direct and transitive.
  • Given the same source, manifest, and lock, Forge produces the same artifact.
  • Filesystem paths never override declared module names.
Determinism matters because Kairo targets business software. You want the build on your laptop, your CI, and your teammate’s machine to produce the same result.

Diagnostics

Forge emits structured diagnostics with a code, a location, and a message. Diagnostic codes are stable identifiers you can search for and pin in CI.
Run forge check early and often. It is the fastest way to learn what Kairo will let you write, and the diagnostics tell you exactly why.

Relationship to Pulse

Forge builds Kairo packages. Pulse runs the compiled artifacts of application packages. They are separate tools with different responsibilities:
  • Forge owns compile-time correctness.
  • Pulse owns runtime execution.
See Pulse for what happens after Forge hands off an artifact.

Next steps

Forge CLI reference

Every command, every flag, every diagnostic code.

Pulse

Running compiled Kairo applications.