Version 0.1.0 writes focused-window text to Markdown
Ambient Context sits in the macOS menu bar and polls the accessibility tree of whichever window has focus. New text is appended to a daily Markdown file with the application, title, time span, and document path or URL when available. Repeated lines are deduplicated across the day, and common interface noise is filtered. The capture folder also receives an AGENTS.md file explaining the format to Claude Code or another agent that reads it.
Our checkout at commit 6a353ab contained 77 files and about 2,832 source lines in 11.1 MB. It combines a small React settings interface with a Rust and Swift Tauri backend. The package and Cargo manifests both identify version 0.1.0. That compact size suits a privacy-sensitive utility because a developer can inspect the capture, redaction, pruning, writing, and tray modules without navigating a large service stack.
No screenshots means less data and less recall
The app records accessibility text rather than pixels, video, or audio. This sharply reduces storage and avoids collecting visual material that the user never intends to search. Plain Markdown stays useful without a vendor application: it can be opened, grepped, moved, deleted, or passed to a local model. The tradeoff is coverage. Canvas content, images, video, and text hidden from the accessibility tree never enter the diary.
The measured repository was 11.1 MB, while an installed npm dependency tree occupied 108 MB. That remains modest beside continuous screen-recording systems, though our lab did not measure daily Markdown growth. Deduplication should limit repeated interface text, but the project publishes no retention calculator or storage benchmark. People considering a long-running deployment should capture an ordinary week, inspect file size and usefulness, then set their own deletion schedule.
Accessibility support varies by application
Chromium and Electron applications build their accessibility trees only after a client requests them. Ambient Context enables the relevant mode, then later samples should contain more text than the first seconds. The README warns that Chrome may show a window-resize animation while accessibility is enabled. Terminal.app and iTerm2 work, while Kitty and Alacritty expose little or no text because of their GPU rendering. These limits decide whether the app sees a real working day.
The repository includes a census template for 14 applications and an 8-row Chromium CPU and memory comparison, but every result cell is empty. Its verdict says the coverage has not yet been measured. Our 6-second build cannot fill that gap because the sandbox was a Debian container without macOS Accessibility access. Before relying on the diary, sample the applications that hold your work and classify each result as rich, partial, or empty.
Redaction reduces exposure while plaintext keeps consequences
The stated privacy model excludes password managers and private-browsing windows, skips secure input fields, and scrubs credentials, API keys, and card-shaped numbers before disk writes. Capture pauses while the screen is locked. Background windows, minimized windows, other displays, and the capture folder itself are ignored. The current build makes no network calls, according to the README; a future signed release is expected to add one GitHub update check.
Those controls reduce accidental collection. They cannot promise that every private sentence, client name, proprietary snippet, or novel secret format is removed. After 79 packages installed in 5 seconds, npm audit found 0 known vulnerabilities, which covers disclosed dependency advisories rather than semantic privacy errors. The output remains plaintext owned by the logged-in user. Disk encryption, strict folder permissions, excluded cloud backup, and constrained agent access still matter.
What happened when we ran it
Our run at commit 6a353ab installed 79 npm packages in 5 seconds and used 108 MB on disk. The build completed in 6 seconds. Npm audit reported 0 known vulnerabilities: 0 critical, 0 high, 0 moderate, and 0 low. Tests were skipped because our harness found no test script or target. The fresh Node 22 container had 3 CPUs, 8 GB of RAM, and no secrets.
The checkout had 1 CI workflow file and no tests directory or Dockerfile. The README separately tells Rust contributors to run cargo test, but our supplied lab result includes no Rust test count, so we make no claim about it. The successful web build shows that the checked-in TypeScript compiled. It does not prove that a macOS application bundle was signed, that accessibility capture worked, or that redaction caught representative secrets.
Apple Silicon and self-building narrow the audience
The README requires macOS 14 or newer on Apple Silicon. Building needs Node, Rust, and Xcode Command Line Tools. The resulting .app is unsigned because Apple Developer enrollment is still in progress, and the project offers no notarized release download. Users must build it, move it into Applications, open it, grant Accessibility permission, and choose a capture folder. That is acceptable for early technical testers and unreasonable for an ordinary company-wide rollout.
GitHub showed 112 stars, no open issues or pull requests, a push on August 25, 2026, and no published release. The MIT license permits inspection and modification, but the short public history gives little evidence about response time when macOS changes accessibility behavior. One CI workflow prepares releases; it does not change the current unsigned status described in the README.
Test your daily apps before trusting the diary
If that diary is legible and the redaction behavior matches your risk tolerance, pointing Claude Code at a few selected day files can improve recall without giving it a video archive. If key work happens in unsupported terminals or visual tools, the record will have confident-looking holes. ActivityWatch is the safer general recommendation today. Ambient Context is the more interesting choice for text-rich Mac workflows once you have personally measured what it can see.

