Reference

A quick reference for the pieces you touch when publishing.

flock.toml[package]

FieldRequiredMeaning
nameyespackage name; with org forms the org/name scope
versionyessemantic version, e.g. "0.2.0"
orgto publishthe namespace you publish under
descriptionnoone-line summary, shown on the registry
authornoauthor name
licensenolicense identifier, e.g. "MIT"
repositorynosource repository URL
websitenoproject URL
documentationnodocs URL
sourcenosource directory; defaults to src

[dependencies]

[dependencies] your-org/widget = { version = "0.2.0" } # from the registry, keyed by org/name local-lib = { path = "../local-lib" } # a local path, keyed by name

Building writes a flock.lock pinning the resolved graph. Commit it for applications; libraries usually don't.

[registry]

[registry] url = "https://registry.kestrel-lang.com" # override the default registry

Credentials & environment

ThingWhere
Auth token~/.kestrel/credentials, or the FLOCK_TOKEN env var
Org overrideFLOCK_ORG — overrides [package] org (handy for CI / one-offs)

The token is whatever the registry's account page issues you (flock_…). Treat it like a password.

Commands

CommandWhat it does
flock initcreate a flock.toml and src/ in the current directory
flock buildcompile (applications)
flock runbuild and run (applications)
flock checktype-check without building — use this for libraries
flock publishpackage, generate docs, and upload to the registry
flock updatere-resolve dependencies and rewrite flock.lock

Publishing rules

  • Versions are immutable. A published org/name@version can never be overwritten — bump the version to ship a change.
  • No unpublish/yank yet. Publish deliberately; what goes up stays up.
  • Membership is enforced. You can only publish under your personal org or an org you belong to.

Troubleshooting

Flock prints the registry's raw response, so failures appear as a short message or JSON:

You seeMeaningFix
No auth token found.no credentialssave a token to ~/.kestrel/credentials, or set FLOCK_TOKEN
No org specified.no namespaceadd org to [package], or set FLOCK_ORG
{"error":"Invalid token"}token wrong or revokedmint a new one on the account page
{"error":"Not a member of this organization"}you're not in that orgpublish under your own org, or get added
{"error":"Version already exists"}that version is takenbump version

← Back to the guide overview.