Skip to content

Natural language in front of your own code

Users say what they want instead of memorising flags. A 4B model on their own machine turns it into a validated JSON plan; your functions execute it. No API key, no per-request cost, and the same result every time — around twenty lines to wrap a CLI you already have.

You have a CLI

You want users to type sentences at it instead of memorising flags. You may never write a knaif skill.

Start with the knaif SDK — it ships in the wheel, so pip install knaif is all you need.

You want to extend knaif

You are adding a capability to knaif itself — a skill that ships to its users, with its own tools, eval corpus and optionally a Rust port.

Skill bundles live in the repo, so clone it first.

A small local model reads a request and emits a JSON plan — nothing else. It cannot run a command, cannot write a shell string, and never owns a safety decision. Deterministic code validates that plan, expands it into concrete steps, asks before it writes, and executes it. You pay the AI cost once, while building; the shipped thing runs on a 4B model on the user’s own machine, for free, the same way every time.

Three separate things carry the name, and a search result will not tell you which one you have landed on. What separates them is who runs them:

You type What it is Who runs it
knaif The native binary, downloaded from knaif.org End users
knaif-cli The Python console script that runs skills from a repo checkout Skill authors and evaluators
import knaif.cli The library you build your own natural-language CLI with — the knaif SDK Developers embedding knaif