fen documentation #
fen is a small Fennel→Lua coding-agent CLI. It is built as a reloadable microkernel: a tiny core (agent loop, canonical types, provider dispatch, extension registry) with providers, the UI, session storage, and even the built-in tools all shipped as first-party extensions. It mirrors pi-mono's interface shapes in simplified form and targets Lua 5.4 on ARMv7/Raspberry-Pi-class hardware.
For a project overview, install instructions, and a quick start, see the repository README.
Guides #
- Development workflow — dev workflow, hot reload, checks, Nix result symlinks.
- Architecture notes — module map, canonical types, reloadable microkernel, design principles.
- Extensions — extension discovery, manifests, API surface, reload, packaging, examples.
- Providers — provider interface, auth/wire differences,
models.jsoncustom providers. - Tools — built-in tool contracts and deliberate omissions.
- Sessions — JSONL session format and flags.
- Scripts — portable Lua/Fennel script runner.
- Skills — SKILL.md discovery and prompt behavior.
- Distribution — Nix artifacts, single-file binary format,
package.searchersprecedence, dev overlays, releases.
Generated reference #
The generated site includes contracts, API, registries, and graphs pages scanned directly from source. Use the sitemap for a dense index of every page and the machine-readable artifacts. It is part of the published documentation site rather than the repository.