Skip to content

A CLI to interact with Apple macOS Passwords (iCloud KeyChain).

Notifications You must be signed in to change notification settings

kezhenxu94/ipass

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ipass

A CLI to interact with Apple macOS Passwords (iCloud KeyChain).

Demo

ipass demo

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

About The Project

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.

Features

  • List passwords
  • Get password
  • Get OTP (one-time password)
  • Save/Update password

Installation

Binary

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

Brew

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

Cargo

If you have cargo installed, you can easily install the binary using the command:

cargo install --git https://github.com/kezhenxu94/ipass

Usage

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                                             

Building

This project uses Rust for development and compilation. Make sure you have Rust installed on your system before proceeding.

Running the Project

To run the project whilst developing:

cargo run -- start

Building a release version

To build a statically compiled binary:

cargo build

Contributing

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

License

Distributed under the GPL V3.0 License. See LICENSE for more information.

Contact

kezhenxu94

Project Link: https://github.com/kezhenxu94/ipass

Acknowledgments

About

A CLI to interact with Apple macOS Passwords (iCloud KeyChain).

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages