Skip to content

Latest commit

Β 

History

65 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Waddle v2 β€” AI-Powered Second Brain

A Windows desktop application that silently captures your activity (focused windows, clipboard, and visible text), synthesizes daily sessions, and presents an intelligent interface to refine those into durable knowledge. Privacy-first and fully local.

Windows License

Waddle is an autonomous Windows activity intelligence agent that silently captures your digital life, synthesizes it into contextual memory, and provides AI-powered tools for recall and knowledge management. Built with privacy-first principles, everything runs locally on your machine.

Architecture Overview

Waddle implements a four-layer autonomous agent architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         WADDLE APPLICATION                           β”‚
β”‚  Wails + Svelte Frontend β€’ Go Backend API β€’ AI Reasoning Engine      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  MR-win-activity-pipeline (SENSING LAYER) - v1.0.0                 β”‚
β”‚  Intelligent Capture: ETW β†’ UIA β†’ OCR with Entity Extraction       β”‚
β”‚  Performance: 1% CPU β€’ <50ms latency β€’ 98% accuracy                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚              β”‚              β”‚              β”‚
        β–Ό              β–Ό              β–Ό              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ MR-win-etw- β”‚ β”‚ MR-win-uia- β”‚β”‚   OCR (Tess)β”‚β”‚ MR-go-entityβ”‚
β”‚ tracker     β”‚ β”‚ reader      β”‚β”‚    Engine   β”‚β”‚ -extractor  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚              β”‚              β”‚              β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  MR-go-ollama-client (PROCESSING LAYER) -                          β”‚
β”‚  Local LLM Integration β€’ Streaming Chat β€’ Embeddings               β”‚
β”‚  Zero dependencies β€’ Sub-100ms response time                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  MR-go-lance-vector (MEMORY LAYER) - v1.0.0                        β”‚
β”‚  Vector Database β€’ Semantic Search β€’ Batch Processing              β”‚
β”‚  P99 <20ms on 50k+ vectors β€’ 1,148 queries/sec                     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  INFRASTRUCTURE LAYER                                                β”‚
β”‚  β”œβ”€ MR-svelte-memory-dashboard (UI Components)                    β”‚
β”‚  β”œβ”€ MR-go-retention-manager (Data Lifecycle)                      β”‚
β”‚  β”œβ”€ MR-go-sqlite-migrator (Schema Management)                     β”‚
β”‚  └─ MR-win-dpapi-vault (Encryption & Security)                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Core Capabilities

🎯 Sensing Layer (MR-win-activity-pipeline)

The intelligent capture system orchestrates three data acquisition methods:

  • ETW Kernel Events (MR-win-etw-tracker)

    • Zero-overhead window focus tracking at 47.95 ns/op
    • Sub-microsecond event processing with zero allocations
    • Graceful polling fallback when ETW unavailable
    • Process lifecycle monitoring
  • UI Automation (MR-win-uia-reader)

    • STA thread-marshaled COM operations for safety
    • App-specific extractors for 15+ applications
    • Avoids expensive OCR when structured data available
    • Panic recovery and timeout protection
  • OCR Batch Processing

    • 10-item batches with 500ms timeout
    • Parallel processing for efficiency
    • Fallback detection (knows when OCR is needed)
  • Entity Extraction (MR-go-entity-extractor)

    • JIRA tickets: PROJ-123
    • Hashtags: #golang
    • Mentions: @username
    • URLs, emails, file paths
    • Case-insensitive deduplication

Performance: 98% accuracy at 1% CPU usage vs. pure OCR (85% accuracy, 15% CPU)

🧠 Processing Layer (MR-go-ollama-client)

Lightweight LLM integration for local AI:

  • Zero dependencies - uses only Go stdlib
  • Functional options API - clean, composable configuration
  • Streaming support - real-time response processing
  • Embedding generation - for semantic search integration
  • Built-in summarization - optimized for activity context
client := ollama.New(ollama.DefaultConfig())
summary, _ := client.Summarize("session context", capturedText)

πŸ” Memory Layer (MR-go-lance-vector)

High-performance semantic search:

  • IVF_PQ indexing - optimized for Windows
  • Batch operations - 100 vectors in 87ms
  • Async embedding queue - non-blocking generation
  • Retention policies - automatic lifecycle management
  • Ollama integration - local embedding generation

Benchmarks: 1,148 vector searches/second, P99 <20ms on 50k vectors

🎨 Interface Layer (MR-svelte-memory-dashboard)

Production-grade Svelte template:

  • Svelte 5 + Vite + Vanilla CSS
  • Timeline + card-based views
  • Global search (Ctrl+K)
  • Dark theme support (Glassmorphism)

πŸ”’ Security Layer (MR-win-dpapi-vault)

Enterprise-grade encryption:

  • AES-256-GCM encryption
  • Argon2id KDF (64MB memory, 4 threads)
  • Windows Credential Manager integration
  • DPAPI key protection
  • Key rotation without data loss
  • Zero plaintext key storage

πŸ“Š Data Management

  • MR-go-retention-manager: Automated cleanup with archive/delete policies
  • MR-go-sqlite-migrator: State-machine validated schema migrations with rollback
  • MR-go-sqlite-migrator: Migrated legacy JSON to SQLite (used in production)

Installation

Download (Recommended)

  1. Go to Releases
  2. Download Waddle-x.x.x-Setup.exe (installer) or Waddle-x.x.x-Portable.exe
  3. Run and launch from Start Menu

AI Features (Optional)

Waddle's AI requires Ollama installed separately:

ollama serve
ollama pull gemma2:2b  # or llama3, mistral, etc.

Build from Source

# Clone
git clone https://github.com/eequaled/waddle.git && cd waddle

# Development
wails dev

# Build (Native Executable)
wails build

Configuration

Data Storage

All data stored locally at ~/Documents/Waddle/:

sessions/          # Daily captured sessions (SQLite)
archives/          # Archived collections
global_chats/      # AI chat history
profile/           # User profile data

App Blacklist

Edit ~/Documents/Waddle/sessions/blacklist.txt to exclude sensitive apps:

KeePass.exe
LastPass.exe

Command-Line Options

waddle-backend.exe -data-dir "D:\Waddle" -port 9090

The MR Micro-Repository Ecosystem

Each MR project is a battle-tested, production-ready library extracted from Waddle:

Repository Purpose Key Features
MR-win-activity-pipeline Intelligent capture orchestration ETW/UIA/OCR hybrid, entity extraction, 98% accuracy
MR-win-etw-tracker Kernel-level event tracking Zero-allocation, 47.95 ns/op, graceful fallback
MR-win-uia-reader Structured data extraction STA thread-safe, 15+ app extractors, OCR detection
MR-go-ollama-client Local LLM integration Zero deps, streaming, embeddings, sub-100ms
MR-go-lance-vector Vector search engine P99 <20ms, batch operations, 1,148 qps
MR-go-entity-extractor Context extraction JIRA, hashtags, mentions, deduplication
MR-go-retention-manager Data lifecycle Archive/delete policies, compression
MR-go-sqlite-migrator Schema management State machine, rollback, checksums
MR-win-dpapi-vault Encryption AES-256-GCM, Argon2id, Credential Manager
MR-react-memory-dashboard UI components React 19, Radix UI, TipTap, Recharts

Use Cases

1. Personal Knowledge Management

Automatically capture and search everything you do:

  • "What was that JIRA ticket I was working on Tuesday?"
  • "Show me all my golang research sessions"
  • "Summarize my week in VS Code"

2. Privacy-First AI Assistant

Chat with AI grounded in your actual activity:

  • Context-aware responses based on real sessions
  • Local processing - no data leaves your machine
  • Semantic search across captured content

3. Productivity Analytics

Understand your work patterns:

  • App usage visualization
  • Time tracking by project
  • Distraction detection

4. Automation Integration

Use with N8n, Zapier, or custom agents:

// N8n webhook receives activity events
if (event.app === "Slack" && event.duration > 1800) {
  // Trigger automation after 30min in Slack
}

Performance Characteristics

Metric Value Component
Event latency <50ms MR-win-activity-pipeline
CPU usage ~1% MR-win-activity-pipeline
Search P99 <20ms MR-go-lance-vector
Vector QPS 1,148 MR-go-lance-vector
ETW throughput 20M events/sec MR-win-etw-tracker
Memory per op 0 B (zero-allocation) MR-win-etw-tracker

Development

Project Structure

β”œβ”€β”€ frontend/               # Svelte dashboard
β”œβ”€β”€ build/                  # Wails build output
β”œβ”€β”€ main.go                 # Application entry point
β”œβ”€β”€ app.go                  # Subsystem orchestration
β”œβ”€β”€ wails.json              # Wails configuration
β”œβ”€β”€ pkg/
β”‚   β”œβ”€β”€ platform/           # Platform abstraction (ETW/UIA)
└── profile/                # Default assets

Testing

# Unit tests
go test ./...

# Benchmarks
go test -bench=. -benchmem

# Race detection
go test -race ./...

Troubleshooting

Sessions not appearing?

  • Wait 30 seconds for first capture cycle
  • Check Private Mode isn't enabled (system tray icon)
  • Verify app isn't in blacklist

AI chat not working?

  • Ensure Ollama is running: ollama serve
  • Pull model: ollama pull gemma2:2b

High CPU usage?

  • Reduce screenshot frequency in settings
  • Add more apps to blacklist
  • Check OCR isn't running continuously

Contributing

Waddle welcomes contributions! Areas of interest:

  • Additional app-specific extractors for MR-win-uia-reader
  • New entity types for MR-go-entity-extractor
  • Performance optimizations for MR-go-lance-vector
  • UI improvements for MR-react-memory-dashboard

License

MIT License - see LICENSE for details.


Built with ❀️ for knowledge workers who want to remember everythingβ€”privately.

About

holy shit

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages