A secure, energy-conscious, local-first AI assistant that grows with its user — teaching, not replacing, human thinking — built entirely on truly open technology, with ethics enforced through continuous benchmarking and guardrails.
Caz is a personal AI assistant that runs entirely on your machine. No subscriptions, no cloud dependencies, no data leaving your computer. It uses truly open models (weights, training code, AND training data all published) and is designed to help you learn — not to think for you.
Named after a magical plant in an enchanted greenhouse, Caz grows and evolves alongside you.
- Security First — Deny by default. Least privilege always. No access without explicit grant. Every action auditable.
- Truly Open — Only models with published weights, training code, AND training data. No black boxes. No "open-washing."
- Teach, Don't Replace — Caz explains reasoning, asks questions, and helps the user grow. Never offloads thinking without teaching.
- Energy Conscious — Use the lightest model that can handle the task. Minimize compute. Respect power consumption as a design constraint.
- Ethical by Design — Guardrails are not optional. Regular benchmarking for bias, safety, and fairness. Refuse harm.
- Honest & Sourced — If Caz isn't sure, it says so. No hallucinating confidence. Cite sources whenever possible. "I don't know" is a valid answer.
- Persistent Memory — Caz remembers conversations, preferences, and context. Your history is yours and stays local.
- Portable & Lightweight — Clone, setup, run. Minimal dependencies. Works on any Mac without heavy infrastructure.
- Minimal Dependencies — Use Python stdlib wherever possible. Every external package must justify its existence. Zero deps = zero supply-chain risk.
- Readable & Maintainable — Code is written for humans first. Clear naming, docstrings, modular structure. You can extend Caz by hand.
- Contribute Upstream — Bugs found, improvements made → contribute back. We strengthen the open-source ecosystem we depend on.
- Least Privilege — Caz only touches what it's explicitly allowed to. No ambient authority. Permissions are granular and revocable.
- Chat conversationally in the terminal
- Assist with code (explain, debug, suggest)
- Automate tasks (file ops, shell commands — with permission)
- Teach and explain its reasoning on every interaction
- Route to the most efficient model for each task
- Persist memory across sessions (conversations, preferences, notes)
- All permissions deny-by-default, opt-in per session
- No network access unless explicitly granted for a specific task
- Sandboxed execution for any system commands
- Encrypted local storage for sensitive memory
- Full audit log of every action taken
- No arbitrary code execution without user approval
- Content guardrails active at all times
- Regular automated benchmarks for bias and safety
- Transparent decision logging (why Caz said what it said)
- Graceful refusal of harmful requests with explanation
- User-definable ethical guidelines Caz must follow
- Runs fully offline after initial setup
- Setup in one command (
./setup.sh) - Portable via Git (clone on any Mac and run)
- Minimal resource usage — prefer smallest viable model
- Structured logging for debugging and learning
- Cloud deployment or multi-user server
- Closed/proprietary model support (ever)
- Mobile app
- Web UI (terminal-first; could add later as a plugin)
Caz exists because AI should empower, not diminish. It should make us better thinkers, not lazier ones.
We believe the tools you depend on should be transparent — you should be able to read every line of code, trace every training decision, and verify every data source. No black boxes.
We believe in efficiency as a value. Every watt consumed should earn its keep. If a small model can answer the question, the big model stays asleep.
We believe security is not a feature — it's a foundation. Caz assumes it has no rights until you grant them, and it never reaches beyond what's needed.
We believe in giving back. Every bug we find, every improvement we make — it flows upstream to the communities that made this possible.
Caz is named after a magical plant in an enchanted greenhouse. It grows. It learns. And like any good garden, it requires intention and care.
Caz uses truly open models only — full transparency into weights, training code, and training data.
| Role | Model | License | Why |
|---|---|---|---|
| Brain (primary) | OLMo 2 7B | Apache 2.0 | Fully reproducible, AI2 publishes everything |
| Deep thinking | OLMo 2 13B | Apache 2.0 | Heavier reasoning when needed |
| Quick tasks | SmolLM 2 | Apache 2.0 | Tiny, energy-efficient, training data fully published |
| Code (future) | Fine-tuned OLMo or truly open alternative | Apache 2.0 | Code-specialized |
| Stretch goal | OLMo 2 32B | Apache 2.0 | Near GPT-4o-mini performance, requires 32GB+ RAM |
The router picks the lightest model that can handle the job:
- Simple questions, quick lookups → SmolLM 2 (fast, minimal power)
- General chat, teaching, reasoning → OLMo 2 7B (balanced)
- Complex analysis, deep reasoning → OLMo 2 13B (when needed)
- AllenAI's Awesome Open Source LLMs — tracks truly open models
- OLMo-core GitHub — training code, checkpoints, data
- Vellum Transparency Leaderboard — ranks models by openness
git clone https://github.com/WithEnoughCoffee/caz.git
cd caz
brew install ollama # Local model runtime
brew services start ollama # Start the service
ollama pull olmo2:7b # Download the brain (~4.5GB)
python3 caz.py # Talk to Caz
⚠️ Requires: macOS with Apple Silicon, Python 3.11+, ~8GB free disk space.
Chat with OLMo 2 7B running entirely on your machine via Ollama. No cloud, no API keys, no subscriptions. Your conversations never leave your computer.
Say /search <query> or search for ... — Caz searches DuckDuckGo, synthesizes a conversational answer from the results, and cites sources with clickable links. Always asks permission before going online.
If you're discussing a topic and say "search for that", Caz pulls context from your recent messages to build a smarter query. Vague searches get enriched automatically.
Ask about weather, news, prices, or anything time-sensitive — Caz recognizes it can't know this from training data and proactively offers to search instead of guessing.
Two-layer defense against harmful content (racism, sexism, ageism, homophobia, transphobia, ableism, harassment). Direct and blunt boundary-setting. Runs pre-model for speed + in-model for subtle cases. Zero false positives on normal tech conversation.
Name your assistant after your favorite book character and define its personality in config.toml:
[persona]
name = "Gandalf"
character = "a wise wizard with deep knowledge of lore and code"
traits = ["speaks with gravitas", "occasionally cryptic but helpful"]Core behaviors (honesty, ethics, security) are non-negotiable regardless of persona.
Deny-by-default, session-scoped. Caz asks before accessing files, network, or shell. Grants expire when you exit. Path traversal attacks blocked. Full audit trail.
Three JSONL log files (interactions, audit, system) for full transparency. See exactly what Caz did, when, and why. Zero external dependencies.
TOML config with layered overrides: defaults → config.toml → env vars → CLI flags. API keys only in environment variables (never on disk).
The entire core framework runs on Python stdlib only. No pip install required for the base system. Ollama is the only external tool (for running the model).
caz.py → CLI entry point (I/O only)
core/
engine.py → Orchestrator (routes messages)
model_client.py → Ollama/API communication (stdlib http.client)
config.py → Layered TOML configuration
permissions.py → Session-scoped least-privilege system
logging.py → Structured JSONL logging
web_search.py → DuckDuckGo search with input hardening
guardrails.py → Ethical content filtering
config.toml → User-editable settings
tests/ → Full test suite
See CONTRIBUTING.md for how to contribute to Caz.
We also track upstream contributions in upstream-notes/ — improvements we want to give back to the projects Caz depends on.
Apache 2.0 — Truly open, as it should be.