Skip to main content
Glama
sdntsng
by sdntsng
README.md
# Sutrana

Local-first **ambient memory** for Mac: continuously captures what you see, indexes it on-device, exposes it as an MCP server for Claude/Cursor, and surfaces open loops in a Shram-style menu-bar inbox.

[![CI](https://github.com/sdntsng/sutrana/actions/workflows/ci.yml/badge.svg)](https://github.com/sdntsng/sutrana/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

> **Status:** Early public preview (`v0.1`). Capture → SQLite/FTS → MCP → menu-bar open tasks works on Apple Silicon with full Xcode. Not a signed App Store build yet.

## What it does

- **Menu bar app** — open tasks stream, settings, permissions, kill switch
- **Screen capture + OCR** — ScreenCaptureKit + Vision, local SQLite + FTS5
- **MCP tools** — `search_memory`, `get_timeline`, `list_open_tasks`, `suggest_followups`, `list_day_summaries`, `embed_recent_memory`
- **Optional hybrid search** — local Ollama embeddings (off until you run Ollama)

All data lives under `~/Library/Application Support/Sutrana/`. No cloud by default.

## Quick start

### 1. Memory + MCP (Node)

```bash
git clone https://github.com/sdntsng/sutrana.git
cd sutrana
npm install
npm run build
npm run mcp
```

### 2. Mac menu bar app

Requires **full Xcode** (Command Line Tools alone are not enough).

```bash
cd apps/mac
./Scripts/build-app.sh
open Sutrana.app
```

Grant **Screen Recording** (and optionally Accessibility) when prompted — or use the Permissions tab.

### 3. Connect Claude Desktop / Cursor

See [docs/claude-desktop.md](docs/claude-desktop.md) and [docs/cursor.md](docs/cursor.md).

## Privacy

- Local-only storage and embeddings by default
- Private-apps denylist in Settings
- Pause capture anytime from the menu bar
- Microphone / accessibility scrapers are opt-in later; mic is not used in v0

See [SECURITY.md](SECURITY.md) to report issues.

## Repo layout

```
apps/mac/           Swift menu-bar capture agent
packages/memory/    SQLite FTS + open tasks + day summaries + Ollama embeddings
packages/mcp/       MCP stdio server
docs/               client config examples
```

## Development

- Default contribution branch: **`dev`** (staging)
- **`main`** is production / releases
- `npm run build` · `npm run typecheck` · `npm test`

See [CONTRIBUTING.md](CONTRIBUTING.md).

## Roadmap (post-v0.1)

- Signed `.dmg` distribution
- Stronger open-task heuristics / LLM drafts
- Accessibility messaging scrapers (opt-in)
- Optional remote embeddings with explicit consent

## License

MIT