AGPL-3.0-or-later · forever.

the standard library

nika:hash

Content hashing · blake3 (default) | sha256 | sha512 · hex (default) or base64. One of 28 builtins in the closed nika: namespace.

the data familypure JSON/data transforms, no I/O

  • datafamily9 tools
  • 3argsdeclared contract
  • 1requiredcheck teaches a miss
  • craftedusage filecheck-green below

the contract

3 args · 1 required

A missing required arg is a nika check finding before anything runs; the vocabulary below comes from the binary itself (nika catalog --tools --json), not from prose.

content*
bytes to hash — a string is hashed as-is; any other JSON value (object · array · number · bool) is compact JSON. Do not pre-pipe | tojson.
algo
stringblake3 | sha256 | sha512
encoding
stringhex | base64

in a real file

a complete workflow
hash.nika.yaml
# content-address a file — the receipt survives the runnika: pin-the-artifactpermits:  exec: true  tools: ["nika:hash"]tasks:  artifact:    exec:      shell: "cat report.md | tr -d '\r'"      cwd: "./dist"      env:        LC_ALL: "C"  pin:    with:      artifact: ${{ tasks.artifact.output }}    invoke:      tool: "nika:hash"      args:        content: "${{ with.artifact }}"        algo: sha256outputs:  sha256: ${{ tasks.pin.output }}

a complete file, nika check green; the drift gate re-validates this copy against the schema on every test run. open it in the playground →

cross-references

ships in skeletons

no skeleton ships it; the crafted file above is the reference.

the check gates

the data family

9 tools

pure JSON/data transforms, no I/O.

Machines read the same vocabulary at /tools/catalog.json; the contract lives in spec 06 · stdlib. Install and ask the binary itself: nika catalog --tools. Read the spec →