Skip to main content

Philosophy

Get out of the model's way.

Core Principles

Simplicity Above All

With every design decision, pick the simplest possible option.

  • Where do you run commands? Locally.
  • Where do you store data? Local files and SQLite.
  • How do you communicate? Unix sockets.
  • What UI do you need? A terminal.

No virtualization. No containers. No cloud. No electron wrappers.

Let the Model Breathe

The model can do more than most products let it. Don't hobble it.

  • Minimal system prompts — personality, not instructions
  • Fewer tools, not more — consolidate, don't proliferate
  • Agentic by default — model loops until it decides it's done
  • No guardrails that assume incompetence

When you add "helpful" features, you often limit the model. Resist the urge.

Note: OWL has safety limits (max 50 tool iterations, 10 message history, 300s timeout) to prevent runaway loops and manage resources. These are practical safeguards, not restrictions on model capability.

Delete Code on Upgrades

Every time there's a better model:

  • Delete system prompt complexity the model no longer needs
  • Remove workarounds for old model weaknesses
  • Consolidate tools the model can now handle more generally
  • Strip guardrails that compensated for limitations

The goal is less code over time, not more.

Raw Model, Minimal Wrapper

Users should feel the model as directly as possible.

  • No UI clutter between user and model
  • No scaffolding that filters or reshapes responses
  • Stream tokens directly — don't buffer and process
  • The model's voice, not a product's voice

Local-First, Always

Privacy and simplicity align:

  • All inference runs locally via Ollama
  • All data stays on your machine
  • No API keys, no accounts, no telemetry
  • Works offline, works forever

What This Means

DoDon't
Write less codeAdd UI for things the model can figure out
Trust the modelCreate tool variants for edge cases
Use standard tools (files, sockets, sqlite)Build elaborate prompt chains
Keep the CLI minimalAdd configuration for hypothetical needs
Delete features that don't earn their complexityOptimize for demos over daily use

Permission System

Running locally means the model can do real things. This power requires trust, and trust requires control.

Core Principle

If you start OWL, it shouldn't change things on your system without permission.

But we also give ways to opt out: "In this context, don't ask me every time."

Permission Modes

OWL uses mode-based permissions. Switch modes with /mode:

ModeBehavior
defaultAsk before edits and commands
auto-editAllow edits, ask for commands
planRead-only mode
yoloAllow everything

Permission Flow

When OWL wants to do something that needs approval:

┌─────────────────────────────────────────────┐
│ OWL wants to: delete_file("config.yaml") │
├─────────────────────────────────────────────┤
│ Allow? [y/n]: │
└─────────────────────────────────────────────┘
  • y — Allow (remembered for this session)
  • n — Deny

Dangerous Commands

Some commands always require confirmation, even in yolo mode:

  • Destructive: rm -rf /, rm -rf ~
  • Sudo: any command starting with sudo
  • Disk: mkfs, dd if=, fdisk, parted
  • System: shutdown, reboot, systemctl stop
  • Network: iptables -F, ufw disable
  • Permissions: chmod -R 777 /, chown -R
  • Fork bombs

Environment Variables

Override permissions via environment:

OWL_ALLOW_TOOLS=read_file,write_file
OWL_DENY_TOOLS=run_command:rm *

The Vision

OWL should feel like talking directly to an AI that lives on your machine — one that remembers you, knows your projects, and grows alongside you.

Not a product. Not a platform. Just a wise companion with a growing soul.


Inspired by the Claude Code team's philosophy: "We want people to feel the model as raw as possible."