Annex B is a local-only iPhone, iPad, and Mac app for browsing, downloading, preparing, playing, and saving road-camera video directly from a compatible comma device over SSH/SFTP.
- No Annex B account, analytics, cloud relay, or remote proxy.
- Read-only remote access; the app does not expose SFTP mutation operations.
- Trust on first use with pinned SSH host keys; a changed host key is a hard stop.
- App-generated SSH private keys are stored in a ThisDeviceOnly Keychain item.
- Optional setup sync uses iCloud Keychain only for the Ed25519 seed, trusted profile, and complete host-key pin; drive data and preferences stay local.
- Synthetic Sample Drives make the core workflow usable without hardware.
Annex B is not affiliated with or endorsed by comma.ai, Inc. comma and openpilot are trademarks of comma.ai, Inc.
- macOS with Xcode 26.6 or newer
- iOS, iPadOS, or macOS 26.0 or newer
- Swift 6.2 or newer
- FFmpeg build prerequisites used by
scripts/vendor/build-ffmpeg-xcframework.sh
Generate the ignored FFmpeg XCFramework before the first build:
scripts/vendor/build-ffmpeg-xcframework.shThen open AnnexB.xcodeproj and build the AnnexB or AnnexBMac scheme.
The public project does not select an Apple development team. Choose your own
team and, for a signed device build, bundle identifiers available to that team.
Dependency pins, source hashes, license details, and the reproducible FFmpeg
and zstd inputs are recorded in Vendor/manifests/PINS.md.
Run the package tests with:
swift test --package-path Packages/AnnexBKitTests under LiveCommaTests are opt-in and require a separately supplied local
device host and SSH identity. They remain read-only. The default test run uses
synthetic fixtures and does not contact a comma device.
The bundled Sample Drives and their source inputs contain generated imagery,
fictional route metadata, and derived video—not real route media or comma
logs. Their complete checksum inventory is
Vendor/manifests/SAMPLE-MEDIA.sha256.
Regenerate and verify them with the pinned tool versions:
scripts/generate-sample-drive.sh
scripts/verify-sample-drive.shThe static Next.js website under website/ contains the public privacy,
support, license, and FFmpeg compliance pages for
annexb.app.
cd website
yarn install --frozen-lockfile
yarn run checkAnnex B is available under the MIT License. Third-party components
and assets remain subject to their respective terms; see
Vendor/manifests/PINS.md and the website license page.



