- README, .gitignore, CLAUDE.md (project conventions) - docs/PHASE0.md — full Phase 0 manifest (locked substrate) - 10 root .lua modules + 4 ffi/ bindings, all stubs raising NotImplemented with module-scoped responsibilities matching the manifest - config.lua wired to current dirac/hossenfelder endpoints (qwen-coder-7b snappy/32k + cloud via OpenRouter through hossenfelder) File names match docs/PHASE0.md §4 exactly. Module bodies fill in across later phases; the tree shape is locked. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
aish
aish — AI-augmented conversational shell.
A unified REPL backed by language models accessed through a llama.cpp broker. Shell execution, AI inference, context management, and session memory in one terminal interface.
Implementation: LuaJIT 2.x with FFI bindings (libcurl, GNU readline, libc), no compiled extensions, no build step.
Status
Pre-implementation. Phase 0 manifest only — see
docs/PHASE0.md for the full substrate, scope, technology
decisions, directory layout, dispatch model, broker contract, execution
model, configuration, and planned phase sequence.
Directory layout
See docs/PHASE0.md §4. File names are stable across phases — later phases
fill in module bodies, they do not rename files.
Running
Not runnable yet. Once Phase 0 lands:
luajit main.lua [--config <path>]
Project conventions
This repo follows the 8(+1) phase loop documented in mfritsche's home-project
canon (feedback_dev_process.md in claude-noether memory). Each phase has its
own document under docs/. The Phase 0 manifest is the locked substrate.