[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-6930":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":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":34,"discoverSource":35},6930,"BLEUnlock","ts1\u002FBLEUnlock","ts1","Lock\u002Funlock your Mac with your iPhone, Apple Watch, or any other Bluetooth LE devices","",null,"Swift",3839,246,31,74,0,2,8,50,7,69.18,false,"master",true,[26,27,28,29,30],"ble","bluetooth-low-energy","corebluetooth","macos","swift","2026-06-12 04:00:31","# BLEUnlock\n\n## Please note that I don't distribute this app on the Mac App Store. You can find it here for free! \n\n![CI](https:\u002F\u002Fgithub.com\u002Fts1\u002FBLEUnlock\u002Fworkflows\u002FCI\u002Fbadge.svg)\n![Github All Releases](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002Fts1\u002FBLEUnlock\u002Ftotal.svg)\n[![Buy me a coffee](img\u002Fbuymeacoffee.svg)](https:\u002F\u002Fwww.buymeacoffee.com\u002Ftsone)\n\nBLEUnlock is a small menu bar utility that locks and unlocks your Mac by proximity of your iPhone, Apple Watch, or any other Bluetooth Low Energy device.\n\nThis document is also available in [Japanese (日本語版はこちら)](README.ja.md).\n\n## Features\n\n- No iPhone app is required\n- Works with any BLE devices that periodically transmits signal from [static MAC address](#notes-on-mac-address)\n- Unlocks your Mac for you when the BLE device is near your Mac, without entering password\n- Locks your Mac when the BLE device is away from your Mac\n- Optionally runs your own script upon lock\u002Funlock\n- Optionally wakes from display sleep\n- Optionally pauses and unpauses music\u002Fvideo playback when you're away and back\n- Password is securely stored in Keychain\n\n## Requirements\n\n- A Mac with Bluetooth Low Energy support\n- macOS 10.13 (High Sierra) or later\n- iPhone 5s or newer, Apple Watch (all), or another BLE device that has [static MAC address](#notes-on-mac-address) and transmits signal periodically\n\n## Installation\n\n### Using Homebrew Cask\n\n```\nbrew install bleunlock\n```\n\n### Manual installation\n\nDownload the zip file from [Releases](https:\u002F\u002Fgithub.com\u002Fts1\u002FBLEUnlock\u002Freleases), unzip and move to the Applications folder.\n\n## Setting up\n\nOn the first launch, it asks for the following permissions, which you must grant:\n\nPermission | Description\n-----------|---\nBluetooth | Obviously, Bluetooth access is required. Choose *OK*.\nAccessibility | This is required to unlock the locked screen. Click *Open System Preferences*, click the lock icon on the bottom left to unlock, and turn on BLEUnlock.\nKeychain | (Not always asked) If asked, you have to choose **Always Allow** because it is required while the screen is locked.\nNotification | (Optional) BLEUnlock shows a message on the lock screen when it locks the screen. It is helpful to know if it's working properly. Additionally, to see the message on the lock screen, you need to set *Show previews* to *always* in the *Notification* preference pane. \n\n> NOTE: The number of permissions required increases with each version of macOS, so if you are using an older OS, you may not be asked for one or more permissions.\n\nThen it asks your login password to unlock the lock screen.\nIt will be stored safely in Keychain. \n\nFinally, from the menu bar icon, select *Device*.\nIt starts scanning nearby BLE devices.\nSelect your device, and you're done!\n\n## Options\n\nOption | Description\n-------|---\nLock Screen Now | It locks the screen regardless of whether the BLE device is nearby or not; it will unlock once the BLE device moves away and then moves closer again. This is useful to ensure that the screen is locked before you leave your seat.\nUnlock RSSI | Bluetooth signal strength to unlock. Larger value indicates that the BLE device needs to be closer to the Mac to unlock. Choose *Disable* to disable unlocking.\nLock RSSI | Bluetooth signal strength to lock. Smaller value indicates that the BLE device needs to be farther away from the Mac to lock. Choose *Disable* to disable locking.\nDelay to Lock | Duration of time before it locks the Mac when it detects that the BLE device is away. If the BLE device comes closer within that time, no lock will occur.\nNo-Signal Timeout | Time between last signal reception and locking. If you experience frequent \"Signal is lost\" locking, increase this value.\nWake on Proximity | Wakes up the display from sleep when the BLE device approaches while locking.\nWake without Unlocking | BLEUnlock will not unlock the Mac when the display wakes up from sleep, whether automatically via \"Wake on Proximity\" or manually. This allows for compatibility with the macOS built-in unlock with Apple Watch feature (which can operate immediately after BLEUnlock wakes the screen), or if you just prefer the lock screen to appear more quickly but don't want it to auto-unlock.\nPause \"Now Playing\" while Locked | On lock\u002Funlock, BLEUnlock pauses\u002Funpauses playback of music or video (including Apple Music, QuickTime Player and Spotify) that is controlled by *Now Playing* widget or the ⏯ key on the keyboard.\nUse Screensaver to Lock | If this option is set, BLEUnlock launches screensaver instead of locking. For this option to work properly, you need to set *Require password **immediately** after sleep or screen saver begins* option in *Security & Privacy* preference pane.\nTurn Off Screen on Lock | Turn off the display immediately when locking.\nSet Password... | If you changed your login password, use this.\nPassive Mode | By default it actively tries to connect to the BLE device and read the RSSI. Most of the time, the default is recommended and works stably. However, if you are using other Bluetooth things like keyboard, mouse, track pad or most notably Bluetooth Personal Hotspot, the default mode may interfere with each other. 2.4GHz WiFi may interfere as well. If you are experiencing instability of Bluetooth, turn on Passive Mode.\nLaunch at Login | Launches BLEUnlock when you login.\nSet Minimum RSSI | Devices with RSSI below this value will not be displayed in the device scan list.\n\n## Troubleshooting\n\n### Can't find my device in the list\n\nIf your BLE device is not from Apple, BLEUnlock may not able to find the device name.\nIf that is the case, your device is displayed as a UUID (long hexadecimal numbers and hyphens).\nTo identify the device, try moving the device closer to or farther away from the Mac and see if the RSSI (dB value) changes accordingly.\n\nIf you don't see *any* device in the list, try resetting the Bluetooth module as described below.\n\n### It fails to unlock\n\nMake sure BLEUnlock is turned on in *System Preferences* > *Security & Privacy* > *Privacy* > *Accessibility*.\nIf it is already on, try turning it off and on again.\n\nIf it asks for permission to access its own password in Keychain, you must choose *Always Allow*, because it is needed while the screen is locked.\n\n### \"Signal is lost\" occurs frequently\n\nIncrease *No-Signal Timeout*.\nOr try *Passive Mode*.\n\n### My Bluetooth keyboard, mouse, Personal Hotspot, or whatever Bluetooth, went nuts!\n\nFirstly, Shift + Option + Click the Bluetooth icon in the menubar or Control Center, then click *Reset the Bluetooth module*.\n\nIn macOS 12 Monterey, this option is no longer available.\nInstead, type the command below in Terminal to reset the Bluetooth module:\n\n```\nsudo pkill bluetoothd\n```\n\nThis command will ask your login password.\n\nIf the problem persists, turn on *Passive Mode*.\n\n## Notes on MAC address\n\nUnlike classic Bluetooth, Bluetooth Low Energy devices can use *private* MAC address.\nThat private address can be random, and can be changed from time to time.\n\nRecent smart devices, both iOS and Android, tend to use private addresses that change every 15 minutes or so. This is probably to prevent tracking.\n\nOn the other hand, in order for BLEUnlock to track your device, its MAC address must be static.\n\nFortunately, on Apple devices, if you are signed in with the same Apple ID as your Mac, the MAC address is resolved to the true (public) address.\n\nFor other devices, including Android, the way to resolve the address is unknown.\nIf your non-Apple device changes its MAC address over time, unfortunately BLEUnlock can't support it.\n\nTo check if the MAC address is resolved correctly, compare the MAC address displayed in the *Device* scan list of BLEUnlock with the one that is displayed on your device.\n\n## Run script on lock\u002Funlock\n\nOn locking and unlocking, BLEUnlock runs a script located here:\n\n```\n~\u002FLibrary\u002FApplication Scripts\u002Fjp.sone.BLEUnlock\u002Fevent\n```\n\nAn argument is passed depending on the type of event:\n\n|Event|Argument|\n|-----|--------|\n|Locked by BLEUnlock because of low RSSI|`away`|\n|Locked by BLEUnlock because of no signal|`lost`|\n|Unlocked by BLEUnlock|`unlocked`|\n|Unlocked manually|`intruded`|\n\n> NOTE: for `intruded` event works properly, you have to set *Require password **immediately** after sleep* in *Security & Privacy* preference pane.\n\n### Example\n\nHere is an example script which sends a LINE Notify message, with a photo of the person in front of the Mac when it is unlocked manually.\n\n```sh\n#!\u002Fbin\u002Fbash\n\nset -eo pipefail\n\nLINE_TOKEN=xxxxx\n\nnotify() {\n    local message=$1\n    local image=$2\n    if [ \"$image\" ]; then\n        img_arg=\"-F imageFile=@$image\"\n    else\n        img_arg=\"\"\n    fi\n    curl -X POST -H \"Authorization: Bearer $LINE_TOKEN\" -F \"message=$message\" \\\n        $img_arg https:\u002F\u002Fnotify-api.line.me\u002Fapi\u002Fnotify\n}\n\ncapture() {\n    open -Wa SnapshotUnlocker\n    ls -t \u002Ftmp\u002Funlock-*.jpg | head -1\n}\n\ncase $1 in\n    away)\n        notify \"$(hostname -s) is locked by BLEUnlock because iPhone is away.\"\n        ;;\n    lost)\n        notify \"$(hostname -s) is locked by BLEUnlock because signal is lost.\"\n        ;;\n    unlocked)\n        #notify \"$(hostname -s) is unlocked by BLEUnlock.\"\n        ;;\n    intruded)\n        notify \"$(hostname -s) is manually unlocked.\" $(capture)\n        ;;\nesac\n```\n\n`SnapshotUnlocker` is an .app created with Script Editor with this script:\n\n```\ndo shell script \"\u002Fusr\u002Flocal\u002Fbin\u002Fffmpeg -f avfoundation -r 30 -i 0 -frames:v 1 -y \u002Ftmp\u002Funlock-$(date +%Y%m%d_%H%M%S).jpg\"\n```\n\nThis app is required because BLEUnlock does not have Camera permission.\nGiving permission to this app resolves the problem.\n\n## Funding\n\nThe annual Apple Developer Program fee is funded by donations.\n\nIf you like this app, I'd appreciate it if you could make a donation via [Buy Me a Coffee](https:\u002F\u002Fwww.buymeacoffee.com\u002Ftsone) or [PayPal Me](https:\u002F\u002Fwww.paypal.com\u002Fpaypalme\u002Fmy\u002Fprofile) so I can keep up.\n\n## Credits\n\n- [peiit](https:\u002F\u002Fgithub.com\u002Fpeiit): Chinese translation\n- [wenmin-wu](https:\u002F\u002Fgithub.com\u002Fwenmin-wu): Minimum RSSI and moving average\n- [stephengroat](https:\u002F\u002Fgithub.com\u002Fstephengroat): CI\n- [joeyhoer](https:\u002F\u002Fgithub.com\u002Fjoeyhoer): Homebrew Cask\n- [Skyearn](https:\u002F\u002Fgithub.com\u002FSkyearn): Big Sur style icon\n- [cyberclaus](https:\u002F\u002Fgithub.com\u002Fcyberclaus): German, Swedish, Norwegian (Bokmål) and Danish localizations\n- [alonewolfx2](https:\u002F\u002Fgithub.com\u002Falonewolfx2): Turkish localization\n- [wernjie](https:\u002F\u002Fgithub.com\u002Fwernjie): Wake without Unlocking\n- [tokfrans03](https:\u002F\u002Fgithub.com\u002Ftokfrans03): Language fixes\n\n\nIcons are based on SVGs downloaded from materialdesignicons.com.\nThey are originally designed by Google LLC and licensed under Apache License version 2.0.\n\n## License\n\nMIT\n\nCopyright © 2019-2022 Takeshi Sone.\n","BLEUnlock 是一个可以让用户通过 iPhone、Apple Watch 或其他蓝牙低能耗设备的接近程度来锁定或解锁 Mac 的小型菜单栏工具。该项目使用 Swift 语言开发，无需额外安装 iPhone 应用即可工作，并支持任何定期发送信号且具有静态 MAC 地址的 BLE 设备。当指定的 BLE 设备靠近 Mac 时，它会自动解锁 Mac 而无需输入密码；当设备远离时，则自动锁定 Mac。此外，该软件还提供了运行自定义脚本、唤醒显示器睡眠状态以及暂停\u002F恢复音乐视频播放等功能选项。适用于希望提高日常工作效率并简化 Mac 锁定\u002F解锁过程的用户，特别是经常需要在 Mac 和移动设备之间切换的人士。","2026-06-11 03:09:37","top_language"]