A CLI for access to Apple Passwords. A foundation for enabling integration and automation.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
This project introduces a CLI interface designed to access iCloud passwords and OTP tokens. The core objective is to provide a secure and straightforward way to retrieve iCloud passwords, facilitating integration with other systems or for personal convenience.
It utilises a built in helper tool in macOS 14 and above to facilitate this functionality.
apw.mov
APW requires a supported browser with the iCloud Passwords extension installed:
- Ungoogled Chromium:
brew install --cask ungoogled-chromium - or Google Chrome:
brew install --cask google-chrome - or Brave Browser:
brew install --cask brave-browser - or Microsoft Edge:
brew install --cask microsoft-edge
Link to iCloud Passwords Extension: Link
Note: The browser is launched headlessly in the background. It will generally not be usable for regular browsing while
apwis running. Installing one of the above as a dedicated secondary browser is recommended.
1. Install APW
brew install bendews/homebrew-tap/apw2. Start the daemon
APW will detect the browser and extension automatically. To start at login:
brew services start apw3. Authenticate
This step is required every time the daemon starts (e.g. on boot):
apw authA native macOS popup with a PIN will appear. Enter it when prompted to complete pairing.
APW is now running and ready to use.
The following integrations provide quick access to passwords and OTP tokens:
- Raycast extension automatically retrieves entries for the currently active webpage.
- LaunchBar action finds entries for a typed domain and pastes the selected entry.
The following are some future integration ideas:
- SSH Agent to allow storing and using SSH keys/passwords
Ensure the daemon is running (apw start or brew services start apw) and authenticated (apw auth).
Start with a specific browser without the interactive prompt, selections will be persisted:
apw start --browser chrome
Query for available passwords (Interactive):
apw pw
Query for available passwords (JSON output):
apw pw list google.com
Create or update a password (the command prompts for the password):
apw pw save google.com username
Retrieve a one-time code:
apw otp get google.com
View more commands & help:
apw --help
Options:
-h, --help - Show this help.
-V, --version - Show the version number for this program.
Commands:
auth - Authenticate CLI with daemon.
pw - Interactively list or save accounts/passwords.
otp - Interactively list accounts/OTPs.
start - Start the daemon.This project uses Deno for development and compilation. Make sure you have Deno installed on your system before proceeding.
To run the project whilst developing:
deno task dev <OPTIONS>To build a statically compiled binary:
deno task compileContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the GPL V3.0 License. See LICENSE for more information.