Plain-file notes for Mac and iPhone: daily notes, wiki links, local search, and optional AI over your own Markdown.
Reflect is an open-source note-taking app built around a folder of Markdown
files. It opens to today's note, lets [[wiki links]]
connect people, projects, and ideas, and keeps search and backlinks fast without turning your notes into an app-only database.
The app does not require a Reflect account. Notes live in a folder you choose, and optional services such as AI providers, transcription, iCloud, GitHub, or another git remote are connected directly by the user.
Daily notes: the app opens to today's note, and capture defaults there.Wiki links and backlinks: type[[
to link notes; each note shows what links back to it.Local search:βK
searches notes, backlinks, and tags. Optional semantic search can be enabled locally.Ask your notes:βJ
can query notes through user-provided OpenAI, Anthropic, Google, or OpenRouter keys. Answers cite source notes.Private notes:private: true
excludes a note's content from AI and other external services.Audio memos: record audio and transcribe it into the daily note with a configured transcription provider.Browser capture: save links, selected text, screenshots, and page text from Chrome.Sync choices: use iCloud Drive for file sync, or git/GitHub for versioned backup.CLI:reflect today
,reflect search
, andreflect show
are available for scripts and agents. Seedocs/cli.md.
Install the Mac app. Download the latest release for your Mac:Stable:Apple silicon (M-series)Β·IntelBeta:Apple silicon (M-series)Β·Intel
Each build is signed, notarized, and auto-updated from GitHub Releases. You can also
view all releases. - Install the iOS beta. JoinTestFlight. The iOS app uses the same plain-file graph and sync options as the Mac app. - Install the Chrome extension. AddReflect Capture from the Chrome Web Storeto save the current page, selected text, screenshots, and optional page text from Chrome.
You can also build from source.
See CHANGELOG.md for release notes.
Reflect calls a notes folder a graph. A graph is a folder you can inspect, back up, sync, or edit with other tools:
my-graph/
βββ daily/2026-06-12.md # Daily notes, named by date
βββ notes/some-title.md # Other notes, named from their titles
βββ assets/ # Images and attachments
βββ audio-memos/ # Audio recordings and transcripts
Markdown files are the source of truth. Reflect adds search, backlinks, tags, and related notes on top, but the files remain usable in any Markdown editor.
For simple file sync across Apple devices, create your graph inside an
iCloud-synced folder such as iCloud Drive/ReflectGraph
.
For versioned backup or non-iCloud sync, connect GitHub in the app or add any SSH git remote. Git sync stores the Markdown graph in a repository you control.
By default, note content stays on the device. External calls only happen after you configure a provider, connect a git remote, or use a platform sync service. See docs/privacy.md for the full privacy model.
Prerequisites:
- A recent stable Rust toolchain - Node.js with pnpm10 - Xcode Command Line Tools
git clone https://github.com/team-reflect/reflect-open.git
cd reflect-open
corepack enable
pnpm install
pnpm tauri dev
pnpm tauri build
Reflect is a pnpm/Turborepo monorepo:
reflect-open/
βββ apps/desktop/ # Mac and iOS app
βββ apps/cli/ # `reflect` CLI
βββ apps/extension/ # Chrome capture extension
βββ apps/native-host/ # Browser capture helper
βββ packages/core/ # Shared TypeScript logic
βββ packages/db/ # Database types and helpers
βββ crates/index-schema/ # Shared index schema
βββ design-system/ # Tokens and UI primitives
βββ docs/ # Product, architecture, and contributor docs
See CONTRIBUTING.md, docs/contributing/, and AGENTS.md for conventions and development guides.
Common commands from the repository root:
pnpm dev # Vite only, http://localhost:1420
pnpm typecheck # TypeScript
pnpm lint # oxlint
pnpm test # vitest; use --run path/to/test for one file
pnpm check # typecheck + lint
pnpm --filter @reflect/desktop sidecar
cargo test --workspace
For iOS simulator development:
pnpm tauri:ios:dev "iPhone 17 Pro"
For TestFlight builds:
pnpm release:ios preflight --build-number=123
pnpm release:ios testflight --build-number=123 --wait
Reflect is in beta and used daily. The current focus is the Mac app, iOS companion, browser capture, local-first data model, and sync reliability.
Windows, Android, and a plugin API are out of scope for now. See the V2 product vision and the implementation plans in docs/plans/ for the longer-term direction.
MIT.