cri
cri
cri is an experimental pi-like coding harness written in Crystal.
Design direction: a small trusted Crystal core plus broad manifest-first WASM extensions. Extensions contribute tools, commands, hooks, context, and host-rendered UI metadata. Powerful actions go through host-mediated effects and permissions.
Current commands
crystal run src/cri.cr -- doctor
crystal run src/cri.cr -- extensions list
crystal run src/cri.cr -- extensions invoke github_issue tool github.get_issue '{}'
crystal run src/cri.cr -- tool list
crystal run src/cri.cr -- chat
crystal run src/cri.cr -- tui
crystal run src/cri.cr -- plugin init --lang zig my_plugin ./my_plugin
crystal run src/cri.cr -- plugin check ./my_plugin
crystal run src/cri.cr -- plugin build ./my_plugin
crystal run src/cri.cr -- plugin test ./my_plugin '{}'
# In an interactive TTY this opens the fullscreen shell; pipes use line mode.
WASM runtime
The first runtime uses a minimal Crystal binding to the wasm3 C API. It is opt-in so the core still builds without a native runtime:
# with libm3 installed or available via LIBRARY_PATH
crystal build -Dwasm3 src/cri.cr -o cri
The fixture can be invoked with:
cri extensions invoke fixture tool fixture.echo '{"hello":"world"}'
The core does not register model-facing tools. Extensions contribute tools, and host-mediated APIs such as filesystem.list are available to them through effects. In the fullscreen TUI each tool invocation and API call asks for an explicit one-shot approval.
Docs
docs/extensions.mddocs/effects.mddocs/plugin-config.mddocs/wasm-abi-v1.mddocs/wasm3-runtime.mdsdk/crystal/README.mdsdk/zig/README.mddocs/plugin-tooling.mddocs/testing.md
cri
- 0
- 0
- 0
- 0
- 0
- 11 days ago
- September 21, 2026
Tue, 06 Oct 2026 20:35:36 GMT