ambient-context logo

ambient-context

A menu bar app that keeps a written record of what you worked on.

RustDeveloper ToolsRustMIT 140 8
GitHub

What is it?

What it is

Ambient Context is a macOS menu bar application, built with Tauri (Rust backend, web frontend), that periodically reads the text of the currently focused window via the macOS accessibility API and appends it to a daily markdown file in a user-chosen folder, producing a personal activity log intended to be consumed by an LLM agent.

Why it exists

The project exists to give individuals a private, machine-readable record of what they worked on each day so that their own LLM coding agents (e.g., Claude Code) can answer questions like 'what did I work on Tuesday?', build long-term project memory, or generate standups — without sending any data off the device, taking screenshots, or bundling a proprietary model.

Who should use it

macOS users on Apple Silicon who want a privacy‑first, self‑hosted tool to capture their work sessions for LLM consumption; developers comfortable with building from source; power users who value a plain‑text, searchable record of their daily activities.

Who should avoid it

Windows or Linux users; users who expect a pre‑compiled, notarized binary; those who prefer a zero‑setup installer; individuals uncomfortable with Rust/Node build pipelines or who need automatic updates.

How it works

A quick walkthrough in plain English

How ambient-context works

Step 1 of 3

You interact with it

Open ambient-context, send a request, or connect it to your stack.

Features

Menu bar app with visual eye indicator (open=recording, closed=stopped)
Reads focused window text via macOS accessibility API every few seconds
Outputs plain markdown files organized by day in a user-chosen folder
Redacts passwords, API keys, and card-shaped numbers before writing
Excludes password managers and private browsing windows entirely
Skips secure input fields at the accessibility level
Deduplicates lines across the day to keep files small
Filters out interface junk and records document path/URL
Includes AGENTS.md documentation explaining format for LLMs
Right-click menu provides access to today's file, folder, and settings
No network calls, no telemetry, no external services
Capture folder is excluded from observation (cannot record itself)
Works with Claude Code or any other LLM agent

Advantages

  • Text-only capture preserves privacy—no screenshots or video
  • All data remains local on your machine with no external servers
  • Plain markdown files are portable, searchable, and user-controlled
  • Enables LLMs to answer 'what did I work on Tuesday?' or build memory
  • Deduplication keeps output files small enough to feed to LLMs entirely
  • Built-in redaction handles sensitive data before it touches disk
  • Helps automate standup writing and project context for agents
  • Clear privacy model with multiple exclusion layers
  • Cross-platform format (markdown) works with any tool

Disadvantages

  • Requires macOS 14+ on Apple Silicon only
  • Early-stage software without signed/notarized releases
  • Chromium and Electron apps have thin initial capture that fills in later
  • GPU-rendered terminals (Kitty, Alacritty) expose little or no text
  • Must grant Accessibility permission for any functionality
  • Build-it-yourself requirement for current version
  • Only captures focused window—not background, other displays, or minimized windows
  • Some apps may show glitchy resize animations during enabled capture
  • Limited to macOS ecosystem with no Windows or Linux support

Installation

native

git clone https://github.com/dragthelake/ambient-context && cd ambient-context && npm install && npm run tauri build

FAQ

How do I install and run Ambient Context on my Mac?

Clone the repo, install Node, Rust, and Xcode command‑line tools, then run `npm install` and `npm run tauri build`. The app will be placed in `src-tauri/target/release/bundle/macos/`. Drag `Ambient Context.app` to Applications and open it. For development you can use `npm run tauri dev`.

What accessibility permission does Ambient Context require, and why?

It needs the Accessibility permission so it can read the text of the focused window via the macOS accessibility tree. Without this permission the app cannot capture anything, and the settings window will block until you grant it.

Where does Ambient Context store the captured markdown files, and can I change the location?

By default it saves to `~/Ambient Context` (deliberately outside `~/Documents` to avoid iCloud sync). You can choose a different folder in the settings window; the app will create one file per day in whatever directory you specify.

How does Ambient Context protect my privacy and sensitive data?

It only reads the currently focused window, never background or minimized windows, and never while the screen is locked. Password managers and private‑browsing windows are excluded, secure input fields are skipped at the accessibility level, and credentials, API keys, and card‑number patterns are scrubbed before writing. All output stays as plain markdown on your own disk, with no network calls or telemetry.

What kind of apps are captured well, and what are the known limitations?

Chromium and Electron apps (Chrome, Slack, VS Code, Obsidian, Figma, etc.) build their accessibility tree on demand, so the first few seconds of capture can be thin and fill in later. GPU‑rendered terminals like Kitty or Alacritty expose little or no text; Terminal.app and iTerm2 work reliably. The `docs/census.md` file in the repo provides a template for reporting which apps capture well or poorly.

Loading documentation…
View on GitHub

Featured in Videos

YouTube tutorials and walkthroughs for ambient-context

Alternatives

Similar projects ranked by category, topics, and text overlap.

Compare
ambient-context | MushyBook