grammar-driven systems interface.
see it run →systems work scatters across incompatible surfaces. compilation here. execution there. inspection elsewhere. handles ephemeral. context lost between operations.
clai consolidates: same @handle across forge → exec → inspect → evolve. one interface, composable by construction.
clai <lane>:<surface>.<verb> [subject] [options] [@context] [| next...]
@context — stable URI handles; immutable; replacements retain lineage ·
@A = handle name · @A/B = child context · ^ = parent
forge — create artifacts from sourceexec — control process livenessinspect — read runtime stateevolve — mutate code transactionallyatom → frame → module → program → graph → mesh → meta (+ snapshot for frozen-topology state)
atom — instruction/branch levelframe — coroutine/threadmodule — .so/.dylib/.dllprogram — processgraph — topology of programsmesh — distributed nodesmeta — clai itself
snapshot is orthogonal to the scale ladder — it captures frozen-topology state across any surface
clai forge:module.c src/main.c
clai exec:program.spawn bin/app --as @A
clai inspect:mem.map @A --at program
clai evolve:function.swap @A/factorial swap.c
clai inspect:mem.map @A | inspect:graph.view @.
inspect:program.handles --all
forge:module.c test.c --opt=2
pipeline example
error example
c99 parser. no heap. single pass.
curl -O https://clai.ink/kernel/clai_parse.c -O https://clai.ink/kernel/clai_parse.h \
-O https://clai.ink/kernel/demo.c -O https://clai.ink/kernel/Makefile
make
./clai_parse_demo "inspect:mem.map @svc --at program"
clai_parse.h (92 lines)loading...view raw
clai_parse.c (284 lines)loading...view raw
demo.c (23 lines)loading...view raw
Makefile (20 lines)loading...view raw
LICENSE (mit)loading...view raw