{"adoption": {"forks": 117, "observed_at": "2026-09-03T02:15:14.789973+00:00", "stars": 1169}, "canonical_url": "https://ross.abutalabs.com/products/lotti", "card": {"archived": false, "artifact_type": "application", "description": "A private logbook with a staff of personal AI assistants. Agents read what you record and propose what to do next — you approve the changes. End-to-end encrypted sync between your own devices — servers only ever see ciphertext. Local AI optional.", "domain": ["developer-tools", "privacy", "self-hosted", "artificial-intelligence", "healthcare"], "enriched": true, "function": ["speech-recognition", "nlp", "agent-framework", "chatbot", "scheduling"], "health_score": 100, "homepage": "https://matthiasn.github.io/lotti/", "language": "Dart", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["matthiasn/lotti"], "name": "matthiasn/lotti", "platform": ["windows", "cross-platform"], "pushed_at": "2026-09-02T18:57:42+00:00", "repo": "matthiasn/lotti", "stars": 1169, "tags": ["journaling", "time-tracking", "task-management", "local-first", "end-to-end-encryption", "flutter", "ai-agents", "health-tracking", "habits", "macos", "linux", "ios", "android"], "topics": ["time-tracker", "flutter", "ios", "linux-app", "macos", "android-app", "health", "speech-recognition", "ai", "local-first", "privacy", "task-management", "task-manager", "agentic-ai", "agentic-workflow", "matrix", "journaling", "agentic", "ai-agents", "end-to-end-encryption"], "urls": [], "use_cases": ["keep a private journal with voice notes and photos", "track time spent on tasks and projects", "manage tasks and planned time blocks separately from actual work", "record habits and health data locally", "get AI summaries and suggested next steps from a personal agent", "sync notes privately across devices with end-to-end encryption"], "what_it_is": "Lotti is a private, local-first logbook app for journaling, task management, time tracking, habits, and health data, with a staff of personal AI assistants that read your records and propose next steps for your approval. It syncs end-to-end encrypted between your own devices, so servers only ever see ciphertext, and AI usage is optional with a recommendation toward European open-weight model infrastructure.", "when_to_avoid": ["you need team collaboration or shared task boards", "you want a simple hosted to-do app with zero configuration", "you rely on cloud AI services like OpenAI by default rather than self-managed models"], "when_to_choose": ["you want a privacy-first journal and time tracker that never stores readable data on servers", "you want AI assistance that proposes changes but always waits for your approval", "you need one cross-platform app for journaling, tasks, habits, and health data", "you prefer local-first storage with optional, self-controlled AI"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/lotti", "repo": "matthiasn/lotti", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.789973+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:31:30.068577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a7360c5eb5928ca510d41d40c616f099786e07ec64dac47e96bb00738638af8", "fetched_at": "2026-09-03T02:15:14.789973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthiasn/lotti"}, {"content_hash": "768c8fc7e3a7b95b1914c91846cad2e11e0b19c9beafebf00708435c8758d99d", "fetched_at": "2026-08-29T12:35:30.003857+00:00", "kind": "homepage", "missing": false, "url": "https://matthiasn.github.io/lotti/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.789973+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:31:30.068577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a7360c5eb5928ca510d41d40c616f099786e07ec64dac47e96bb00738638af8", "fetched_at": "2026-09-03T02:15:14.789973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthiasn/lotti"}, {"content_hash": "768c8fc7e3a7b95b1914c91846cad2e11e0b19c9beafebf00708435c8758d99d", "fetched_at": "2026-08-29T12:35:30.003857+00:00", "kind": "homepage", "missing": false, "url": "https://matthiasn.github.io/lotti/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:31:30.068577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a7360c5eb5928ca510d41d40c616f099786e07ec64dac47e96bb00738638af8", "fetched_at": "2026-09-03T02:15:14.789973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthiasn/lotti"}, {"content_hash": "768c8fc7e3a7b95b1914c91846cad2e11e0b19c9beafebf00708435c8758d99d", "fetched_at": "2026-08-29T12:35:30.003857+00:00", "kind": "homepage", "missing": false, "url": "https://matthiasn.github.io/lotti/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.789973+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.789973+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.789973+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:31:30.068577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a7360c5eb5928ca510d41d40c616f099786e07ec64dac47e96bb00738638af8", "fetched_at": "2026-09-03T02:15:14.789973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthiasn/lotti"}, {"content_hash": "768c8fc7e3a7b95b1914c91846cad2e11e0b19c9beafebf00708435c8758d99d", "fetched_at": "2026-08-29T12:35:30.003857+00:00", "kind": "homepage", "missing": false, "url": "https://matthiasn.github.io/lotti/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.789973+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.789973+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:31:30.068577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a7360c5eb5928ca510d41d40c616f099786e07ec64dac47e96bb00738638af8", "fetched_at": "2026-09-03T02:15:14.789973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthiasn/lotti"}, {"content_hash": "768c8fc7e3a7b95b1914c91846cad2e11e0b19c9beafebf00708435c8758d99d", "fetched_at": "2026-08-29T12:35:30.003857+00:00", "kind": "homepage", "missing": false, "url": "https://matthiasn.github.io/lotti/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.789973+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.789973+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.789973+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:31:30.068577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a7360c5eb5928ca510d41d40c616f099786e07ec64dac47e96bb00738638af8", "fetched_at": "2026-09-03T02:15:14.789973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthiasn/lotti"}, {"content_hash": "768c8fc7e3a7b95b1914c91846cad2e11e0b19c9beafebf00708435c8758d99d", "fetched_at": "2026-08-29T12:35:30.003857+00:00", "kind": "homepage", "missing": false, "url": "https://matthiasn.github.io/lotti/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.789973+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.789973+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:31:30.068577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a7360c5eb5928ca510d41d40c616f099786e07ec64dac47e96bb00738638af8", "fetched_at": "2026-09-03T02:15:14.789973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthiasn/lotti"}, {"content_hash": "768c8fc7e3a7b95b1914c91846cad2e11e0b19c9beafebf00708435c8758d99d", "fetched_at": "2026-08-29T12:35:30.003857+00:00", "kind": "homepage", "missing": false, "url": "https://matthiasn.github.io/lotti/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:31:30.068577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a7360c5eb5928ca510d41d40c616f099786e07ec64dac47e96bb00738638af8", "fetched_at": "2026-09-03T02:15:14.789973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthiasn/lotti"}, {"content_hash": "768c8fc7e3a7b95b1914c91846cad2e11e0b19c9beafebf00708435c8758d99d", "fetched_at": "2026-08-29T12:35:30.003857+00:00", "kind": "homepage", "missing": false, "url": "https://matthiasn.github.io/lotti/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:31:30.068577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a7360c5eb5928ca510d41d40c616f099786e07ec64dac47e96bb00738638af8", "fetched_at": "2026-09-03T02:15:14.789973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthiasn/lotti"}, {"content_hash": "768c8fc7e3a7b95b1914c91846cad2e11e0b19c9beafebf00708435c8758d99d", "fetched_at": "2026-08-29T12:35:30.003857+00:00", "kind": "homepage", "missing": false, "url": "https://matthiasn.github.io/lotti/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:31:30.068577+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2a7360c5eb5928ca510d41d40c616f099786e07ec64dac47e96bb00738638af8", "fetched_at": "2026-09-03T02:15:14.789973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthiasn/lotti"}, {"content_hash": "768c8fc7e3a7b95b1914c91846cad2e11e0b19c9beafebf00708435c8758d99d", "fetched_at": "2026-08-29T12:35:30.003857+00:00", "kind": "homepage", "missing": false, "url": "https://matthiasn.github.io/lotti/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 100, "rhythm": 95}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3822, "days_push": 0, "days_rel": 38, "gap_med": 3.0, "n_releases_24m": 13}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 3, "stale_scrape": false}}