Private macOS state layer for AI assistants

Ogle

Ogle turns local attention, activity, screenshots, webcam frames, and device signals into derived state summaries so an MCP-capable assistant can pace itself around your current focus and search your local visual memory.

Ogle dashboard showing focus, energy, stress, workload, activity timeline, and privacy boundary.

Prerequisites

Local first means local setup.

Ogle runs on your Mac, stores compact rows in SQLite, asks local Ollama for state estimates, and exposes derived summaries over MCP. Install these pieces before expecting assistant guidance.

macOS app

macOS 13 or newer, Xcode Command Line Tools, and a local build from `./scripts/build.sh`.

Local model

Ollama running on `127.0.0.1:11434` with `gemma4:latest` and `embeddinggemma:latest` pulled.

Permissions

Camera, Screen Recording, Accessibility, or Input Monitoring when you enable the related signals.

Assistant bridge

Codex, Claude Code, Gemini CLI, or another MCP client that can run `python3 mcp/ogle_mcp.py`.

Ogle setup checklist with macOS, Ollama, permissions, browser bridge, and MCP requirements.

What it does

Signals become pacing hints, not claims about you.

Ogle treats focus, fatigue, workload, stress, and fragmentation as estimates. Assistants can use those estimates to reduce branching, slow down, offer one next step, or move faster when your state looks stable.

Local sensing

Pointer movement, typing rhythm, app switching, process pressure, camera landmarks, and optional screenshot samples stay on the device.

State estimates

Ollama produces structured focus, energy, stress, workload, fatigue, fragmentation, confidence, and advice fields.

MCP contract

`ogle_state_layer` and `ogle_codex_context` return derived summaries, response guidance, and privacy boundaries.

Visual search

`ogle_visual_memory_search` searches local VLM captions and text embeddings for screenshots and webcam frames. It returns captions and metadata, not raw images.

Browser bridge

The Chrome or Comet extension writes sanitized active-tab metadata after removing query strings and fragments.

Ogle visual memory search panel with captioned frames, local models, and privacy boundaries.

Privacy boundary

Assistants get summaries, not raw life.

Ogle excludes raw screenshots, webcam frames, audio, key values, prompts, and full URLs from MCP responses. The app stores derived rows locally and keeps weak signals labeled as state estimates.

Ogle MCP state layer screenshot showing assistant guidance and response boundary.

Build Ogle locally.

Start with the macOS app, add Ollama, then connect an MCP client when the local state layer looks useful.

Open github.com/sliday/ogle