shyn

shyn

Enables AI assistants to search and retrieve memories from your Mac, including screen captures, meeting transcripts, and browsing history, all locally and privately.

Category
访问服务器

README

<picture> <source media="(prefers-color-scheme: dark)" srcset="https://shyn.day/assets/logo-dark.svg"> <img src="https://shyn.day/assets/logo.svg" alt="shyn" width="280"> </picture>

shyn — your Mac's memory, on tap ☀️

Shyn is the always-on memory companion for your Mac. It quietly remembers what you see, hear, and read — your screen, your meetings, your browsing, your notes — and gives your AI assistant total recall over your life. Ask Claude "what did we decide in yesterday's standup?" or "where did I read about that retention bug?" and get an answer grounded in your own history, not the internet's.

100% local. Zero cloud. Private by design. Everything shyn captures lives in an encrypted database on your Mac. Nothing is uploaded, synced, or phoned home — the only bytes that ever leave your machine are the few snippets relevant to a question you chose to ask, sent to the AI you chose to ask it.

Status: pre-alpha. Shyn is young, moving fast, and macOS-only (Apple Silicon). Expect rough edges and breaking changes. Install is a two-command Homebrew cask (brew install + shyn setup) — the apps are self-signed and re-signed locally by shyn setup, not Apple-notarized; notarized one-click installs are on the roadmap.

Why shyn

  • 🧠 Total recall, instantly. Hybrid search — keyword (FTS5/BM25) + semantic (on-device embeddings) — across everything you've captured, in milliseconds, over a local socket.
  • 👁️ Ambient screen memory. A featherweight agent captures the text on your screen as you work — what you read, wrote, and clicked becomes searchable history.
  • 🎙️ Meetings, remembered. Shyn detects your calls, records both sides locally, transcribes on-device with Whisper, and files a speaker-labeled transcript into your memory. Audio never crosses a socket and is purged the moment the transcript lands — text in, bytes gone.
  • 🌐 Your digital trail, connected. Chrome and Safari history and Apple Notes flow in automatically; files and PDFs on demand.
  • ☀️ Glanceable peace of mind. A frosted-glass menu bar companion shows everything is running — one sun in your menu bar, four live states, a pulsing red dot whenever a meeting is being recorded. Never silent, never sneaky.
  • 🔒 Consent-first capture. Recording announces itself and is cancellable in its grace window. Pause everything with one click or shyn pause 30m. Exclude apps. Delete anything — forget is byte-honest: vacuumed, gone, not soft-deleted.
  • ⚡ Instant-on by design. Keyword search works from second zero; the embedding model downloads in the background and results silently upgrade to hybrid. The model is never on the critical path.

How it works

A background daemon owns an encrypted SQLite index (key in your macOS Keychain) and serves JSON-RPC over a unix socket. Capture agents — screen, meetings — and source readers — Chrome, Safari, Apple Notes — feed it. Your AI talks to it through five MCP tools. That's the whole trick: one private index, many memories, any MCP-speaking assistant.

Tool What your AI gets
search_memory(query, …) Hybrid search with provenance — the workhorse
recent_activity(hours?, …) Orientation timeline; great first call on vague questions
remember(content, tags?) Explicit "write this down" memory
forget(doc_id | source | time-range, confirm) Honest deletion; refuses without confirm: true
memory_status() Health, index counts, model download %, connected sources

Quickstart

Install with Homebrew (recommended)

brew install --cask shyn-labs/tap/shyn
shyn setup

Two commands: the cask verifies the download against its pinned checksum, and shyn setup starts everything and walks you through permissions via the ☀️ menu bar window. No Node, no Xcode, no cloning. Read the cask's caveats — they're the honest fine print (local signing, quarantine, EDR). Update later with brew upgrade shyn && shyn setup.

Or build from source (for contributors)

pnpm install

# start the daemon (first run downloads the embedding model in the
# background; search works before that finishes)
pnpm --filter @shyn/daemon start

Register the MCP server with Claude Code:

claude mcp add shyn -- pnpm --dir <path-to-shyn-repo> --filter @shyn/mcp-client exec tsx src/main.ts

Substitute <path-to-shyn-repo> with the absolute path where you cloned this repo (e.g. the output of pwd run from inside it).

Feed it something and ask Claude about it:

pnpm shyn ingest /absolute/path/to/some/folder

Use an absolute path: it's stored as the document's uri. Ingest accepts a single file (.md, .txt, .pdf) or a directory to walk. Pull in browser history and Apple Notes any time with pnpm shyn sync.

Go full companion (daemon + agents + menu bar) — one command

pnpm setup

That's it: installs dependencies, creates a stable local signing identity, builds the daemon bundle + capture agents + status app, and starts everything under launchd. Idempotent — re-run it after every git pull.

Under the hood it stages and starts everything — daemon, screen agent, meeting agent, and the menu bar status app — surviving reboots, logging to ~/Library/Logs/shyn/. Grant the permissions macOS asks for (Microphone + System Audio for meetings; Screen Recording + Accessibility for screen capture; Full Disk Access only if you want Safari/Notes — everything else works without it, no dark patterns, no nagging).

pnpm shyn uninstall           # stop + remove, keep data
pnpm shyn uninstall --purge   # scorched earth: data, logs, keys

Claude Desktop

pnpm build:mcpb produces dist/shyn.mcpb — drag it onto Claude Desktop's Settings → Extensions page. (Registers the MCP client; the daemon must be running via install above.)

Everyday controls

pnpm shyn status                    # daemon + agents + index health
pnpm shyn search "that one thing"   # search from the terminal
pnpm shyn pause 30m                 # pause all capture (2h, until-tomorrow too); resume to undo
pnpm shyn exclude com.1password.1password   # never capture an app
pnpm shyn meeting status                    # live meeting controls (stop | cancel too)

…or skip the terminal entirely and click the ☀️ in your menu bar.

The fine print (we sweat it so you don't)

  • Encryption at rest protects against stolen disks and leaked backups — not against malware running as your own user. We say this out loud.
  • Meetings: channel-based speaker labels (Me: / Others:), 10-second cancellable grace before any recording, 180-minute hard cap, temp audio byte-purged on ingest. Hindi/Hinglish speech currently lands as an English gist (Whisper behavior — documented, not hidden).
  • Sources that need permissions report themselves unavailable with a plain-language reason instead of silently capturing nothing.
  • The eval harness (pnpm eval:keyword, eval:hybrid) runs a synthetic corpus against pre-committed pass/fail bars for CI. It is not a benchmark and its numbers are not an accuracy claim.
  • Accepted gaps and sharp edges live in docs/known-issues.md — honesty is a feature.

What shyn never does

  • Phones home. No telemetry, no analytics endpoint, no crash reporter. There is no server to send anything to.
  • Stores what you searched for. Usage stats are counts in your local database (searches per day as a number — never the query).
  • Ships your content anywhere. When something breaks, run shyn diagnose: it prints a copy-pasteable block of versions, service states, and error-log lines — zero document content — and you choose where to paste it.

License

Elastic License 2.0 (source-available).

In plain words: use it, read it, modify it, share it — personally or at work, for free. What you may not do is sell shyn or offer it to others as a commercial or managed service; that right stays with the project. The full text is one page and worth reading.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选