TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
Eavesy는 Mac용 로컬 AI 어시스턴트로 텍스트·스크린샷·음성 등을 입력해 깔끔한 마크다운으로 변환한다
Eavesy is a local, AI-first assistant for Mac. Drop in text, screenshots, dictation and recordings; paste clean Markdown into any AI agent or use it over MCP.
생산성TypeScript · RustGitHub @williamrogersdev온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Meeting recorder and dictation workspace: a macOS capture app plus a web dashboard on Cloudflare Workers.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Drop anything in, get clean Markdown context out for Claude, Cursor, ChatGPT, or any AI agent.
Mac app (Apple silicon, macOS 13 Ventura or later):
brew install --cask williamrogersdev/eavesy/eavesy
Or download the DMG, open it, and drag Eavesy into Applications. The app updates itself.
Web app: eavesy.com works in any browser, no install.
Connect your agent: create an MCP connection in the web app's Settings, then paste the config it shows into your agent:
{
"mcpServers": {
"eavesy": {
"type": "http",
"url": "https://mcp.eavesy.com",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}
See Installing the Mac app and Connect an agent over MCP for permissions and the available tools.
Eavesy turns what you drop into it into clean, structured Markdown context that is quick to copy into Claude, Cursor, ChatGPT, or any agent, or to reach over MCP. It is local-first: your captures live on your disk as Markdown and JSON.
What ships today:
desktop/): from the launcher, press ⌘V to save text or an image
from your clipboard, write a note or take a screenshot (once you sign in,
these sync to your other Macs), or dictate and record (these upload for
transcription once you sign in) your screen,
system audio, and microphone. Everything is mirrored to
~/Eavesy/Recordings as Markdown, JSON, and media files.web/): dashboard, browser recorder, search, summaries and
transcripts you can copy or export as Markdown, and settings, including
connecting your own OpenRouter account.workers/mcp): tools to search and read everything
in your account (recordings, dictations, notes, screenshots and other
captures) and fetch summaries, transcripts and action items. With write
access, agents can also save notes, tick off action items, and rename or
file items under projects. The same tools are a REST API at
mcp.eavesy.com/v1 (OpenAPI at /v1/openapi.json), and signed webhooks
fire when a recording finishes or a dictation, note or capture is saved.Meeting recording is one capability, not the whole product. Not shipped yet: forwarding messages and orders from other apps, live captions, and the cross-device "drops" work. See the roadmap.
Eavesy is free to use. Everyone gets the same daily limits; see Fair-use limits for the numbers and how to change them when self-hosting.
| Concern | Implementation |
|---|---|
| Web app | TanStack Start + React 19 on Cloudflare Workers |
| Authentication | Clerk |
| Relational data | Cloudflare D1 + Drizzle |
| Audio | Cloudflare R2 |
| Segment processing | Cloudflare Queues |
| Transcription | Workers AI Whisper Large v3 Turbo |
| Summaries | Anthropic |
| Semantic search | Workers AI embeddings + Vectorize |
| Hosted MCP | Streamable HTTP Worker at mcp.eavesy.com |
| macOS app | Tauri 2 + Rust + Swift/ScreenCaptureKit |
Long recordings are divided into roughly four-minute AAC/M4A segments, with a five-minute hard cap. Each segment is persisted locally before it is uploaded. The processing worker transcribes segments asynchronously, periodically updates rolling notes, and generates the final summary and embedding after recording stops. D1 stores session state; no live-recording Durable Object is required.
eavesy/
├── web/ # TanStack Start web app and authenticated APIs
├── workers/
│ ├── processing/ # Queue consumer, finalization, and cleanup cron
│ └── mcp/ # Hosted MCP server and REST API (/v1)
├── desktop/
│ ├── launcher-ui/ # Offline launcher UI bundled with Tauri
│ ├── src-tauri/ # Rust state, durable uploads, and filesystem mirror
│ └── swift-audio/ # macOS microphone + system-audio capture sidecar
└── docs/
├── ARCHITECTURE.md # How the services fit together
├── SELF_HOSTING.md # Run your own instance; local dev mode
├── DEPLOY.md # Cloudflare deploy runbook
└── OPERATIONS.md # Alerts, metrics and recovery
Prerequisites: Bun, Rust stable and Xcode Command Line Tools. No Cloudflare or Clerk account is needed to run the web app locally:
cd web && bun install
bunx wrangler d1 migrations apply eavesy --local
EAVESY_LOCAL_TEST=1 bun run dev
See docs/SELF_HOSTING.md for what the local mode stubs and how to deploy your own instance on Cloudflare.
Useful checks from the repository root:
bun run build
bun run typecheck
bun run lint
bun run test
cd workers/processing && bun run typecheck && bunx wrangler deploy --dry-run
cd ../mcp && bun run typecheck && bunx wrangler deploy --dry-run
cd ../../desktop/src-tauri && cargo check
Type checks use pinned tsrs in web, both Workers, and the Worker test suite.
bun run typecheck:tsc provides the TypeScript fallback; bun run typecheck:bench
compares both compilers across all four configurations. See
benchmark results.
For the macOS launcher and capture sidecar:
cd desktop
./scripts/prebuild.sh
cd src-tauri
bunx @tauri-apps/cli build --debug --no-bundle
Apply D1 migrations before deploying code, then deploy the processing worker, MCP worker, and web worker in that order:
bun run db:apply:remote
bun run deploy:processing
bun run deploy:mcp
bun run deploy
See docs/DEPLOY.md for resource provisioning, secrets, metadata indexes, smoke tests, rollback, and desktop publishing. Desktop build and signing steps are in desktop/BUILD.md.
desktop/scripts/build-macos-release.sh
desktop/scripts/release-macos.sh --publish # notarize, upload to eavesy.com
scripts/publish-github-release.sh # tag desktop-vX.Y.Z + GitHub Release
packaging/homebrew/bump-cask.sh # then copy the cask to the tap repo
The Homebrew tap's source lives in packaging/homebrew/.
Eavesy is licensed under the Apache License 2.0. Versions released before the switch to Apache-2.0 remain available under their original FSL-1.1-ALv2 terms.
Contributions are accepted under the same license; see CONTRIBUTING.md.