Thank you for helping improve Parcel. This is an MIT-licensed, SwiftUI-first, local-first macOS app — part of the Parable ecosystem.
- Read AGENTS.md for glossary, architecture constraints, and build decisions.
- Skim docs/architecture.md if your change touches Capture, Editor, or export.
- For Capture/recording/Vision changes, plan to run docs/QA_CHECKLIST.md.
Non-negotiable: no network LLM or AI calls. On-device Apple frameworks only.
brew install xcodegen
git clone https://github.com/bswxyz/notable.git
cd notable
xcodegen generatexcodebuild -project Parcel.xcodeproj -scheme Parcel -configuration Debug \
-derivedDataPath .derivedData build CODE_SIGN_IDENTITY="-" CODE_SIGNING_ALLOWED=YES
open .derivedData/Build/Products/Debug/Parcel.appGrant Screen Recording on first Capture, then quit and reopen Parcel.
cd Website && npm ci && npm run dev- Keep diffs focused — one concern per PR when possible.
- Match existing naming and patterns in the surrounding code.
- Use canonical glossary terms (Capture, not screenshot; Annotation, not shape).
- Do not regress the render pipeline: on screen === saved.
- Undo stack covers annotations only — Adjustments and Beautify stay out of ⌘Z.
Fill out the pull request template.
Use the bug report or feature request templates. Include macOS version and whether Screen Recording was granted after install.
Be direct, be kind, be precise. Parcel is a craft project — good prose in UI copy and docs matters as much as good Swift.