A CLI to interact with Apple macOS Passwords (iCloud KeyChain).
Some sample usages of the ipass
CLI tool you might be interested in:
# login to docker hub
ipass pw get docker.com kezhenxu94 | jq '.entries[0].password' -r | docker login -u kezhenxu94 --password-stdin
# Upload files/folders to SVN
svn \
--non-interactive \
--no-auth-cache \
--username kezhenxu94 \
--password $(ipass pw get id.apache.org kezhenxu94 | jq '.entries[0].password' -r) \
import -m "Draft Apache SkyWalking Eyes release $VERSION" \
$VERSION \
https://dist.apache.org/repos/dist/dev/skywalking/eyes/$VERSION
This project basically rewrites the apw
project in Rust,
because the apw
project doesn't run on my M3 macOS 15.0.1 for no reason.
It utilises a built in helper tool in macOS 14 and above to facilitate this functionality.
- List passwords
- Get password
- Get OTP (one-time password)
- Save/Update password
Go to release page to download the binary
according to you platform, and run xattr -c ./ipass-aarch64-apple-darwin.tar.gz
(to avoid "unknown developer" warning).
Then extract the binary from the tarball:
tar -zxvf ./ipass-aarch64-apple-darwin.tar.gz
Thanks to @io41 for the tap!
brew install kezhenxu94/tap/ipass
If you want the ipass daemon to run at login:
tap homebrew/services
brew services start ipass
If you have cargo
installed, you can easily install the binary using the
command:
cargo install --git https://github.com/kezhenxu94/ipass
Ensure the daemon is running in the background, via ipass start
.
To authenticate the daemon:
This is required every time the daemon starts i.e on boot
ipass auth
Query for available passwords for a specific domain:
ipass pw list google.com
View more commands & help:
ipass help
This project uses Rust for development and compilation. Make sure you have Rust installed on your system before proceeding.
To run the project whilst developing:
cargo run -- start
To build a statically compiled binary:
cargo build
Contributions 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 'feat: 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.
Project Link: https://github.com/kezhenxu94/ipass