Philosophy
Your time deserves intention. These principles guide how Presence thinks.
Context is everything
What you should do depends on when it is, where you are, and what kind of day it is. Presence knows the difference.
Transparent reasoning
Every recommendation comes with an explanation. You see exactly why something was suggested — no black boxes.
You stay in control
Presence suggests — you decide. Give feedback, skip, or complete. The system adapts to your choices over time.
Local and private
All data stays on your machine in a local SQLite database. No cloud, no accounts, no telemetry.
Features
Smart suggestions grounded in your actual life
Context-aware engine
Matches activities to your current time of day, location, weekday vs. weekend, and even Danish holidays.
Multi-signal scoring
Priority weight, recurrence urgency, feedback boost, variety bonus, and fatigue penalty — combined into one ranked list.
Explainability
Every recommendation tells you why it was chosen. Understand the reasoning, not just the result.
Flexible recurrence
Daily, weekly, biweekly, every N days, or flexible min/max intervals. Your habits, your rhythm.
Feedback loop
Mark activities as done, skip, or snooze. Presence learns from your responses and adjusts future scores.
Native COSMIC app
Built with libcosmic and Iced. Feels native on Pop!_OS with full desktop integration.
Architecture
Four crates. Clean boundaries. Pure Rust.
presence-app
Application services. Wires domain logic to infrastructure and resolves data directories.
presence-domain
Pure business logic. Models, recommendation engine, scoring, holidays. Zero I/O.
presence-infra
SQLite persistence via rusqlite. Implements domain port traits. Schema migrations and TOML seed data.
How It Works
From context to recommendation in three steps
Infer context
Presence reads the current time, determines if it's a weekday, weekend, or Danish holiday, and identifies your place. This forms the context for scoring.
Score and rank
Each activity is scored by combining priority weight, recurrence urgency, feedback history, variety bonus, and fatigue penalty. Specific context matches beat wildcards.
Present with reasons
The top-ranked activities appear with clear explanations of why they were chosen. You complete, skip, or snooze — and the system learns from your response.
Community
Open source, built for the COSMIC ecosystem