wtbates99/batesposture
wtbates99/batesposture has 26 GitHub stars and 2 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-13 04:32 UTC. Last push 2026-10-31.
实测星标增长
- 24小时
- 0
- 7天
- 正在收集历史
- 15天
- 正在收集历史
- 1个月
- 正在收集历史
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
关于
Local-first desktop posture monitor with real-time webcam scoring, personal calibration, and private on-device processing.
安全README.md
原文BatesPosture
A local-first desktop posture monitor. Webcam in, private posture feedback out.
Install · How it works · Privacy · License

BatesPosture watches a webcam locally, scores posture from 0–100, and sends a native notification when posture drops below a personal threshold. Calibration tunes the measurements to the person using the app. There are no accounts, cloud uploads, or telemetry.
What it provides
| Capability | Behavior |
|---|---|
| Live score | Seven weighted pose metrics become a color-coded 0–100 tray score |
| Personal calibration | A six-second baseline adjusts feedback to the user's natural posture |
| Session dashboard | History, average, minimum, maximum, best streak, and duration |
| Smart alerts | Native notifications with threshold, cooldown, and focus controls |
| Scheduling | Continuous or interval tracking plus configurable break reminders |
| Local history | Optional SQLite logging and CSV export |
| Adaptive processing | Frame-size and performance controls for slower hardware |
| Auto-pause | Away-from-desk time is excluded when no person is detected |

Install
Requires Python 3.11 or newer, uv, and a webcam.
git clone https://github.com/wtbates99/batesposture.git
cd batesposture
uv sync --locked --all-groups
uv run batesposture
Grant camera permission and complete the calibration when prompted.
Linux system packages
On Debian or Ubuntu:
sudo apt-get update
sudo apt-get install -y \
libgl1 libglib2.0-0 \
libxcb-xinerama0 libxcb-cursor0 libxcb-icccm4 libxcb-image0 \
libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-shape0 \
libxcb-xfixes0 libxkbcommon-x11-0 libegl1 libgles2
GNOME users may also need an AppIndicator extension for the tray icon.
How it works
- Calibrate — capture a six-second baseline of the user's natural posture.
- Track — MediaPipe landmarks feed seven geometric measurements.
- Score — weighted measurements produce one 0–100 posture score.
- Alert — a sustained low score triggers a cooldown-controlled notification.
- Review — the dashboard shows the current session and optional saved history.
Configuration
Settings are available in the desktop UI and through environment variables:
POSTURE_RUNTIME_DEFAULT_CAMERA_ID=1 uv run batesposture
POSTURE_RUNTIME_DEFAULT_FPS=15 uv run batesposture
POSTURE_RUNTIME_POOR_POSTURE_THRESHOLD=55 uv run batesposture
Environment names follow POSTURE_<SECTION>_<FIELD> for runtime, ML, and
profile settings.
Privacy
- Video frames are processed locally and are not uploaded.
- Posture data does not leave the machine.
- There are no accounts, analytics, or telemetry.
- The MediaPipe pose model is downloaded once from Google's model storage on first use and cached locally; no data is sent.
- SQLite logging is opt-in and disabled by default.
- README screenshots use synthetic imagery and contain no biometric data.
Data locations vary by platform:
| Data | Location |
|---|---|
| Database, lock, and pose models | Linux ~/.local/share/BatesPosture/; macOS application support; Windows %APPDATA% |
| Logs | macOS ~/Library/Logs/BatesPosture/app.log; other platforms ~/.batesposture_logs/app.log |
| CSV exports | ~/posture_export_YYYYMMDD_HHMMSS.csv |
Development
uv sync --locked --all-groups
QT_QPA_PLATFORM=offscreen uv run python -m pytest
uv run pre-commit run --all-files
uv build
Troubleshooting
- Camera does not open: close other camera applications or try camera index
1. - Tracking pauses: make sure the head and shoulders are visible and evenly lit.
- Performance is poor: lower FPS or frame size and enable adaptive resolution.
- CSV export is empty: enable database logging before recording a session.
License
BatesPosture is source available under the PolyForm Noncommercial License 1.0.0. Personal and noncommercial use is permitted under those terms. Commercial use requires a separate license.
Earlier revisions remain governed by the terms under which they were published; see license history.
探索相关项目
trimstray/the-book-of-secret-knowledge
汇集各类启发灵感的清单、手册、速查表、博客、技巧、单行命令、CLI/Web 工具等内容。
258,188 星标Hack-with-Github/Awesome-Hacking
面向黑客、渗透测试人员与安全研究人员的各类 Awesome 清单合集。
125,360 星标swisskyrepo/PayloadsAllTheThings
一份用于 Web 应用安全以及渗透测试/CTF 的实用 payload 与绕过方法列表。
82,649 星标caddyserver/caddy
快速、可扩展的跨平台 HTTP/1-2-3 Web 服务器,支持自动 HTTPS
79,038 星标