{"id":20170581,"url":"https://github.com/yds12/guarakapa","last_synced_at":"2025-04-10T02:27:34.011Z","repository":{"id":46136430,"uuid":"386026371","full_name":"yds12/guarakapa","owner":"yds12","description":"Password manager for the terminal.","archived":false,"fork":false,"pushed_at":"2023-08-20T16:48:40.000Z","size":93,"stargazers_count":3,"open_issues_count":10,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T03:53:22.695Z","etag":null,"topics":["cli","command-line","cryptography","password","password-manager","rust","terminal","tui"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/yds12.png","metadata":{"files":{"readme":"README.md","changelog":null,"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-07-14T17:42:38.000Z","updated_at":"2022-02-19T09:57:29.000Z","dependencies_parsed_at":"2022-08-26T16:10:50.270Z","dependency_job_id":null,"html_url":"https://github.com/yds12/guarakapa","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yds12%2Fguarakapa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yds12%2Fguarakapa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yds12%2Fguarakapa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yds12%2Fguarakapa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yds12","download_url":"https://codeload.github.com/yds12/guarakapa/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248143861,"owners_count":21054837,"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":["cli","command-line","cryptography","password","password-manager","rust","terminal","tui"],"created_at":"2024-11-14T01:19:44.255Z","updated_at":"2025-04-10T02:27:33.979Z","avatar_url":"https://github.com/yds12.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"![tests](https://github.com/yds12/guarakapa/actions/workflows/build_and_test.yml/badge.svg)\n\n**This is a work in progress. Please do not trust it with your passwords.**\n\nA password manager for the Linux (X11) terminal written in Rust.\n\n# Install and Run\n\nInstall dependencies (`openssl`, `libxcb-shape` and `libxcb-xfixes`).\nFor Ubuntu:\n\n    $ apt install libssl-dev libxcb-shape0-dev libxcb-xfixes0-dev\n\nInstall using cargo:\n\n    $ git clone https://github.com/yds12/guarakapa\n    $ cd guarakapa\n    $ cargo install --path .\n\nAnd run:\n\n    $ kapa\n\nRun tests with:\n\n    $ cargo test -- --test-threads=1               # all tests\n    $ cargo test --bins --lib                      # unit tests\n    $ cargo test --test '*' -- --test-threads=1    # integration tests\n\nFor now, we have to avoid running integration tests in parallel because they\nall manipulate the same data file.\n\n# About\n\nThis project started with the purpose of learning Rust, how to use its testing\ntools, and the basics of cryptography.\n\nIt is a command line program for Linux that enables you to save your passwords\nand retrieve them (using a master password) directly via the clipboard.\n\nThe core design principles are:\n\n* **Minimalism:** keep the source code, number of dependencies, binary size and\ncompilation time as small as possible;\n\n* **Security:** use standard highly-secure cryptography algorithms, only decrypt\nwhat is necessary at a given moment, keep track of the version used to create\nthe password file, extensive use of tests;\n\n* **Usability:** we strive to make it as easy as possible to use in a terminal.\n\nWe took some inspiration from\n[rooster](https://github.com/conradkleinespel/rooster).\n\n## Features\n\n* Entries have an entry name, a description, a username, an email, other notes,\nand a password as fields;\n* List entries: only entry names are decrypted, not the entries themselves;\n* Add new entry: user is prompted about the entry fields;\n* Retrieve entry: user types the entry name, the selected entry is shown,\npassword is stored in the clipboard;\n* Passwords should not be visible when user is typing;\n* Find your password file;\n* Find which version of the program was used to create your password file, so\nthat in case there is a breaking change you can still recover it with an older\nversion.\n\n## Commands and Usage\n\nThe basic commands are:\n\n    $ kapa                   # creates a new data file, or, if it already\n                             # exists, displays the help text\n\n    $ kapa ls                # lists entry names\n    $ kapa \u003centry_name\u003e      # gets entry with specified name\n    $ kapa add \u003centry_name\u003e  # adds entry with specified name\n\nLearn more about all the commands and options with:\n\n    $ kapa --help\n\nBackups can be done by copying the password file (find it with `kapa path`).\nWe might implement an export function to export everything unencrypted to a\nJSON, TOML or YAML file.\n\n# Cryptography\n\nWe will use AES-256 in CBC mode for encryption. An initialization vector (IV) is\nrandomly generated and stored with each message/entry. For the moment, we have\nno plans to use MAC or anything for authentication -- i.e. you will not be able\nto tell if the data has been tampered with.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyds12%2Fguarakapa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyds12%2Fguarakapa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyds12%2Fguarakapa/lists"}