Skip to content

Repository files navigation

Parcel

The native macOS Capture studio from Parable.
Freeze your screen, annotate with fourteen tools, censor with on-device Vision, beautify for ship-ready output,
record, scroll-capture, and upload — when you choose. No cloud AI, ever.

Live sitemacOS 13+14 tools0 cloud AIMIT License

Website · Download · Docs · Architecture · Contributing

Parcel — Capture, mark up, and ship

Why Parcel

Native, not a web wrapperSwiftUI + ScreenCaptureKit + AppKit where structurally required. Menu bar app with a global hotkey — no Electron, no dock icon clutter.
Private by defaultOCR, face detection, translation, and regex redaction use Apple on-device frameworks only. Upload is optional Supabase Storage you configure yourself.
On screen = savedOne render pipeline drives the Editor display and export. What you see in Beautify and Adjustments is exactly what copies or saves.
Built for daily workFreeze-then-select Capture, window snap, scroll stitch, MP4 recording, re-editable history, configurable hotkeys, and Sparkle updates.

See it in action

Parcel capture and render pipelineParcel annotation toolkit
Capture → Select → Editor → Ship
Architecture →
14 tools + Vision + Beautify
Feature parity →

Quick start

Requirements

  • macOS 13.0+ (Apple Silicon + Intel)
  • Xcode 15+ (developed on Xcode 26)
  • XcodeGenbrew install xcodegen

Build & run

xcodegen generate
xcodebuild -project Parcel.xcodeproj -scheme Parcel -configuration Debug \
-derivedDataPath .derivedData build CODE_SIGN_IDENTITY="-" CODE_SIGNING_ALLOWED=YES
open .derivedData/Build/Products/Debug/Parcel.app

Parcel lives in the menu bar. On first launch, complete the welcome flow, grant Screen Recording, then quit and reopen.

Default Capture hotkey: ⌘⇧2 (configurable in Preferences).


Release

Signed, notarized builds via Scripts/release.sh:

DEVELOPMENT_TEAM=XXXXXXXXXX \
NOTARYTOOL_PROFILE=parcel-release \
UPDATE_APPCAST=1 \
./Scripts/release.sh

Use APPLE_ID + APPLE_APP_PASSWORD instead of NOTARYTOOL_PROFILE if preferred. Run Scripts/verify-release-gates.sh before release and Scripts/verify-release.sh after packaging. Set SKIP_NOTARIZE=1 for unsigned local Release builds. See docs/RELEASE_READINESS.md for the full public ZIP runbook. Tag v* triggers .github/workflows/release.yml.


Project layout

Sources/Parcel/
App/ Coordinator, lifecycle, onboarding
Capture/ ScreenCaptureKit freeze, Overlay, scroll stitch
Editor/ Tools, Canvas, Beautify, Adjustments, export
History/ Disk-backed re-editable Capture documents
Recording/ MP4 + trim + GIF export
Vision/ On-device OCR, faces, QR, translation
Upload/ Supabase Storage REST client
Hotkeys/ Carbon global hotkey + Preferences
Website/ Next.js marketing site (parcel-zeta-silk.vercel.app)
docs/ Architecture, parity, QA, integrations
Scripts/ release.sh, generate_icons.sh
Casks/ Homebrew cask (parcel.rb)

The .xcodeproj is generated from project.yml — run xcodegen generate after adding or moving files.


Docs

DocWhat it covers
docs/README.mdDocumentation index
docs/architecture.mdRender pipeline, coordinates, module map
docs/parity.mdmacshot feature parity checklist
docs/QA_CHECKLIST.mdManual verification matrix
docs/integrations.mdGitHub, Vercel, Supabase, MCP setup
AGENTS.mdGlossary, constraints, build guide for agents

Built with

SwiftScreenCaptureKitVisionCore ImageNext.jsReactTailwind CSSMotionSparkle


Contributing

Issues and pull requests are welcome. Read CONTRIBUTING.md first — especially the glossary in AGENTS.md and the QA checklist for Capture/recording changes.

Hard rule: no network LLM / AI calls. On-device Apple frameworks only.


License

Parcel is released under the MIT License — free and open. Built by Parable.


About

Parcel — native macOS Capture studio from Parable. Annotate, censor, beautify, record, and upload. Local-first, no cloud AI.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages