[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74730":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":16,"starSnapshotCount":16,"syncStatus":28,"lastSyncTime":29,"discoverSource":30},74730,"dorso","tldev\u002Fdorso","tldev","A macOS app that blurs your screen when you slouch.","",null,"Swift",2462,64,4,8,0,10,41,27.44,"MIT License",false,"main",true,[],"2026-06-12 02:03:27","# [Dorso](https:\u002F\u002Fdorso.app\u002F)\n\n**A macOS app that blurs your screen when you slouch.**\n\nDorso 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.\n\n[![Download on the App Store](https:\u002F\u002Ftoolbox.marketingtools.apple.com\u002Fapi\u002Fv2\u002Fbadges\u002Fdownload-on-the-app-store\u002Fblack\u002Fen-us?releaseDate=1769990400)](https:\u002F\u002Fapps.apple.com\u002Fus\u002Fapp\u002Fposturr-posture-monitor\u002Fid6758276540?mt=12)\n\n[![Download Latest Release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Ftldev\u002Fdorso?style=for-the-badge&logo=apple&label=Download&color=007AFF)](https:\u002F\u002Fgithub.com\u002Ftldev\u002Fdorso\u002Freleases\u002Flatest)\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-Join%20Community-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https:\u002F\u002Fdiscord.gg\u002F6Ufy2SnXDW)\n\n**Join our Discord** to share feedback, get help, suggest features, and connect with other Dorso users!\n\n\u003Cp align=\"center\">\n  \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fde02c78b-c6c4-4ddc-9650-320e7267921a\" width=\"640\" autoplay loop muted playsinline>\n    Dorso demo: slouching triggers screen blur, good posture keeps it clear\n  \u003C\u002Fvideo>\n\u003C\u002Fp>\n\n## Screenshots\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fdorso_onboarding.png\" width=\"320\" alt=\"Onboarding - Choose Tracking Method\">\n  \u003Cimg src=\"assets\u002Fdorso_settings.png\" width=\"400\" alt=\"Settings\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fdorso_menubar.png\" width=\"280\" alt=\"Menu Bar\">\n  \u003Cimg src=\"assets\u002Fdorso_analytics.png\" width=\"400\" alt=\"Analytics Dashboard\">\n\u003C\u002Fp>\n\n## Features\n\n- **Two tracking methods** - Use your camera (Vision framework) or AirPods motion sensors\n- **AirPods motion tracking** - Track posture without camera using AirPods Pro, Max, or 3rd gen+ (macOS 14+)\n- **Progressive screen blur** - Gentle visual reminder that intensifies with worse posture\n- **Menu bar controls** - Easy access to settings, calibration, and status from the menu bar\n- **Multi-display support** - Works across all connected monitors\n- **Privacy-focused** - All processing happens locally on your Mac\n- **Lightweight** - Runs as a background app with minimal resource usage\n- **Optional Dock visibility** - Show in Dock and Cmd+Tab app switcher when preferred\n- **No account required** - No signup, no cloud, no tracking\n\n## Installation\n\n### Homebrew (Recommended)\n\n```bash\nbrew install dorso\n```\n\n### Manual Download\n\n1. Download the latest `Dorso-vX.X.X.dmg` or `.zip` from the [Releases](..\u002F..\u002Freleases) page\n2. Open the DMG and drag `Dorso.app` to your Applications folder\n3. Launch normally - no Gatekeeper warnings (app is signed and notarized)\n\n### Permissions\n\n**Camera Mode:** Requires camera access. When you first launch the app, macOS will ask for permission.\n\n**AirPods Mode:** Requires Motion & Fitness Activity permission (macOS 14+). This allows the app to read head motion data from your AirPods.\n\nIf you accidentally denied permission, you can grant it later in **System Settings** > **Privacy & Security** > **Camera** or **Motion & Fitness Activity**.\n\n## Usage\n\nOnce 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.\n\n### Menu Bar Controls\n\nClick the menu bar icon to access:\n\n- **Status** - Shows current state (Monitoring, Slouching, Good Posture, etc.)\n- **Enabled** - Toggle posture monitoring on\u002Foff\n- **Recalibrate** - Reset your baseline posture (sit up straight, then click)\n- **Settings** - Open the settings window to configure all options\n- **Quit** - Exit the application\n\n### Settings Window\n\nThe Settings window (accessible from the menu bar) provides:\n\n- **Sensitivity** - Adjust how sensitive the slouch detection is (5 levels from Low to Very High)\n- **Dead Zone** - Set the tolerance before blur kicks in (5 levels from None to Very Large)\n- **Blur when away** - Blur screen when you step away from camera\n- **Show in dock** - Show app in Dock and Cmd+Tab app switcher\n- **Pause on the go** - Auto-pause when laptop display becomes the only screen\n- **Compatibility mode** - Use public macOS APIs for blur (try this if blur doesn't appear)\n\n### Tips for Best Results\n\n- Position your camera at eye level when possible\n- Ensure adequate lighting on your face\n- Sit at a consistent distance from your screen\n- The app works best when your shoulders are visible\n\n## How It Works\n\nDorso offers two tracking methods:\n\n### Camera Mode\nUses Apple's Vision framework to detect body pose landmarks:\n- **Body Pose Detection**: Tracks nose and head position\n- **Face Detection Fallback**: When full body isn't visible, tracks face position\n- **Posture Analysis**: Measures vertical head position against your calibrated baseline\n\n### AirPods Mode\nUses motion sensors in compatible AirPods (Pro, Max, 3rd gen+):\n- **Head Tilt Detection**: Tracks pitch angle of your head\n- **No Camera Required**: Works without any camera access\n- **Automatic Pause**: Pauses when AirPods are removed from ears\n\nThe 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.\n\n## Building from Source\n\n### Requirements\n\n- macOS 13.0 (Ventura) or later\n- Xcode Command Line Tools (`xcode-select --install`)\n\n### Build\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Ftldev\u002Fdorso.git\ncd dorso\n.\u002Fbuild.sh\n```\n\nThe built app will be in `build\u002FDorso.app`.\n\n### Build Options\n\n```bash\n# Standard build\n.\u002Fbuild.sh\n\n# Build with release archive (.zip)\n.\u002Fbuild.sh --release\n```\n\n### Manual Build\n\n```bash\nswiftc -O \\\n    -framework AppKit \\\n    -framework AVFoundation \\\n    -framework Vision \\\n    -framework CoreImage \\\n    -o Dorso \\\n    Sources\u002F*.swift\n```\n\n## Known Limitations\n\n- **Camera mode**: Requires a working camera with adequate lighting and clear view of upper body\u002Fface\n- **AirPods mode**: Requires macOS 14.0+ and compatible AirPods (Pro, Max, or 3rd generation+)\n\n## Command Interface\n\nDorso exposes a file-based command interface for external control:\n\n| Command | Description |\n|---------|-------------|\n| `capture` | Take a photo and analyze pose |\n| `blur \u003C0-64>` | Set blur level manually |\n| `quit` | Exit the application |\n\nWrite commands to `\u002Ftmp\u002Fdorso-command`. Responses appear in `\u002Ftmp\u002Fdorso-response`.\n\n## System Requirements\n\n- macOS 13.0 (Ventura) or later\n- Camera (built-in or external)\n- Approximately 10MB disk space\n\n## Privacy\n\nDorso 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.\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n## Project Structure\n\n```\ndorso\u002F\n├── Sources\u002F\n│   ├── main.swift                  # App entry point\n│   ├── AppDelegate.swift           # Main app coordinator and state machine\n│   ├── PostureDetector.swift       # Protocol for posture detection methods\n│   ├── CameraPostureDetector.swift # Camera-based detection (Vision framework)\n│   ├── AirPodsPostureDetector.swift # AirPods motion-based detection\n│   ├── Models.swift                # Shared types (settings keys, profile data, app state)\n│   ├── Persistence.swift           # Settings and profile storage\n│   ├── DisplayManager.swift        # Display detection and configuration\n│   ├── MenuBar.swift               # Menu bar setup and management\n│   ├── SettingsWindow.swift        # SwiftUI settings window\n│   ├── OnboardingWindow.swift      # Tracking method selection UI\n│   ├── CalibrationWindow.swift     # Calibration UI\n│   └── BlurOverlay.swift           # Screen blur overlay management\n├── build.sh                        # Build script\n├── release.sh                      # Release automation\n└── AppIcon.icns                    # App icon\n```\n\n## Contributing\n\nContributions are welcome! Please feel free to submit issues and pull requests.\n\n## Acknowledgments\n\n- Built with Apple's Vision framework for body pose detection\n- Uses private CoreGraphics API for blur, with NSVisualEffectView fallback\n- Inspired by the need for better posture during long coding sessions\n\n## Linux version\n\nWant this on Linux? See [postured](https:\u002F\u002Fgithub.com\u002Fvadi2\u002Fpostured) or [dorso-linux](https:\u002F\u002Fgithub.com\u002FGheop\u002Fdorso-linux).\n\n### Contributors\n\n- [@kimik-hyum](https:\u002F\u002Fgithub.com\u002Fkimik-hyum) - AirPods motion tracking, forward-head posture detection\n- [@wklm](https:\u002F\u002Fgithub.com\u002Fwklm) - Compatibility mode implementation\n- [@cam-br0wn](https:\u002F\u002Fgithub.com\u002Fcam-br0wn) - Dock\u002FApp Switcher visibility toggle\n- [@einsteinx2](https:\u002F\u002Fgithub.com\u002Feinsteinx2) - SwiftPM\u002FXcode support\n- [@ssisk](https:\u002F\u002Fgithub.com\u002Fssisk) - Screen lock pause feature suggestion\n- [@gcanyon](https:\u002F\u002Fgithub.com\u002Fgcanyon) - Warning onset delay feature suggestion\n- [@javabudd](https:\u002F\u002Fgithub.com\u002Fjavabudd) - Analytics dashboard\n- [@danielroek](https:\u002F\u002Fgithub.com\u002Fdanielroek) - \"None\" warning style option\n- [@claaslange](https:\u002F\u002Fgithub.com\u002Fclaaslange) - Camera compatibility issue with professional cameras\n- [@lucapericlp](https:\u002F\u002Fgithub.com\u002Flucapericlp) - Settings profiles feature\n- [@DengNaichen](https:\u002F\u002Fgithub.com\u002FDengNaichen) - Sleep\u002Fwake camera detection fix\n- [@Shadow1363](https:\u002F\u002Fgithub.com\u002FShadow1363) - Camera-active-while-disabled bug report and reproduction details\n- [@bradystroud](https:\u002F\u002Fgithub.com\u002Fbradystroud) - Automatic source switching feature suggestion\n- [@emmanuelprecieuxargent](https:\u002F\u002Fgithub.com\u002Femmanuelprecieuxargent) - Improved French and Spanish translations\n- [@shencangsheng](https:\u002F\u002Fgithub.com\u002Fshencangsheng) - AirPods 4 compatibility detection report\n- [@zhouyeyu](https:\u002F\u002Fgithub.com\u002Fzhouyeyu) - Initial fix for warning overlays and calibration over fullscreen apps\n","Dorso 是一款 macOS 应用程序，通过模糊屏幕来提醒用户保持正确的坐姿。它利用 Mac 的摄像头或 AirPods 的运动传感器实时监测用户的姿势。当检测到用户驼背时，屏幕会逐渐变得模糊，直到用户恢复正确姿势，屏幕才会恢复清晰。该应用支持两种跟踪方式：使用 Vision 框架的摄像头跟踪和适用于 AirPods Pro、Max 或第三代及以上版本（macOS 14+）的运动传感器跟踪。Dorso 还具备多显示器支持、隐私保护以及轻量级运行等特性，适合长时间使用电脑且希望改善坐姿的用户。",2,"2026-06-11 03:50:33","high_star"]