the standard library
nika:edit
In-place literal find/replace (all occurrences · count caps it). NOT regex. One of 28 builtins in the closed nika: namespace.
the file familyworkspace files: read, write, search (permits.fs-gated)
- filefamily5 tools
- 4argsdeclared contract
- 3requiredcheck teaches a miss
- craftedusage filecheck-green below
the contract
4 args · 3 requiredA 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.
- path*
stringfile to edit- find*
stringthe literal string to find- replace*
stringthe replacement- count
integercap replacements
in a real file
a complete workflownika: v1workflow: id: bump-log-level description: "literal find/replace in place — not regex, no surprises"permits: fs: read: ["./config.toml"] write: ["./config.toml"] exec: false tools: ["nika:edit"]tasks: bump: invoke: tool: "nika:edit" args: path: "./config.toml" find: 'level = "info"' replace: 'level = "debug"' count: 1outputs: changed: ${{ tasks.bump.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 file family
5 toolsworkspace files: read, write, search (permits.fs-gated).
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 →