{"id":13533371,"url":"https://github.com/janlelis/pws","last_synced_at":"2025-05-16T12:11:26.363Z","repository":{"id":2261741,"uuid":"3217545","full_name":"janlelis/pws","owner":"janlelis","description":"Command-Line Password Safe 🔐︎","archived":false,"fork":false,"pushed_at":"2023-02-02T10:30:57.000Z","size":1362,"stargazers_count":210,"open_issues_count":5,"forks_count":19,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-05-08T18:19:33.906Z","etag":null,"topics":["aes-256","cli-command","encrypted-store","password-generator","password-manager","pbkdf2","ruby","ruby-cli"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/janlelis.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"MIT-LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-01-19T13:10:05.000Z","updated_at":"2023-12-05T23:19:43.000Z","dependencies_parsed_at":"2023-02-18T03:01:21.715Z","dependency_job_id":null,"html_url":"https://github.com/janlelis/pws","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janlelis%2Fpws","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janlelis%2Fpws/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janlelis%2Fpws/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janlelis%2Fpws/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/janlelis","download_url":"https://codeload.github.com/janlelis/pws/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254527099,"owners_count":22085919,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aes-256","cli-command","encrypted-store","password-generator","password-manager","pbkdf2","ruby","ruby-cli"],"created_at":"2024-08-01T07:01:19.179Z","updated_at":"2025-05-16T12:11:26.337Z","avatar_url":"https://github.com/janlelis.png","language":"Ruby","funding_links":[],"categories":["Awesome Ruby CLIs","Ruby"],"sub_categories":["Security"],"readme":"A Clipboard based CLI Password Safe [\u003cimg src=\"https://badge.fury.io/rb/pws.svg\" /\u003e](https://badge.fury.io/rb/pws) [![[ci]](https://github.com/janlelis/pws/workflows/Test/badge.svg)](https://github.com/janlelis/pws/actions?query=workflow%3ATest)\n===\n**pws** is a command-line password safe/manager written in Ruby using [AES-256-CBC](http://en.wikipedia.org/wiki/Advanced_Encryption_Standard) and [PBKDF2](http://en.wikipedia.org/wiki/PBKDF2).\n\n2023 Notice!\n---\n\nAlthough the gem works well and as described, its cryptographic foundations have not been updated since 10 years ago and might not reflect current best practices.\n\n\nUsage\n---\n[![Screenshot](https://ruby.janlelis.de/pws-example.png)](https://ruby.janlelis.de/60-pws-the-ruby-powered-command-line-password-manager)\n\n\nSetup\n---\nMake sure your computer has Ruby installed.\n\nYou can then install *pws* with: `$ gem install pws`\n\nRun `$ pws --help` for usage information.\n\nIf you use pws on Linux, you will need to have `xsel` or `xclip` installed (for the clipboard to work).\n\nTips \u0026amp; Troubleshooting\n---\n\n### How to use a .pws file in the current working directory\nBesides using the `--filename path/to/safe` option, you can shortly call `pws --cwd` for using a `.pws` file in the current directory.\n\nCheck the `.pws` into version control and you have a great way to share a project's passwords within your team.\n\n\n### OpenSSL 1.0\nYou should use a Ruby that was built with bindings to an openssl version \u003e= 1.0 or pws will fall back to a Ruby-only version of the PBKDF2 function, which is much slower. If using openssl 1.0 is not possible for you, you can work around that issue by using the `--iterations` option with a value below 75\\_000 (see help). If you have problems using openssl 1.0 with your Ruby, please look for a solution in [this issue](https://github.com/janlelis/pws/issues/7).\n\n\n### Updating from pws 0.9\nThe 0.9 password files are not compatible with the 1.0 version of pws, however, you can convert your safe with:\n`$ pws resave --in 0.9 --out 1.0`\n\n\n### Reading the source\nTrust the code by reading the source! It's originally based on [this tutorial](https://ruby.janlelis.de/41-tutorial-build-your-own-password-safe-with-ruby). You might want to start reading in the [0.9.2 tag](https://github.com/janlelis/pws/tree/0.9.2), because it's got less features and therefore is less code.\n\n\nProjects built on top of PWS\n---\n* [pws-otp](https://github.com/janlelis/pws-otp) Experimental OTP support for 2FA\n* [pwsqr](https://github.com/smileart/pwsqr) Simple QR interface to pws gem. Helps to use your passwords on a smartphone.\n* [aws-pws](https://github.com/fancyremarker/aws-pws) A password-protected CredentialProvider for AWS\n* [omnivault](https://github.com/aptible/omnivault) Multi-platform keychain functionality\n\n\nBlog Articles\n---\n* [Packaging ruby programs in NixOS](http://blog.arkency.com/2016/04/packaging-ruby-programs-in-nixos/) using PWS as example\n\n\nContributors\n---\n* [namelessjon](https://github.com/namelessjon/)\n* [brianewing](https://github.com/brianewing/)\n* [dquimper](https://github.com/dquimper/)\n* [grapz](https://github.com/grapz/)\n* [thecatwasnot](https://github.com/thecatwasnot/) (cucumber specs loosely based on [these](https://github.com/thecatwasnot/passwordsafe/blob/master/features/))\n* [terabyte](https://github.com/terabyte)\n* [alex0112](https://github.com/alex0112)\n\n\nJ-\\_-L\n---\n© 2010-2021 Jan Lelis, MIT license\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanlelis%2Fpws","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjanlelis%2Fpws","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanlelis%2Fpws/lists"}