Skip to content

wadewegner/remember-everything

Repository files navigation

Remember Everything

A macOS app that captures your screen, processes it with AI in the cloud, and makes your activity searchable through a knowledge base.

Architecture

macOS App → DO Spaces (raw) → Valkey Queue → DO Function → DO Spaces (processed) → Knowledge Base

The macOS app captures screenshots and uploads them to DigitalOcean. A serverless function processes each image using a vision AI model, extracting text and context. The results are stored in a searchable knowledge base.

See docs/architecture.md for details.

Prerequisites

  • macOS 14+ (Sonoma or newer)
  • Xcode with CLI tools:
    sudo xcode-select -s "/Applications/Xcode.app/Contents/Developer"
    sudo xcodebuild -license accept
  • XcodeGen:
    brew install xcodegen
  • doctl (for serverless deployment):
    brew install doctl
    doctl auth init

DigitalOcean Setup

Create these resources in the nyc3 region:

  1. Spaces Buckets (2):

    • remember-everything-raw - stores uploaded screenshots
    • remember-everything-processed - stores processed text output
  2. Managed Valkey (Basic 1GB tier):

    • Name: remember-everything-queue
    • Acts as the message queue between upload and processing
  3. Functions Namespace:

    doctl serverless namespaces create --label remember-everything --region nyc3
    doctl serverless connect remember-everything
  4. API Credentials:

    • Spaces access key and secret
    • Valkey connection details (host, port, password)
    • DO API token for Serverless Inferencing

See docs/secrets-reference.md for details.

Quick Start

1. Configure macOS App

mkdir -p ~/Library/Application\ Support/RememberEverything
cp macos/Config/config.example.json ~/Library/Application\ Support/RememberEverything/config.json

Edit config.json with your DO credentials:

{
  "captureIntervalSeconds": 10,
  "dataDirectory": "~/RememberEverything/data",
  "spaces": {
    "endpoint": "https://nyc3.digitaloceanspaces.com",
    "region": "nyc3",
    "bucket": "remember-everything-raw",
    "accessKeyId": "YOUR_KEY",
    "secretAccessKey": "YOUR_SECRET"
  },
  "valkey": {
    "host": "your-cluster.valkey.db.ondigitalocean.com",
    "port": 25061,
    "password": "YOUR_PASSWORD",
    "tls": true,
    "listName": "images-to-process"
  },
  "upload": {
    "enabled": true
  }
}

2. Build and Run macOS App

Debug build:

./build_macos.sh

Release build (install to /Applications):

cd macos
xcodegen generate
xcodebuild -project RememberEverything.xcodeproj -scheme RememberEverything -configuration Release -derivedDataPath ../.derived/macos-release
cp -R ../.derived/macos-release/Build/Products/Release/RememberEverything.app /Applications/
open -a /Applications/RememberEverything.app

3. Grant Screen Recording Permission

  1. When prompted, open System Settings → Privacy & Security → Screen Recording
  2. Enable RememberEverything
  3. Restart the app

4. Deploy Serverless Function

cp serverless/.env.example serverless/.env
# Edit .env with your credentials

./scripts/deploy_function.sh

5. Set Up Knowledge Base

  1. Go to DO Console → GenAI Platform → Knowledge Bases
  2. Create a new KB connected to remember-everything-processed bucket
  3. Configure automatic sync
  4. Create an Agent using this KB

Monitoring

macOS app logs:

tail -f /tmp/RememberEverything-debug.log

Function logs:

doctl serverless functions get process-images/process --logs

Queue status:

redis-cli -h $VALKEY_HOST -p 25061 --tls -a $VALKEY_PASSWORD LLEN images-to-process

Run at Login

./scripts/install_launch_agent.sh

To uninstall:

./scripts/uninstall_launch_agent.sh

Cost Estimate

Resource Monthly Cost
DO Spaces (250GB) ~$5
DO Managed Valkey (Basic) ~$15
DO Functions ~$20-25
DO Serverless Inferencing ~$200-250*

*Cost varies significantly based on model choice and capture interval. Using Llama 3.2 Vision instead of GPT-5 can reduce inference costs by 75%.

Documentation

Project Structure

remember-everything-ai/
├── macos/                  # macOS capture app (Swift)
│   ├── Capture/           # Screen capture service
│   ├── Config/            # Configuration management
│   ├── Upload/            # Spaces upload + Valkey queue
│   └── ...
├── serverless/            # DO Functions (Python)
│   └── packages/
│       └── process-images/
│           └── process/   # Image processing function
├── scripts/               # Utility scripts
├── docs/                  # Documentation
└── prds/                  # Product requirements

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published