ZIZOU docs

Everything you need to run, extend, and understand Zizou — the AI coding agent that lives in your terminal.

File Structure & Layering

The codebase strictly adheres to a layered architecture. Higher layers may import from lower layers — but never vice-versa.

  • ui/ ( App.tsx , Chat.tsx , ApiKeySetup.tsx ) — The React/Ink terminal interface. Responsible only for rendering state and handling user input.
  • agent/ ( run-turn.ts ) — The core AI loop. Uses streamText to communicate with the model, execute tools, and yield events back to the UI.
  • provider/ ( resolve-model.ts ) — Instantiates the correct LanguageModel via @ai-sdk/anthropic or @ai-sdk/openai , dynamically injecting API keys.
  • tools/ ( read-file.ts , edit-file.ts , run-bash.ts ) — Pure functions that define the agent's capabilities. Return deterministic JSON payloads and never throw. runBash relies on an injected ConfirmFn to ask the user for permission.
  • config/ ( api-keys.ts ) — The base layer handling persistent local storage using conf .