Local RAG CLI assistant that translates natural language into shell commands. No data leaves the machine.
Indexes all installed man pages by section into ChromaDB, plus personal context files dropped into ~/.config/william-tell/context/. On each invocation the query is embedded with nomic-embed-text and used to retrieve relevant man page sections and context chunks. These are injected into the LLM prompt as grounded documentation. phi4 emits a single raw shell command. No explanation, no markdown, no preamble.
Output is always a composable shell primitive to stdout, designed for onward piping. Capture as a variable, pipe into a log, use in a script. No wrapper format to parse, no structured output to unwrap.
For my own personal use, as documented in the README, I wrap the call with a fish function that outputs this back to the shell for inspection and execution on enter.
Personal context lives in ~/.config/william-tell/context/. Any markdown file placed there is chunked and indexed alongside man page results. Document your own scripts, internal tooling, team conventions, environment quirks.
Both models run entirely locally. phi4 at 9.1GB for inference, nomic-embed-text at 274MB for embeddings.