{"id":21473601,"url":"https://github.com/lucasepe/grasp","last_synced_at":"2025-07-15T08:32:26.339Z","repository":{"id":49745721,"uuid":"327670710","full_name":"lucasepe/grasp","owner":"lucasepe","description":"Create strong passwords using words that are easy for you to remember. A password manager that does not require any type of storage","archived":false,"fork":false,"pushed_at":"2022-10-22T12:50:25.000Z","size":2344,"stargazers_count":22,"open_issues_count":1,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-06-19T02:01:44.885Z","etag":null,"topics":["golang","password-generator","password-manager","security"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lucasepe.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-01-07T16:45:54.000Z","updated_at":"2022-11-03T20:46:08.000Z","dependencies_parsed_at":"2023-01-20T08:10:21.845Z","dependency_job_id":null,"html_url":"https://github.com/lucasepe/grasp","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasepe%2Fgrasp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasepe%2Fgrasp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasepe%2Fgrasp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasepe%2Fgrasp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lucasepe","download_url":"https://codeload.github.com/lucasepe/grasp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226027899,"owners_count":17562156,"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":["golang","password-generator","password-manager","security"],"created_at":"2024-11-23T10:17:57.427Z","updated_at":"2024-11-23T10:17:57.995Z","avatar_url":"https://github.com/lucasepe.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `Grasp` \n\n[![Go Report Card](https://goreportcard.com/badge/github.com/lucasepe/grasp)](https://goreportcard.com/report/github.com/lucasepe/grasp) \u0026nbsp;\u0026nbsp;\u0026nbsp; [![Go Coverage](https://gocover.io/_badge/github.com/lucasepe/grasp?nocache=grasp)](https://gocover.io/_badge/github.com/lucasepe/grasp?nocache=grasp) \u0026nbsp;\u0026nbsp;\u0026nbsp; [![Twitter](https://img.shields.io/twitter/url?style=social\u0026url=https%3A%2F%2Fgithub.com%2Flucasepe%2Fgrasp)](https://twitter.com/intent/tweet?text=Wow:\u0026url=https%3A%2F%2Fgithub.com%2Flucasepe%2Fgrasp) \n\n## Create strong passwords using words that are easy for you to remember\n\nA way to circumvent password complexity rules and restrictions while only needing to remember something _memorable_.\n\n## A password manager that does not require any type of storage\n\nCross Platform simple and secure password generator / manager that does not require a file/cloud/whatever archive.\n\n- [Open Source](https://github.com/lucasepe/grasp)\n- Works on [Linux, Mac OS, Windows](https://github.com/lucasepe/grasp/releases/latest)\n- Just a single portable binary file\n\nPasswords become complicated (one capital letter, one number, one punctuation mark, one emoji, etc.)...\n\n- It's impossible to use and remember different passwords for all of your accounts?\n- You often reuse the same passwords on various accounts?\n- Yes! There are a lot of greats passwords managers tools\n\nUsing `grasp` all you need to remember are:\n\n\u003e your favorite words! anything that is easy for you to remember! (a poem? a song? a sequence of insults? :bowtie:)\n\n## How to install\n\n### [Homebrew](https://brew.sh/index_it)\n\n```bash\nbrew tap lucasepe/grasp\nbrew install grasp\n```\n\n## Ready-To-Use Releases \n\n[Here you can find `grasp` already compiled](https://github.com/lucasepe/grasp/releases/latest) for: MacOS, Linux and Windows.\n\n---\n\n## How to use (examples)\n\n```\ngrasp google.com pinco.pallo@gmail.com vercingetorige\n\u003eqhOzrL^*+IF\n```\n\n```\ngrasp linkedin.com pinco.pallo@gmail.com hope to find the job of my life!\ny@xV4.w$|mIp\n```\n\n```\ngrasp -s L --no-symbols amazon.com leonida@sparta.com this is lambda!\nsRZg5qOvK2GnDLJ9\n```\n\nUsing these parameters `grasp` will generate a password:\n\n- unique, complex and safe\n- that meets all validation standards (uppercase, lowercase, numbers and special characters)\n\n---\n\n### Who cares... I have a secure online password manager...\n\nUsing `grasp` does not stop you from managing your passwords using a secure 'wallet' and in fact \u003cu\u003ethis is encouraged\u003c/u\u003e. \n\nWhat `grasp` gives to you is:\n\n  - a simple way to generate good quality and safe passwords for websites and other services\n  - a secure mechanism to retrieve your passwords \n  - an easy system for managing your passwords\n\n:warning: **WARNING!**\n\n\u003e **To recreate the same password for a given account you must make sure you don't forget the original words ​​you used**.\n\u003e \n\u003e **If you enter different words, `grasp` will produce a different password! (the order of the words and the difference between upper and lower case is also important)**\n  \n## How does `grasp` works?\n\nThe sequence of words you type after the command is used as salt (the first word) and secret (all remaining words) to generate a secret key using the [Argon2](https://en.wikipedia.org/wiki/Argon2) key derivation function.\n \nThe result of this encryption is used as key for a cryptographically secure pseudorandom number generator (CSPRNG).\n\nFinally the password is composed picking characters, digits and symbols using the integers generated by this CSPRNG.\n\n- all these calculations are done _\"on the fly\"_ every time you request it \n- this is why `grasp` does not need any archive\n\n---\n\n![](demo.gif)\n\n---\n\n## Credits\n\nA huge thank you to:\n\n\u003e [Christopher Wellons](https://github.com/skeeto) for his hints about security and help in replacing the Mersenne Twister PRNG algorithm by a `cipher.Stream` CSPRNG with cryptographic AES.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasepe%2Fgrasp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucasepe%2Fgrasp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasepe%2Fgrasp/lists"}