Activity Tracker — Wireframes

App menu bar nativa (SwiftUI) que captura app + título + body de chat/terminal vía Accessibility API, sessioniza, manda a OpenRouter y escribe el reporte en Obsidian. El objetivo: "alguien me pregunta qué hice hoy y le puedo responder". Cero fricción, cero screenshots.

4 pantallas Lo-fi · monochrome Click para zoom macOS menu bar

Flow — comportamiento pasivo

De tu día a la nota, sin que hagas nada.

flow
  1. Trabajás — Discord, Terminal, VS Code, lo que sea.
  2. Captura — AX API event-driven, no polling. Cero CPU idle.
  3. Sesioniza — merge por app+title, gap 5 min.
  4. OpenRouter — digest → recap JSON (deepseek-chat).
  5. Obsidian — append a 2025-07-15.md a las 18:00.

2 · Settings

Lo único que tocás una vez (o para cambiar qué apps leen body).

settings
  1. (1) Body text — toggles por app. Default: Discord, Slack, iTerm2, Terminal.
  2. (2) Vault — ruta de la carpeta de Obsidian.
  3. (3) OpenRouter — API key (se guarda en Keychain).

3 · Nota Obsidian (output)

El entregable. Lo que le mostrás a quien te pregunta "¿qué hiciste?"

obsidian
  1. (1) Sección auto — "¿Qué hice hoy?" con bullets del LLM, agrupados por proyecto. Footer con hora y stats.

Open questions

  1. ¿Hora del flush fija (18:00) o configurable? El blueprint usa 18:00 por defecto.
  2. ¿El popover muestra el recap del día o solo stats? Por performance, el recap vive en Obsidian; el popover muestra stats + reciente.
  3. ¿Botón "Flush ahora" regenera o solo adelanta? Adelanta el reporte de hoy (no lo borra).
  4. ¿Cómo se ve el estado "pausado"? Ojo tachado + "Pausado" en el popover.
  5. ¿Alerta si falta el permiso de Accessibility? Sí — el popover mostraría "Falta permiso" en vez de "Capturando…".
zoom