CatchMe CLI
Local screen memory for agents: CatchMe records windows, keystrokes and clipboard, then answers questions about that history.
- 520 ★ on the repository
- Last commit
- Apache-2.0
Broad access
Why this level
- Continuously records keystrokes, clipboard and screenshots, including passwords and private messages.
- A cloud summary provider receives activity descriptions and screenshots.
Install
- Works in
Manual install
git clone https://github.com/HKUDS/catchme.git && cd catchme
conda create -n catchme python=3.11 -y && conda activate catchme
pip install -e .The first README Install block: clone, a conda environment with Python 3.11 and the package install.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- Continuously records keystrokes, clipboard and screenshots, including passwords and private messages.
- A cloud summary provider receives activity descriptions and screenshots.
This is third-party code. Review the repository files before installing.
What it does
CatchMe is a background program that records activity on a computer: window changes, keystrokes, mouse, screenshots, clipboard and notifications. Events are organised into a tree of day, session, app, location and action, and a language model writes short summaries at each level. An agent reaches that history three ways: the `catchme ask` command, the light skill `CATCHME-light.md`, or the `catchme mcp` server with four tools. Raw data stays local in `~/data/`. The summary model is set in `catchme init`: a cloud provider such as OpenRouter, or local Ollama, vLLM and LM Studio.
Who it is for. Developers and researchers who ask an agent to recall what they did at the computer: files edited, pages read, text typed.
Good fit when
- An agent recalls what you worked on yesterday in Claude Code.
- At day end you need the list of files you edited.
- A week-old article or search query is found through window history.
- A daily recap is built from app and session summaries.
Not a fit when
- The screen shows other people's passwords, chats or documents that must not be recorded.
- A cloud model for summaries is off the table and no local image-capable model exists.
- Work happens on Linux and keyboard capture matters: it is not implemented there.
Example request
What did I do in Claude Code this afternoon? Name the files I changed.Limitations
The program records keystrokes, clipboard and screenshots, so history may contain passwords and private messages. With a cloud provider the summary material goes to it; with a local model it stays on the machine. The model must handle images, and token use is capped with `llm.max_calls`. macOS needs Accessibility, Input Monitoring and Screen Recording permissions, Windows needs an administrator run, Linux supports X11 only. Python 3.11 or newer is required.
How to disable. Stop the `catchme awake` process, remove the skill from `~/.cursor/skills/catchme/` and the `catchme` section from the MCP configuration. Collected data sits in `~/data/` and is deleted separately.
FAQ
How do I connect CatchMe to an agent?
Pick the skill or MCP. For the skill, start `catchme awake` and copy `CATCHME-light.md` to `~/.cursor/skills/catchme/SKILL.md`. For MCP, run `pip install 'catchme[mcp]'` and add the `catchme` command with the `mcp` argument to the client configuration.
Which tools does the MCP server expose?
Four: `search_activity` answers questions about history, `list_days` shows recorded days, `get_session` opens a session, `get_tree` returns the tree for a date. The `catchme awake` process must be running.
Does data go to the cloud?
Raw data stays in `~/data/`. A cloud provider receives the summary material if you pick one. With Ollama, vLLM or LM Studio the program runs offline.
How does the full skill differ from the light one?
The light skill only reads history while `catchme awake` runs. `CATCHME-full.md` hands the agent the whole lifecycle: it starts and configures the program itself.
Which systems are supported?
macOS, Windows and Linux. macOS needs Accessibility, Input Monitoring and Screen Recording permissions, Windows needs an administrator run. Linux supports X11 only and keyboard capture is not implemented.
Discussion
No questions or reviews yet.
Related
CLI toolsLocal screen and audio recording with natural language search, feeding your activity history to an agent via MCP
A macOS app that remembers your screen and opens the history to agents over MCP: search, days, work threads, screenshots.
A macOS menu bar app writes the text of your focused windows into markdown, and its MCP server serves that record to agents
Minutes
minutes
A local-first MCP server for meeting memory: on-device recording and transcription into Markdown, searchable from Claude Code, Codex, Cursor and any MCP client
A local web panel where your agent builds widgets and screens on top of project files, APIs and MCP servers
A local MCP server that lets the agent ask you questions in the console and notify you when a task is done
README in short
The documentation has three stages: event capture, building the activity tree, and searching it without a vector database. The model walks summaries top-down, picks branches and opens raw data such as screenshots. A separate section covers provider setup and filter parameters.