tldev/dorsoPublic

A macOS app that blurs your screen when you slouch.

AI summary: A native macOS menu bar app that progressively blurs your screen to correct slouching in real-time.

Stars
2.6K
+1 today
Forks
75
Watchers
4
Open issues
3
Open PRs
0
Contributors
~14
Commits
298
Branches
9

SwiftMITCreated Jan 24, 2026Last push 1mo agoLatest release v1.15.1+6 stars this week+16 this month

Quick answers

What is dorso?
A native macOS menu bar app that progressively blurs your screen to correct slouching in real-time.
What does dorso do?
Posturr (also known as Dorso) is a local, privacy-centric macOS application designed to enforce ergonomic habits through immediate visual feedback. It continuously monitors the user's posture in real-time by analyzing data from either the Mac's built-in webcam or the precise motion sensors in connected AirPods. When the software detects that the user is slouching or leaning unhealthily, it progressively blurs the computer screen to interrupt their workflow. As soon as the user corrects their posture and sits up straight, the screen instantly clears, creating a powerful behavioral conditioning loop. All monitoring occurs entirely on-device to ensure complete user privacy.
Who is dorso for?
Mac users, particularly software developers and remote workers, who spend long hours at a desk and struggle with maintaining proper posture. It requires macOS 13.0 or later for camera mode, and macOS 14.0+ for AirPods integration.
How do I get started with dorso?
git clone https://github.com/tldev/dorso.git && cd dorso && ./build.sh
How popular is dorso on GitHub?
tldev/dorso has 2,559 stars and 75 forks on GitHub, and gained 6 stars in the last 7 days.
What license does dorso use?
tldev/dorso is released under the MIT license.

Star history

since Jul 29, 2026
01K2KJul 2026Aug 2026Sep 2026Oct 2026
2.6K stars as of Oct 3, 2026. Measured daily since Jul 29, 2026; GitHub no longer exposes earlier star timestamps.

Update history

1 recorded
  • Oct 4, 2026Previously tracked as tldev/posturr; its 1 daily snapshot and 2 trending appearances were merged into this profile. Stars: 2,506 on 2026-07-29 under the old name, 2,559 on 2026-10-03 (+53).

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 4 commits2026-01-25: 27 commits2026-01-26: 31 commits2026-01-27: 15 commits2026-01-28: 0 commits2026-01-29: 11 commits2026-01-30: 3 commits2026-01-31: 20 commits2026-02-01: 1 commit2026-02-02: 7 commits2026-02-03: 10 commits2026-02-04: 17 commits2026-02-05: 12 commits2026-02-06: 6 commits2026-02-07: 1 commit2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 5 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 1 commit2026-02-16: 14 commits2026-02-17: 0 commits2026-02-18: 1 commit2026-02-19: 0 commits2026-02-20: 1 commit2026-02-21: 0 commits2026-02-22: 3 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 4 commits2026-03-01: 1 commit2026-03-02: 0 commits2026-03-03: 7 commits2026-03-04: 6 commits2026-03-05: 2 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 4 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 1 commit2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 2 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 1 commit2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 1 commit2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 1 commit2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 5 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 1 commit2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 1 commit2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 0 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 0 commits2026-06-23: 0 commits2026-06-24: 0 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 0 commits2026-07-02: 0 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 3 commits2026-07-07: 6 commits2026-07-08: 0 commits2026-07-09: 0 commits2026-07-10: 0 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 0 commits2026-07-17: 5 commits2026-07-18: 0 commits2026-07-19: 20 commits2026-07-20: 0 commits2026-07-21: 0 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 0 commits2026-07-26: 0 commits2026-07-27: 0 commits2026-07-28: 0 commits2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits2026-08-02: 0 commits2026-08-03: 0 commits2026-08-04: 0 commits2026-08-05: 0 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 0 commits2026-08-09: 0 commits2026-08-10: 0 commits2026-08-11: 0 commits2026-08-12: 0 commits2026-08-13: 0 commits2026-08-14: 0 commits2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 0 commits2026-08-18: 0 commits2026-08-19: 0 commits2026-08-20: 0 commits2026-08-21: 0 commits2026-08-22: 0 commits2026-08-23: 0 commits2026-08-24: 0 commits2026-08-25: 1 commit2026-08-26: 0 commits2026-08-27: 0 commits2026-08-28: 0 commits2026-08-29: 0 commits2026-08-30: 0 commits2026-08-31: 0 commits2026-09-01: 0 commits2026-09-02: 0 commits2026-09-03: 0 commits2026-09-04: 0 commits2026-09-05: 0 commits2026-09-06: 0 commits2026-09-07: 0 commits2026-09-08: 0 commits2026-09-09: 0 commits2026-09-10: 0 commits2026-09-11: 0 commits2026-09-12: 0 commits2026-09-13: 0 commits2026-09-14: 0 commits2026-09-15: 0 commits2026-09-16: 0 commits2026-09-17: 0 commits2026-09-18: 0 commits2026-09-19: 0 commits2026-09-20: 0 commits2026-09-21: 0 commits2026-09-22: 0 commits2026-09-23: 0 commits2026-09-24: 0 commits2026-09-25: 0 commits2026-09-26: 0 commits2026-09-27: 0 commits2026-09-28: 0 commits2026-09-29: 0 commits2026-09-30: 0 commits2026-10-01: 0 commits2026-10-02: 0 commits2026-10-03: 0 commits
262 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Permissive license

    MIT

What dorso does

Posturr (also known as Dorso) is a local, privacy-centric macOS application designed to enforce ergonomic habits through immediate visual feedback. It continuously monitors the user's posture in real-time by analyzing data from either the Mac's built-in webcam or the precise motion sensors in connected AirPods. When the software detects that the user is slouching or leaning unhealthily, it progressively blurs the computer screen to interrupt their workflow. As soon as the user corrects their posture and sits up straight, the screen instantly clears, creating a powerful behavioral conditioning loop. All monitoring occurs entirely on-device to ensure complete user privacy.

Mac users, particularly software developers and remote workers, who spend long hours at a desk and struggle with maintaining proper posture. It requires macOS 13.0 or later for camera mode, and macOS 14.0+ for AirPods integration.

  • Real-time posture monitoring: Continuously tracks head and shoulder alignment using local hardware sensors.
  • Visual enforcement feedback: Progressively blurs the entire display when poor posture is detected to force behavioral correction.
  • Dual sensor support: Utilizes either the Mac's built-in webcam or the precise motion sensors found in Apple AirPods.
  • Local privacy focus: Processes all camera and sensor data entirely on-device without recording or transmitting any information.
  • Menu bar integration: Runs quietly in the background as a lightweight macOS menu bar utility without distracting windows.

Where teams use it

Ergonomic habit formation

Office workers can use the immediate visual feedback to unconsciously train themselves to maintain better posture throughout the day.

Back pain prevention

Individuals suffering from chronic neck or back pain can ensure they aren't exacerbating their issues during long coding sessions.

Privacy-safe wellness

Security-conscious professionals can monitor their health habits without installing invasive, cloud-connected monitoring software.

Focus interruption

Users who get lost in their work and forget to sit properly receive a physical reminder to adjust their seating position.

Getting started: git clone https://github.com/tldev/dorso.git && cd dorso && ./build.sh

README

main branch

A macOS app that blurs your screen when you slouch.

Dorso monitors your posture in real-time using either your Mac's camera or AirPods motion sensors. When it detects that you're slouching, it progressively blurs your screen to remind you to sit up straight. Maintain good posture, and the blur clears instantly.

Download on the App Store

Download Latest Release Discord

Join our Discord to share feedback, get help, suggest features, and connect with other Dorso users!

dorso-preview.mp4

Screenshots

Onboarding - Choose Tracking Method Settings

Menu Bar Analytics Dashboard

Features

  • Two tracking methods - Use your camera (Vision framework) or AirPods motion sensors
  • AirPods motion tracking - Track posture without camera using AirPods Pro, Max, or 3rd gen+ (macOS 14+)
  • Progressive screen blur - Gentle visual reminder that intensifies with worse posture
  • Menu bar controls - Easy access to settings, calibration, and status from the menu bar
  • Multi-display support - Works across all connected monitors
  • Privacy-focused - All processing happens locally on your Mac
  • Lightweight - Runs as a background app with minimal resource usage
  • Optional Dock visibility - Show in Dock and Cmd+Tab app switcher when preferred
  • No account required - No signup, no cloud, no tracking

Installation

Homebrew (Recommended)

brew install dorso

Manual Download

  1. Download the latest Dorso-vX.X.X.dmg or .zip from the Releases page
  2. Open the DMG and drag Dorso.app to your Applications folder
  3. Launch normally - no Gatekeeper warnings (app is signed and notarized)

Permissions

Camera Mode: Requires camera access. When you first launch the app, macOS will ask for permission.

AirPods Mode: Requires Motion & Fitness Activity permission (macOS 14+). This allows the app to read head motion data from your AirPods.

If you accidentally denied permission, you can grant it later in System Settings > Privacy & Security > Camera or Motion & Fitness Activity.

Usage

Once launched, Dorso appears in your menu bar with a person icon. The app continuously monitors your posture and applies screen blur when slouching is detected.

Menu Bar Controls

Click the menu bar icon to access:

  • Status - Shows current state (Monitoring, Slouching, Good Posture, etc.)
  • Enabled - Toggle posture monitoring on/off
  • Recalibrate - Reset your baseline posture (sit up straight, then click)
  • Settings - Open the settings window to configure all options
  • Quit - Exit the application

Settings Window

The Settings window (accessible from the menu bar) provides:

  • Sensitivity - Adjust how sensitive the slouch detection is (5 levels from Low to Very High)
  • Dead Zone - Set the tolerance before blur kicks in (5 levels from None to Very Large)
  • Blur when away - Blur screen when you step away from camera
  • Show in dock - Show app in Dock and Cmd+Tab app switcher
  • Pause on the go - Auto-pause when laptop display becomes the only screen
  • Compatibility mode - Use public macOS APIs for blur (try this if blur doesn't appear)

Tips for Best Results

  • Position your camera at eye level when possible
  • Ensure adequate lighting on your face
  • Sit at a consistent distance from your screen
  • The app works best when your shoulders are visible

How It Works

Dorso offers two tracking methods:

Camera Mode

Uses Apple's Vision framework to detect body pose landmarks:

  • Body Pose Detection: Tracks nose and head position
  • Face Detection Fallback: When full body isn't visible, tracks face position
  • Posture Analysis: Measures vertical head position against your calibrated baseline

AirPods Mode

Uses motion sensors in compatible AirPods (Pro, Max, 3rd gen+):

  • Head Tilt Detection: Tracks pitch angle of your head
  • No Camera Required: Works without any camera access
  • Automatic Pause: Pauses when AirPods are removed from ears

The screen blur uses macOS's private CoreGraphics API by default for efficient, system-level blur. If the blur doesn't appear on your system, enable Compatibility Mode from settings to use NSVisualEffectView instead.

Building from Source

Requirements

  • macOS 13.0 (Ventura) or later
  • Xcode Command Line Tools (xcode-select --install)

Build

git clone https://github.com/tldev/dorso.git
cd dorso
./build.sh

The built app will be in build/Dorso.app.

Build Options

# Standard build
./build.sh

# Build with release archive (.zip)
./build.sh --release

Manual Build

swiftc -O \
    -framework AppKit \
    -framework AVFoundation \
    -framework Vision \
    -framework CoreImage \
    -o Dorso \
    Sources/*.swift

Known Limitations

  • Camera mode: Requires a working camera with adequate lighting and clear view of upper body/face
  • AirPods mode: Requires macOS 14.0+ and compatible AirPods (Pro, Max, or 3rd generation+)

Command Interface

Dorso exposes a file-based command interface for external control:

Command Description
capture Take a photo and analyze pose
blur <0-64> Set blur level manually
quit Exit the application

Write commands to /tmp/dorso-command. Responses appear in /tmp/dorso-response.

System Requirements

  • macOS 13.0 (Ventura) or later
  • Camera (built-in or external)
  • Approximately 10MB disk space

Privacy

Dorso processes all video data locally on your Mac. No images or data are ever sent to external servers. The camera feed is used solely for posture detection and is never stored or transmitted.

License

MIT License - see LICENSE for details.

Project Structure

dorso/
├── Sources/
│   ├── main.swift                  # App entry point
│   ├── AppDelegate.swift           # Main app coordinator and state machine
│   ├── PostureDetector.swift       # Protocol for posture detection methods
│   ├── CameraPostureDetector.swift # Camera-based detection (Vision framework)
│   ├── AirPodsPostureDetector.swift # AirPods motion-based detection
│   ├── Models.swift                # Shared types (settings keys, profile data, app state)
│   ├── Persistence.swift           # Settings and profile storage
│   ├── DisplayManager.swift        # Display detection and configuration
│   ├── MenuBar.swift               # Menu bar setup and management
│   ├── SettingsWindow.swift        # SwiftUI settings window
│   ├── OnboardingWindow.swift      # Tracking method selection UI
│   ├── CalibrationWindow.swift     # Calibration UI
│   └── BlurOverlay.swift           # Screen blur overlay management
├── build.sh                        # Build script
├── release.sh                      # Release automation
└── AppIcon.icns                    # App icon

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

Acknowledgments

  • Built with Apple's Vision framework for body pose detection
  • Uses private CoreGraphics API for blur, with NSVisualEffectView fallback
  • Inspired by the need for better posture during long coding sessions

Linux version

Want this on Linux? See postured or dorso-linux.

Contributors

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Releases and announcements

67 total
  1. Dorso v1.15.1v1.15.1Jul 19, 20262.1K downloads

    ## What's New ### Bug Fixes - **Appearance selection always sticks** - Choosing Auto, Light, or Dark in Settings now applies immediately and stays applied after a relaunch. - **No more color flicker** - Toggles keep Dorso's colors when switching appearance instead of briefly flashing your system accent color. ## Installation 1. Download `Dorso-v1.15.1.dmg` or `Dorso-v1.15.1.zip` 2. Drag `Dorso.app` to Applications 3. Launch normally - no warnings! 4. Grant camera permission and complete calibration Already on 1.14.0 or later? Dorso will offer this update itself, or use "Check for Updates" in the menu bar. ## Requirements - macOS 13.0 (Ventura) or later

  2. Dorso v1.15.0v1.15.0Jul 19, 20261.9K downloads

    ## What's New ### Redesigned Settings - **A cleaner, calmer Settings window** - Everything is now organized into clear sections, sliders and buttons follow one consistent style, device status is spelled out instead of cryptic icons, and tooltips appear quickly with easier-to-hit targets. Still just as compact. ### Appearance - **Choose your look** - New Auto / Light / Dark option in Settings. Auto follows your system like before, or pin Dorso to the mode you prefer. <img src="https://github.com/tldev/dorso/releases/download/v1.15.0/dorso-settings.png" alt="The redesigned Settings window" width="480"> ## Installation 1. Download `Dorso-v1.15.0.dmg` or `Dorso-v1.15.0.zip` 2. Drag `Dorso.app` to Applications 3. Launch normally - no warnings! 4. Grant camera permission and complete calibration Already on 1.14.0 or later? Dorso will offer this update itself, or use "Check for Updates" in the menu bar. ## Requirements - macOS 13.0 (Ventura) or later

  3. Dorso v1.14.2v1.14.2Jul 19, 202630 downloads

    ## What's New ### Bug Fix - **Update alerts now show up front and center** - When a background update check found a new version, the alert could open invisibly behind your other windows and go unnoticed. It now comes right to the front. Manual checks and silent automatic installs are unaffected. ## Installation 1. Download `Dorso-v1.14.2.dmg` or `Dorso-v1.14.2.zip` 2. Drag `Dorso.app` to Applications 3. Launch normally - no warnings! 4. Grant camera permission and complete calibration Already on 1.14.0 or later? Dorso will offer this update itself, or use "Check for Updates" in the menu bar. ## Requirements - macOS 13.0 (Ventura) or later

  4. Dorso v1.14.1v1.14.1Jul 19, 202613 downloads

    ## What's New ### Bug Fix - **Blur no longer sticks when switching compatibility mode** - Toggling compatibility mode in Settings while your screen was blurred could leave the blur stuck on permanently. It now clears cleanly and, if you are still slouching, fades back in as expected. ## Installation 1. Download `Dorso-v1.14.1.dmg` or `Dorso-v1.14.1.zip` 2. Drag `Dorso.app` to Applications 3. Launch normally - no warnings! 4. Grant camera permission and complete calibration Already on 1.14.0? Dorso will offer this update automatically, or use "Check for Updates" in the menu bar. ## Requirements - macOS 13.0 (Ventura) or later

  5. Dorso v1.14.0v1.14.0Jul 19, 202611 downloads

    ## What's New ### Auto-Update - **Dorso now updates itself** - When a new version is out, Dorso offers to download and install it for you. No more manual downloads. Check anytime with "Check for Updates" in the menu bar, and turn background checks on or off in Settings. Thanks to @Shadow1363 for suggesting this! ([#83](https://github.com/tldev/dorso/issues/83)) App Store installs are unaffected and keep updating through the App Store. ## Installation 1. Download `Dorso-v1.14.0.dmg` or `Dorso-v1.14.0.zip` 2. Drag `Dorso.app` to Applications 3. Launch normally - no warnings! 4. Grant camera permission and complete calibration This is the release that enables auto-updates, so it needs one last manual download. Updates after this one arrive on their own. ## Requirements - macOS 13.0 (Ventura) or later

Code frequency

additions and deletions
+11.3K-11.3KWeek of 2026-01-18: +1,531 linesWeek of 2026-01-18: -12 linesWeek of 2026-01-25: +11,309 linesWeek of 2026-01-25: -4,694 linesWeek of 2026-02-01: +6,789 linesWeek of 2026-02-01: -2,144 linesWeek of 2026-02-08: +79 linesWeek of 2026-02-08: -52 linesWeek of 2026-02-15: +708 linesWeek of 2026-02-15: -376 linesWeek of 2026-02-22: +8,347 linesWeek of 2026-02-22: -1,222 linesWeek of 2026-03-01: +1,689 linesWeek of 2026-03-01: -1,501 linesWeek of 2026-03-08: +106 linesWeek of 2026-03-08: -21 linesWeek of 2026-03-15: +221 linesWeek of 2026-03-15: -7 linesWeek of 2026-03-22: +0 linesWeek of 2026-03-22: -0 linesWeek of 2026-03-29: +1 linesWeek of 2026-03-29: -1 linesWeek of 2026-04-05: +0 linesWeek of 2026-04-05: -0 linesWeek of 2026-04-12: +1 linesWeek of 2026-04-12: -1 linesWeek of 2026-04-19: +402 linesWeek of 2026-04-19: -269 linesWeek of 2026-04-26: +7 linesWeek of 2026-04-26: -2 linesWeek of 2026-05-03: +0 linesWeek of 2026-05-03: -0 linesWeek of 2026-05-10: +0 linesWeek of 2026-05-10: -0 linesWeek of 2026-05-17: +0 linesWeek of 2026-05-17: -0 linesWeek of 2026-05-24: +41 linesWeek of 2026-05-24: -2 linesWeek of 2026-05-31: +0 linesWeek of 2026-05-31: -0 linesWeek of 2026-06-07: +0 linesWeek of 2026-06-07: -0 linesWeek of 2026-06-14: +0 linesWeek of 2026-06-14: -0 linesWeek of 2026-06-21: +0 linesWeek of 2026-06-21: -0 linesWeek of 2026-06-28: +0 linesWeek of 2026-06-28: -0 linesWeek of 2026-07-05: +9,326 linesWeek of 2026-07-05: -9,901 linesWeek of 2026-07-12: +753 linesWeek of 2026-07-12: -11 linesWeek of 2026-07-19: +918 linesWeek of 2026-07-19: -214 linesWeek of 2026-07-26: +0 linesWeek of 2026-07-26: -0 linesWeek of 2026-08-02: +0 linesWeek of 2026-08-02: -0 linesWeek of 2026-08-09: +0 linesWeek of 2026-08-09: -0 linesWeek of 2026-08-16: +0 linesWeek of 2026-08-16: -0 linesWeek of 2026-08-23: +1 linesWeek of 2026-08-23: -0 linesWeek of 2026-08-30: +0 linesWeek of 2026-08-30: -0 linesWeek of 2026-09-06: +0 linesWeek of 2026-09-06: -0 linesJan 18, 2026Sep 6, 2026
+42.2K lines added, -20.4K removed over the last year.

Commits per week

last 52 weeks
1070Week of 2025-10-04: 0 commitsWeek of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 4 commitsWeek of 2026-01-25: 107 commitsWeek of 2026-02-01: 54 commitsWeek of 2026-02-08: 5 commitsWeek of 2026-02-15: 17 commitsWeek of 2026-02-22: 7 commitsWeek of 2026-03-01: 16 commitsWeek of 2026-03-08: 4 commitsWeek of 2026-03-15: 3 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 1 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 1 commitsWeek of 2026-04-19: 6 commitsWeek of 2026-04-26: 1 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 1 commitsWeek of 2026-05-31: 0 commitsWeek of 2026-06-07: 0 commitsWeek of 2026-06-14: 0 commitsWeek of 2026-06-21: 0 commitsWeek of 2026-06-28: 0 commitsWeek of 2026-07-05: 9 commitsWeek of 2026-07-12: 5 commitsWeek of 2026-07-19: 20 commitsWeek of 2026-07-26: 0 commitsWeek of 2026-08-02: 0 commitsWeek of 2026-08-09: 0 commitsWeek of 2026-08-16: 0 commitsWeek of 2026-08-23: 1 commitsWeek of 2026-08-30: 0 commitsWeek of 2026-09-06: 0 commitsWeek of 2026-09-13: 0 commitsWeek of 2026-09-20: 0 commitsWeek of 2026-09-27: 0 commitsOct 4, 2025Sep 27, 2026
262 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 0 commitsSun 1:00 — 0 commitsSun 2:00 — 0 commitsSun 3:00 — 0 commitsSun 4:00 — 0 commitsSun 5:00 — 1 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 2 commitsSun 10:00 — 15 commitsSun 11:00 — 8 commitsSun 12:00 — 3 commitsSun 13:00 — 2 commitsSun 14:00 — 3 commitsSun 15:00 — 3 commitsSun 16:00 — 3 commitsSun 17:00 — 2 commitsSun 18:00 — 3 commitsSun 19:00 — 0 commitsSun 20:00 — 0 commitsSun 21:00 — 7 commitsSun 22:00 — 1 commitsSun 23:00 — 0 commitsMon 0:00 — 0 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 0 commitsMon 8:00 — 2 commitsMon 9:00 — 0 commitsMon 10:00 — 9 commitsMon 11:00 — 6 commitsMon 12:00 — 2 commitsMon 13:00 — 4 commitsMon 14:00 — 5 commitsMon 15:00 — 9 commitsMon 16:00 — 10 commitsMon 17:00 — 5 commitsMon 18:00 — 0 commitsMon 19:00 — 2 commitsMon 20:00 — 2 commitsMon 21:00 — 0 commitsMon 22:00 — 0 commitsMon 23:00 — 0 commitsTue 0:00 — 0 commitsTue 1:00 — 0 commitsTue 2:00 — 0 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 0 commitsTue 8:00 — 0 commitsTue 9:00 — 0 commitsTue 10:00 — 5 commitsTue 11:00 — 2 commitsTue 12:00 — 1 commitsTue 13:00 — 8 commitsTue 14:00 — 5 commitsTue 15:00 — 8 commitsTue 16:00 — 1 commitsTue 17:00 — 0 commitsTue 18:00 — 1 commitsTue 19:00 — 0 commitsTue 20:00 — 9 commitsTue 21:00 — 0 commitsTue 22:00 — 0 commitsTue 23:00 — 0 commitsWed 0:00 — 0 commitsWed 1:00 — 0 commitsWed 2:00 — 0 commitsWed 3:00 — 0 commitsWed 4:00 — 0 commitsWed 5:00 — 0 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 4 commitsWed 9:00 — 4 commitsWed 10:00 — 3 commitsWed 11:00 — 2 commitsWed 12:00 — 0 commitsWed 13:00 — 1 commitsWed 14:00 — 0 commitsWed 15:00 — 0 commitsWed 16:00 — 0 commitsWed 17:00 — 4 commitsWed 18:00 — 3 commitsWed 19:00 — 2 commitsWed 20:00 — 0 commitsWed 21:00 — 4 commitsWed 22:00 — 0 commitsWed 23:00 — 0 commitsThu 0:00 — 1 commitsThu 1:00 — 0 commitsThu 2:00 — 0 commitsThu 3:00 — 0 commitsThu 4:00 — 0 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 1 commitsThu 8:00 — 6 commitsThu 9:00 — 4 commitsThu 10:00 — 2 commitsThu 11:00 — 1 commitsThu 12:00 — 8 commitsThu 13:00 — 0 commitsThu 14:00 — 2 commitsThu 15:00 — 4 commitsThu 16:00 — 0 commitsThu 17:00 — 0 commitsThu 18:00 — 0 commitsThu 19:00 — 4 commitsThu 20:00 — 0 commitsThu 21:00 — 0 commitsThu 22:00 — 0 commitsThu 23:00 — 0 commitsFri 0:00 — 0 commitsFri 1:00 — 0 commitsFri 2:00 — 0 commitsFri 3:00 — 0 commitsFri 4:00 — 0 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 0 commitsFri 8:00 — 0 commitsFri 9:00 — 7 commitsFri 10:00 — 0 commitsFri 11:00 — 4 commitsFri 12:00 — 4 commitsFri 13:00 — 2 commitsFri 14:00 — 0 commitsFri 15:00 — 0 commitsFri 16:00 — 0 commitsFri 17:00 — 0 commitsFri 18:00 — 0 commitsFri 19:00 — 0 commitsFri 20:00 — 2 commitsFri 21:00 — 4 commitsFri 22:00 — 1 commitsFri 23:00 — 0 commitsSat 0:00 — 0 commitsSat 1:00 — 0 commitsSat 2:00 — 0 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 1 commitsSat 9:00 — 0 commitsSat 10:00 — 0 commitsSat 11:00 — 0 commitsSat 12:00 — 6 commitsSat 13:00 — 1 commitsSat 14:00 — 3 commitsSat 15:00 — 2 commitsSat 16:00 — 3 commitsSat 17:00 — 2 commitsSat 18:00 — 1 commitsSat 19:00 — 0 commitsSat 20:00 — 5 commitsSat 21:00 — 2 commitsSat 22:00 — 0 commitsSat 23:00 — 3 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits261 (88%)
Community commits37 (12%)

298 commits in total over the last year.

DateListRankStars gained
Jan 26, 2026daily#15+171
Jan 25, 2026daily#21+174
  • jaywcjlove/awesome-mac

     This project is dedicated to collecting high-quality macOS software and organizing them systematically by different categories for easy search and use.

    115.4K stars · Swift

  • apple/container

    A tool for creating and running Linux containers using lightweight virtual machines on a Mac. It is written in Swift, and optimized for Apple silicon.

    50.4K stars · Swift

  • permissionlesstech/bitchat

    bluetooth mesh chat, IRC vibes

    36.3K stars · Swift

  • manaflow-ai/cmux

    Open source Ghostty-based macOS terminal with vertical tabs and notifications for AI coding agents. Built for multitasking, organization, and programmability.

    27.6K stars · Swift

  • steipete/CodexBar

    Show usage stats for OpenAI Codex and Claude Code, without having to login.

    22.1K stars · Swift

  • Lakr233/vphone-cli

    14.8K stars · Swift