Skip to content

Repository files navigation

TaskFlow

Desktop app that captures screen activity via UI Automation (with OCR fallback), processes it with AI summarization/filtering, and maintains an Obsidian "second brain" wiki.

Architecture

  • Rust core (src-tauri/): Tauri 2 backend with SQLite storage, rollup engine, wiki writer
  • React/TS frontend (src/): Vite-powered UI with timeline, settings, vault browser
  • Python FastAPI sidecar (sidecar/, port 7878): AI summarize/filter/embed endpoints
  • Storage: SQLite at %APPDATA%\com.taskflow.desktop\taskflow.sqlite
  • Output: Obsidian vault (user-configured path) under TaskFlow/ subdirectory

Getting Started

Prerequisites

  • Rust (stable)
  • Node.js with pnpm
  • Python 3.11+

Setup

  1. Frontend dependencies

    pnpm install
  2. Sidecar dependencies (use isolated venv to avoid numpy 2.x breaking torch)

    cd sidecar
    python -m venv venv
    venv\Scripts\activate  # Windows
    # source venv/bin/activate  # macOS/Linux
    pip install uv
    uv pip install -r requirements.txt

    First launch downloads the all-MiniLM-L6-v2 embedding model (~80MB).

  3. Run in development

    pnpm tauri dev

    The Python sidecar starts automatically when the Tauri app launches.

Development Commands

  • Verify Rust code: cd src-tauri && cargo check --lib
  • Run tests: cd src-tauri && cargo test --lib (34 tests: wiki ingest, rollup engine, OCR, retention, etc.)
  • Build frontend: pnpm build (typecheck + vite)

⚠️ DO NOT run cargo build or pnpm tauri build: Full link hits LNK1318 (Windows PDB limit). Use cargo check --lib for verification.

Key Features

  • Capture: UI Automation text capture with OCR fallback (WinRT Windows.Media.Ocr) for unreadable windows
  • Rollup engine: ~10-min event windows → workstream nodes (TaskFlow/Projects/<slug>.md)
  • Wiki: Obsidian vault with Apps/Sites/Activity/Projects hubs + daily notes derived from rollups
  • Privacy: OCR never writes bitmaps to disk; Obsidian itself is capture-excluded
  • Retention: Nulls events.content after configured hours while keeping row for stats/feed

Testing & Troubleshooting

See .agents/skills/run-taskflow/SKILL.md for:

  • Headless sidecar harness (boot, drive /summarize and /filter without GUI)
  • Setup gotchas and debugging tips

Project Documentation

  • AGENTS.md: Architecture facts, command reference, conventions
  • PRODUCT.md: Design philosophy (narrative-over-numbers, keyboard-first, local-first)

About

Desktop app that captures screen activity via UI Automation (with OCR fallback), processes it with AI summarization/filtering, and maintains an Obsidian "second brain" wiki

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages