Ambient Context MCP
A macOS menu bar app writes the text of your focused windows into markdown, and its MCP server serves that record to agents
- 207 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- The app reads the focused window's text, including mail and chat, and stores it in files that may hold sensitive data
- The filter for passwords, keys and cards works by heuristics, so complete scrubbing is not guaranteed
- Through MCP an agent reads the whole record and can start and stop capture, so it sees the content of your mail and documents
Install
- Works in
Manual install
claude mcp add --scope user --transport stdio ambient-context -- "/Applications/Ambient Context.app/Contents/MacOS/ambient-context" mcpReady snippets for Claude Desktop, Cursor, Zed and other stdio clients are in `docs/mcp.md`.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The app reads the focused window's text, including mail and chat, and stores it in files that may hold sensitive data
- The filter for passwords, keys and cards works by heuristics, so complete scrubbing is not guaranteed
- Through MCP an agent reads the whole record and can start and stop capture, so it sees the content of your mail and documents
This is third-party code. Review the repository files before installing.
What it does
Ambient Context is an open-source macOS menu bar app. While the eye icon is open, it reads the focused window's text every few seconds through the accessibility tree and appends it to the day's markdown files in a folder you chose. There are no screenshots, no video and no OCR, only text from the system accessibility interface. At a time you set, or when you press Process day, an agent you already have (Claude Code, Codex or opencode) turns the record into two things: a six-page knowledge base with links back to blocks of the record (people, commitments, threads, products, issues, reading) and a written summary of the day. The app itself never calls a model. The same binary runs as an MCP server started with the `mcp` subcommand over stdio. Twenty tools read days, search the record, serve the knowledge base and summaries and control capture: `list_days`, `read_day`, `read_summary`, `read_kb`, `search_record`, `start_capture`, `stop_capture` and others. Read tools work with the app closed, tools that change state go through the running app, and each write lands in the day's ledger with the client's name. In settings you can install five skills: catch me up, standup, weekly review, tune rules and the shared core loop.
Who it is for. Apple Silicon Mac users who spend the day reading mail, tickets and documents and want an agent to know it without pasting.
Good fit when
- By 4pm an agent needs the day's context: mail, tickets and calls that lived only on your screen
- In the morning you want to recall quickly what you worked on yesterday and get standup notes
- You need to find which tab or file held a quote and open the source document
- You want a knowledge base about people and commitments where each claim points to a block of the record
- A weekly review is built from daily summaries without manual work
Not a fit when
- An Intel computer or macOS older than 14: the app targets Apple Silicon and macOS 14 or newer
- Work happens in Kitty or Alacritty terminals or in apps with no accessible text: they expose little or nothing
- The screen constantly shows secret material or other people's personal data that must not be recorded even locally
- You need audio, video or screenshot capture: the app reads text only
Example request
Prepare standup notes from yesterday: what I worked on, who I agreed with and which commitments remain.MCP
- Transport
- stdio
- Authentication
- not required
Limitations
It needs an Apple Silicon Mac with macOS 14 or newer and the Accessibility permission. Chromium and Electron apps (Chrome, Slack, VS Code, Obsidian, Figma) build their accessibility tree on first contact, so the first seconds of capture in them are incomplete. GPU-rendered terminals such as Kitty and Alacritty expose little text, while Terminal.app and iTerm2 work.
Passwords in secure fields, password managers and private browser windows are not recorded, and strings shaped like keys and card numbers are replaced with `[redacted]`. The author calls this a heuristic rather than a guarantee: treat the record folder as sensitive. The connected agent and a synced folder (iCloud, Dropbox) are separate trust decisions.
How to disable. Click the eye icon in the menu bar: recording stops and stays off across restarts. `claude mcp remove ambient-context` removes the server from Claude Code. Recorded days are ordinary markdown files in your folder and can be deleted like any files.
FAQ
How do I connect Ambient Context to Claude Code?
Install the app from the DMG and run `claude mcp add --scope user --transport stdio ambient-context -- "/Applications/Ambient Context.app/Contents/MacOS/ambient-context" mcp`. For Claude Desktop, Cursor and Zed, `docs/mcp.md` has ready config snippets.
What exactly is recorded?
The focused window's text from the accessibility tree, no more than once every few seconds and never while the screen is locked. No screenshots, video or OCR. Each block keeps time, app and the file path or page address where the app exposes one.
Where does the data go?
Nowhere: the app has no account, server or telemetry, and the update check reaches only GitHub Releases. The record lives in your folder. Data leaves only to the agent you yourself connect to process the day.
Do I need a separate key or a paid model?
No: the app calls no models itself. Your agent (Claude Code, Codex or opencode) builds the knowledge base and summary on your subscription, and you can pick a cheaper model for the long input and a stronger one for the summary.
What do the skills from settings do?
Five skills (catch me up, standup, weekly review, tune rules and the shared loop) are installed into `~/.claude/skills/` and `~/.agents/skills/` so the agent knows when to reach for the record. Claude Code, Cursor, Codex, Zed, Copilot, Gemini CLI, Goose and OpenCode read them.
Discussion
No questions or reviews yet.
Related
MCP serversA macOS app that remembers your screen and opens the history to agents over MCP: search, days, work threads, screenshots.
A local Markdown note base with an MCP server and skills: Claude Code, Cursor, Codex and Gemini CLI all read the same context
A macOS app keeps a private work timeline, and its local MCP server tells an agent what you did and what is unfinished.
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
An MCP server that lets an agent work on your computer: terminal and long-running processes, file search and edits, Excel, PDF and DOCX
A macOS app that gathers your knowledge into a Markdown folder and optionally opens it to AI clients through an encrypted MCP mirror with two tools
README in short
The description starts with the problem: the day's context stays on screen and never reaches the assistant. It then shows what a day looks like on disk (`apps.md`, `websites.md`, `messages.md`, the `KB/` knowledge base, `Summaries/`), how to start capture and which privacy rules apply. The trust boundary is detailed in `docs/privacy-and-security.md`.