Flock

Flock is the Kestrel build tool and package manager. It scaffolds projects, resolves dependencies, builds and runs binaries, and produces release artifacts. If you've used Cargo, npm, or go modules, the shape will feel familiar.

Day-to-day commands

flock init # create a flock.toml in the current directory flock build # compile (incremental) flock run # build and run flock check # type-check without producing a binary

flock run is what you'll use most. It's incremental — second runs only rebuild what changed.

Project layout

After flock init and creating your entry point, a project looks like:

my-project/ flock.tomlmanifest src/ main.ks target/build output, gitignored

flock.toml declares the package name, version, and dependencies. A small one:

[package] name = "my-project" version = "0.1.0" [dependencies]

Adding a dependency

Add the dependency to flock.toml under [dependencies]:

[dependencies] serde = "0.4"

On the next flock build, Flock fetches the dependency and writes a lockfile (flock.lock) pinning the resolved version graph. Commit flock.lock for applications; libraries usually don't.

More

For deeper Flock usage — the manifest format, dependency resolution, and publishing — see Tooling → Flock. For first-time setup, you've already done it: flock is included in the install.