Sift is a small macOS app for quickly capturing random thoughts before they disappear, then using AI to distill them into clearer notes, notebook pages, and action items.
- Fast capture from the notch or menu bar: open Sift with the default
Option + Spaceshortcut and jot down whatever is on your mind. - Categorisation with
<topic>:prefixes: write something likework: follow up on launch notesto hint where a thought belongs. Sift highlights the prefix while you type and strongly prefers a matching notebook page during processing. - Forced TODOs with
!prefixes: start a thought with!, for example! follow up with Sam tomorrow at 3pm, to force a todo while still letting the AI extract due dates and other structure. - Thought distillation: AI turns raw thoughts into titles, summaries, tags, related thoughts, daily digests, and markdown notebook pages.
- Todo creation: concrete follow-ups become action items, with due-date inference and optional reminder notifications.
- Raw and distilled library views: search raw thoughts, browse distilled pages, render markdown, move or delete pages, and use AI-powered
Tidyreorganisation. - Flexible AI providers: use an OpenAI-compatible API, or Apple Foundation Models when available on a compatible Mac.
Capture -> Store raw thought -> AI processing -> Pages/actions/digests -> Review in Library
Sift keeps the raw thought intact, then derives structure around it. Processing can classify a thought as a notebook entry, a todo, or both; attach it to a page; generate markdown synthesis; and create actionable tasks when the thought contains a concrete next step.
product: tighten onboarding copy
life admin: renew passport next week
idea: tiny app for turning voice notes into briefs
Open Sift.xcodeproj in Xcode and run the Sift scheme.
You can also build and install the app from the repo root:
./scripts/install-app.shFor iterative development, use the reload script:
./scripts/dev-reload.shTo rebuild and relaunch once without watching for changes:
./scripts/dev-reload.sh --onceThe install scripts place the app at ~/Applications/Sift.app by default and replace that app if it already exists.
Run the test suite from the repo root:
./scripts/test.shOpen Sift from the menu bar, go to Settings, and enable AI processing.
For the OpenAI-compatible provider, configure the API base URL, API endpoint, model, and API key source. You can enter an API key directly or read a named environment variable. The default base URL is:
https://api.openai.com/v1
You can also choose Apple Foundation Models on a compatible macOS 26 Apple Intelligence setup.
Environment variables from .zshrc, .bashrc, or other shell startup files are not visible to Sift through the normal app process environment when it is launched from Finder, Spotlight, or Login Items. When env-var mode is selected, Sift reads the configured variable name, such as OPENAI_API_KEY, from the app environment first and then asks your login shell for it at startup. Shell-loaded keys are kept in memory and are not saved to Keychain.
- Raw thoughts are stored locally as JSON under
~/Library/Application Support/Sift/. - API keys are stored in Keychain, with a protected local fallback if Keychain storage is unavailable.
- Thoughts are sent to the configured AI provider only when AI processing is enabled.
- macOS target: 26.0
- Xcode with the macOS 26 SDK
- Swift package dependencies resolved by Xcode:
KeyboardShortcutsandswift-markdown
Sift was created entirely with Codex and GPT-5.5.
