explaingit

nossa-y/activity-frames

Analysis updated 2026-05-18

241PythonAudience · developerComplexity · 3/5LicenseSetup · easy

TLDR

Local, no-cloud tool that records your screen, compiles it into structured activity episodes, and serves them to AI agents over MCP as episodic memory.

Mindmap

mindmap
  root((repo))
    What it does
      Records screen locally
      Compiles activity frames
      Serves memory over MCP
    Tech stack
      Python
      MCP
      screenpipe
    Use cases
      Give an agent context on your day
      Detect repetitive workflows
      Summarize app and site usage
    Audience
      Developers
      AI agent builders
    Setup
      pip install activity-frames
      Run aframes record

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Feed an AI agent a compact summary of what you did over the last few hours.

USE CASE 2

Connect activity-frames as an MCP server to Claude Code for daily context.

USE CASE 3

Detect repetitive workflows or habits from your recorded activity patterns.

USE CASE 4

Build a daily briefing tool on top of local, privacy-preserving activity data.

What is it built with?

PythonMCPSQLite

How does it compare?

nossa-y/activity-framesdasterprokio/awesome-ai-companionkocasariumut/faceanything
Stars241240243
LanguagePythonPythonPython
Setup difficultyeasyeasyhard
Complexity3/51/54/5
Audiencedevelopervibe coderresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Best supported on Apple Silicon Macs, Intel macOS and Linux builds exist but are less tested.

In plain English

Activity frames gives an AI agent a memory of what you have actually been doing on your computer, not just what you have typed into a chat. Normally an agent starts every conversation blind, with no idea what you worked on in the last few hours. This tool records your screen locally, turns that raw recording into structured summaries of your activity, and hands those summaries to any agent that supports MCP, a common protocol for connecting tools to AI models. Instead of storing thousands of raw screenshots, the tool compiles your activity into what it calls frames: short episodes describing what app you were in, which website you visited, what kind of page it was, how long you spent there, and how much you typed or clicked, all without any guessing about your intentions. That structured episode can then be turned into a short block of plain text describing your day, something like a timeline of which apps and sites you used and for how long, which can be pasted straight into an agent's prompt so it understands your recent context. The project is explicit about honesty in what it reports. Anything derived automatically and deterministically from the raw recording is labeled as measured, while anything involving interpretation or guessing, such as figuring out that a series of page visits meant you were job hunting, is treated as a separate, clearly labeled and optional layer, so facts and guesses never get mixed together silently. Everything happens entirely on your own machine. Nothing is uploaded anywhere, no cloud service is involved, and no language model is used to produce the memory itself, only plain code, although the underlying screen capture tool does use on device text recognition to read what appears on screen. Typed text content is excluded from output by default unless you explicitly turn it on. Setup involves installing the tool through pip, starting the recorder, and either using its command line tools or connecting it to an agent like Claude Code as an MCP server. It currently runs best on Apple Silicon Macs, with less tested support for Intel Macs and Linux.

Copy-paste prompts

Prompt 1
Help me install activity-frames and start recording my screen locally.
Prompt 2
Add activity-frames as an MCP server to Claude Code and show me get_context in action.
Prompt 3
Explain the difference between measured and inferred data in activity-frames' two-tier model.
Prompt 4
Show me how to use the Python ActivityLog class to get the last 2 hours of context.
Prompt 5
Walk me through the privacy model, including what stays local and what gets excluded by default.

Frequently asked questions

What is activity-frames?

Local, no-cloud tool that records your screen, compiles it into structured activity episodes, and serves them to AI agents over MCP as episodic memory.

What language is activity-frames written in?

Mainly Python. The stack also includes Python, MCP, SQLite.

How hard is activity-frames to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is activity-frames for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.