Activity Analysis
Nareli captures and analyzes your desktop activity to automatically suggest time entries, helping you account for every productive minute of your day.
Overview
Activity analysis is Nareli's desktop-aware intelligence layer. While the Slack integration captures work context from conversations, activity analysis focuses on what you are actually doing on your Mac: which applications you use, which windows are in focus, and how your work sessions flow throughout the day. By observing your desktop activity, Nareli can identify periods of focused work and generate time entry suggestions that fill the gaps in your manual tracking. The result is a more complete and accurate timesheet with significantly less manual effort. Activity analysis is especially valuable for developers, designers, and other knowledge workers who frequently switch between tools and may lose track of where their time goes. Like all of Nareli's AI features, activity analysis runs entirely on your local machine. Your activity data is never transmitted to any external server, and the AI processing happens through a locally-running Ollama model. You maintain complete control over your data at all times.
How Activity Capture Works
Nareli captures desktop activity through the Tauri application layer, which has access to system-level information about active windows and applications. The capture process records metadata about your active application, including the application name and window title, at regular intervals. This metadata is stored locally in Nareli's database as activity records. Each record includes a timestamp, the application name, and the window title. For example, a record might show that at 2:15 PM you had VS Code open with the file "api/routes/users.ts" in focus, followed by Chrome with a GitHub pull request page at 2:45 PM. The capture is lightweight and unobtrusive. It does not record screen contents, keystrokes, mouse movements, or any other granular input. Only the application name and window title are captured, providing enough context for the AI to understand what you were working on without collecting sensitive information. Activity records accumulate throughout your workday, creating a timeline of application usage that the AI analysis processor can interpret during its scheduled runs.
Activity capture requires accessibility permissions on macOS. Nareli will prompt you to grant these permissions in System Settings on first launch. Without them, activity data cannot be collected.
AI-Powered Activity Classification
Raw activity records, a stream of application names and window titles, are not directly useful for time tracking. The AI classification step transforms this raw data into meaningful work sessions by grouping related activities, identifying project context, and inferring what task you were working on. The classification process runs on a configurable interval, typically every ten minutes. When it runs, the analysis processor collects all unprocessed activity records since the last run and sends them to the local Ollama model along with your current project and task context. The AI reads the sequence of applications and window titles and infers coherent work sessions. For example, if your activity log shows VS Code with a file in the "nareli-api" project, followed by a terminal running tests, followed by Chrome on the GitHub repository for the same project, the AI will classify this entire sequence as a single work session on the Nareli API project. It can even identify the specific task you were working on if the window titles or file names provide enough clues. The classification accounts for brief interruptions. If you check Slack for two minutes in the middle of a 45-minute coding session, the AI will not split that into three separate sessions. It understands that brief context switches are a normal part of knowledge work and groups the surrounding focused periods together.
The quality of classification improves with descriptive task and project names. The AI uses your task list as reference context, so clear naming helps it match activities to the right tasks.
Time Entry Suggestions from Activity
Once activity has been classified into work sessions, the analysis processor generates time entry suggestions (timeentry_create type). Each suggestion proposes a time entry with a start time, end time, duration, associated task, and a description summarizing the work performed. These suggestions are generated specifically for periods that are not already covered by manual time entries. The processor is aware of your existing timesheet and only suggests entries for gaps, times when activity was detected but no time entry was logged. This means the system complements your manual tracking rather than duplicating it. Suggested time entries are conservative by default. The AI rounds durations to reasonable increments and avoids suggesting entries for very short activity bursts that might not represent meaningful work. If your activity shows five minutes of email followed by ten minutes of browsing, the system will not suggest a time entry for that period. It focuses on substantial work sessions that are worth tracking. Each suggestion includes a description derived from the activity data, such as "Development work in VS Code on api/routes/users.ts" or "Code review on GitHub PR #247 for website project." These descriptions give you enough context to evaluate the suggestion quickly and modify the description if needed before accepting.
Activity-based suggestions appear alongside Slack-based suggestions in both the Suggestions page and the day view. They are visually identical and follow the same accept/decline workflow.
Reviewing Suggestions in the Day View
The day view is the most intuitive place to review activity-based time entry suggestions. When you open the time entries page for a specific date, suggestion blocks appear on the timeline in their proposed time slots, visually integrated with your confirmed time entries. Activity-based suggestion blocks display the proposed time range, the inferred task and project, and the AI-generated description. Their visual styling distinguishes them from confirmed entries, typically using a lighter or outlined appearance, so you can immediately see which parts of your day are tracked and which are suggested. Reviewing suggestions in the day view has a significant advantage: spatial context. You can see exactly where a suggested entry fits in your day relative to your existing entries. If the AI suggests a 2-hour development session from 10:00 to 12:00, and you can see that you already have a meeting logged from 10:30 to 11:00, you can adjust the suggestion's time range before accepting it. To accept a suggestion from the day view, click the accept button on the suggestion block. You will have the opportunity to review and modify the details, including the time range, task, and description, before confirming. To decline, click the decline button and the suggestion block disappears from the timeline.
Activity Groups and Summaries
Beyond individual time entry suggestions, Nareli provides activity groups and summaries that give you a higher-level view of how you spent your day. Activity groups cluster related activities together by project or application category, showing you the total time spent in each context. The activities-by-date view on the dashboard shows a breakdown of your desktop activity for any given day. You can see at a glance how much time you spent in development tools versus communication apps versus browsers. This bird's-eye view is valuable for understanding your work patterns even if you do not accept every individual time entry suggestion. Activity summaries aggregate this data over longer periods, feeding into your weekly reports and productivity statistics. If you want to understand how your time allocation has shifted over the past month, the activity data provides an objective, automated record that does not depend on your manual tracking discipline. The daily summary combines activity data with your confirmed time entries to present a complete picture of your day. Tracked time shows what you have logged, and activity data fills in the context for periods you may not have tracked, giving you a holistic view of your productive output.
Activity groups are calculated based on your timezone, so the daily breakdown aligns with your actual workday boundaries regardless of your location.
Privacy and Local Data
Activity analysis is built on Nareli's local-first privacy model. Every piece of activity data, from the raw window title captures to the AI-classified work sessions to the generated suggestions, is stored exclusively on your local machine in Nareli's SQLite database. The AI classification runs through a locally-installed Ollama model. Your activity data is sent to the local Ollama instance for inference, and the results are stored back in the local database. No activity data, classification results, or usage patterns are transmitted to any external server. There is no cloud component, no telemetry, and no remote analytics. You have full control over your activity data. You can view all captured activity records on the dashboard, delete individual records or entire days of data, and disable activity capture entirely in Settings. The data is yours, and Nareli provides the tools to manage it as you see fit. The activity capture is also transparent about what it collects. It records only application names and window titles. It does not capture screenshots, screen recordings, keystrokes, clipboard contents, or any other form of detailed user input. This minimal data collection provides enough context for useful AI analysis while respecting the boundary between productivity tracking and surveillance.
If you work with sensitive information in certain applications, you can configure exclusions to prevent those applications from being captured in the activity log.
Configuration and Running Interval
The activity analysis processor runs on a configurable interval, with the default set to every ten minutes. This interval balances timeliness, so suggestions appear relatively quickly after you finish a work session, with efficiency, so the AI is not constantly running and consuming system resources. You can adjust the analysis interval in Settings under the Services tab. A shorter interval means suggestions appear sooner but uses more CPU time for AI inference. A longer interval conserves resources but delays the appearance of suggestions. For most users, the ten-minute default provides a good balance. The activity capture itself runs continuously while Nareli is open, recording application metadata at regular short intervals. The capture interval is separate from the analysis interval: activity is always being recorded, but the AI analysis only processes accumulated records at the configured analysis interval. The entire activity analysis pipeline can be enabled or disabled independently of other Nareli features. If you only want to use manual time tracking and Slack integration without desktop activity analysis, you can turn it off in Settings. Conversely, you can use activity analysis without the Slack integration if desktop activity is your preferred data source for AI suggestions. The processor's status is visible in the system status indicator in Nareli's interface. You can see whether the analysis processor is currently running, idle, or queued, and monitor the number of pending items in the analysis queue. This transparency helps you understand the system's behavior and troubleshoot if suggestions are not appearing as expected.
The analysis processor is smart about resource usage. It will not run inference if there are no new activity records to process, and it backs off during periods of high system load to avoid impacting your work.
Related Documentation
AI Suggestions
Nareli's AI-powered suggestion system analyzes your work patterns and generates intelligent recommendations for tasks, time entries, and workflow improvements.
Time Tracking
Master Nareli's time tracking system — from the floating timer bar with animated state indicators to the day, week, and month views. Learn how to create, edit, and organize time entries efficiently.
Slack Integration
Connect Slack to Nareli to automatically capture work context from your conversations and generate intelligent task and time entry suggestions.
On this page