{"id":16248541,"url":"https://github.com/pythonhacker/varuh","last_synced_at":"2025-03-19T19:32:05.189Z","repository":{"id":45190757,"uuid":"426314843","full_name":"pythonhacker/varuh","owner":"pythonhacker","description":"Password manager for the command line for Unix like operating systems","archived":false,"fork":false,"pushed_at":"2023-08-20T04:21:32.000Z","size":179,"stargazers_count":5,"open_issues_count":5,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-11T14:42:08.127Z","etag":null,"topics":["command-line","command-line-tool","encryption","golang","linux","password-manager","security","security-tools","shell","unix-like"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pythonhacker.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,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-09T17:00:31.000Z","updated_at":"2024-02-10T20:18:12.000Z","dependencies_parsed_at":"2024-10-27T21:29:48.231Z","dependency_job_id":"6b36bab6-0cd8-44fe-8cf0-b21d9fca1d2a","html_url":"https://github.com/pythonhacker/varuh","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythonhacker%2Fvaruh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythonhacker%2Fvaruh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythonhacker%2Fvaruh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythonhacker%2Fvaruh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pythonhacker","download_url":"https://codeload.github.com/pythonhacker/varuh/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244493145,"owners_count":20461614,"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":["command-line","command-line-tool","encryption","golang","linux","password-manager","security","security-tools","shell","unix-like"],"created_at":"2024-10-10T14:42:18.318Z","updated_at":"2025-03-19T19:32:04.838Z","avatar_url":"https://github.com/pythonhacker.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Varuh - Command line password manager\n\nPassword management done right for the Unix command line and the shell.\n\nTable of Contents\n=================\n\n* [About](#about)\n* [Install](#install)\n* [Usage](#usage)\n* [Encryption and Security](#encryption-and-security)\n* [Databases](#databases)\n* [Listing and Searching](#listing-and-searching)\n* [Misc](#misc)\n* [Export](#export)\n* [Configuration](#configuration)\n* [License](#license)\n* [Feedback](#feedback)\n\n\nAbout\n=====\n\n`Varuh` is a command line password manager that allows you to keep your passwords and other sensitive data using the power of the shell and Unix. It uses `sqlite` databases to store the information and encrypts it with symmetric encryption ciphers like [AES-256](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) and [XChaCha20-Poly1305](https://www.cryptopp.com/wiki/XChaCha20) .\n\nThe name [Varuh](https://www.wordsense.eu/varuh/#Slovene) means *guardian* or *protector* in the Slovene language.\n\nVaruh is inspired by [ylva](https://github.com/nrosvall/ylva) but it is full re-implementation - with some major changes in the key derivation functions and ciphers. It is written in `Go` and has been tested with Go versions 1.16 and 1.17 on Debian Linux (Antix). It should work on other versions of Linux and *BSD as well.\n\nInstall\n=======\n\n## Binary Release\n\nIf you are on a Debian or Debian derived system, you can directly download and install the latest version. Check out the [releases](https://github.com/pythonhacker/varuh/releases) page and use `dpkg` to install the binary.\n\n    $ sudo dpkg -i varuh-${VERSION}_amd64.deb\n\nThe binary will be installed in `/usr/bin` folder.\n\n## Building from Source\n\nYou need the [Go compiler](https://golang.org/dl/) to build the code. (This can be usually installed on \\*nix machines by the native package managers like *apt-get*).\n\nInstall `make` by using your native package manager. Something like,\n\n    $ sudo apt install make -y\n\nshould work.\n\nThen,\n\n     $ make\n     Building varuh\n     go: downloading github.com/akamensky/argparse v1.3.1\n     go: downloading golang.org/x/crypto v0.0.0-20210921155107-089bfa567519\n     go: downloading github.com/atotto/clipboard v0.1.4\n     go: downloading github.com/kirsle/configdir v0.0.0-20170128060238-e45d2f54772f\n     go: downloading github.com/pythonhacker/argparse v1.3.2\n     go: downloading gorm.io/driver/sqlite v1.2.3\n     ...\n\n    $ sudo make install\n    Installing varuh...done\n\nThe binary will be installed in `/usr/local/bin` folder.\n\n\nUsage\n=====\n\n\t$ varuh -h\n\tusage: varuh [-h|--help] [-I|--init \"\u003cvalue\u003e\"] [-d|--decrypt \"\u003cvalue\u003e\"]\n\t\t\t\t [-C|--clone \"\u003cvalue\u003e\"] [-R|--remove \"\u003cvalue\u003e\"] [-U|--use-db\n\t\t\t\t \"\u003cvalue\u003e\"] [-E|--edit \"\u003cvalue\u003e\"] [-l|--list-entry \"\u003cvalue\u003e\"]\n\t\t\t\t [-x|--export \"\u003cvalue\u003e\"] [-m|--migrate \"\u003cvalue\u003e\"] [-f|--find\n\t\t\t\t \"\u003cvalue\u003e\" [-f|--find \"\u003cvalue\u003e\" ...]] [-e|--encrypt] [-A|--add]\n\t\t\t\t [-p|--path] [-a|--list-all] [-g|--genpass] [-s|--show] [-c|--copy]\n\t\t\t\t [-y|--assume-yes] [-v|--version]\n\n\t\t\t\t Password manager for the command line for Unix like operating\n\t\t\t\t systems\n\n\tOptions:\n\n\t  -h  --help                      Print help information\n\t  -I  --init        \u003cpath\u003e        Initialize a new database\n\t  -d  --decrypt     \u003cpath\u003e        Decrypt password database\n\t  -C  --clone       \u003cid\u003e          Clone an entry with \u003cid\u003e\n\t  -R  --remove      \u003cid\u003e          Remove an entry with \u003cid\u003e or \u003cid-range\u003e\n\t  -U  --use-db      \u003cpath\u003e        Set \u003cpath\u003e as active database\n\t  -E  --edit        \u003cid\u003e          Edit entry by \u003cid\u003e\n\t  -l  --list-entry  \u003cid\u003e          List entry by \u003cid\u003e\n\t  -x  --export      \u003cfilename\u003e    Export all entries to \u003cfilename\u003e\n\t  -m  --migrate     \u003cpath\u003e        Migrate a database to latest schema\n\t  -f  --find        \u003ct1\u003e \u003ct2\u003e ... Search entries with terms\n\t  -e  --encrypt                   Encrypt the current database\n\t  -A  --add                       Add a new entry\n\t  -p  --path                      Show current database path\n\t  -a  --list-all                  List all entries in current database\n\t  -g  --genpass                   Generate a strong password (length: 12 - 16)\n\t  -s  --show                      Show passwords when listing entries\n\t  -c  --copy                      Copy password to clipboard\n\t  -y  --assume-yes                Assume yes to actions requiring confirmation\n\t  -v  --version                   Show version information and exit\n\n\n\tAUTHORS\n\t\tCopyright (C) 2022 Anand B Pillai \u003cabpillai@gmail.com\u003e\n\n\nEncryption and Security\n=======================\n\nVaruh gives the option of two symmetric ciphers - AES (default) and XChacha20-Poly1305.\n\nAES is a block cipher supported with 256-bit key size for encryption and is the current standard for symmetric encryption ciphers.\n\nXChacha20-Poly1305 is a stream cipher with a longer nonce (192 bits) which makes the cipher more resistant to timing attacks than AES-GCM. It also supports 256-bit key size.\n\nThe key derivation uses [Argon2](https://en.wikipedia.org/wiki/Argon2) with 32MB memory and 4 threads with a random cryptographic salt of 128 bit size for both ciphers.\n\nDatabases are created and decrypted with owner `rw` mode (0600). This makes sure the databases are read/write - able only by the owner.\n\nWhen the `auto_encrypt` and `encrypt_on` flags are turned on, the database is always encrypted after an operation so the passwords remain in the clear in memory as well as in disk for a very short time. This increases the security of the data.\n\nFor maximum security, the default settings `auto_encrypt` and `encrypt_on` to true and `visible_passwords` to false is suggested.\n\nDatabases\n=========\n\n`Varuh` works with password databases. Each password database is a sqlite3 file. You can create any number of databases but at any given time there is only one active database which is in decrypted mode. When `auto_encrypt` is turned on (default), the program takes care of automatically encrypting and decrypting databases.\n\n## Create a database\n\n    $ varuh -I mypasswds\n    Created new database - mypasswds\n    Updating active db path - /home/anand/mypasswds\n\n    $ ls -lt mypasswds \n    -rw------- 1 anand anand 8192 Nov  9 23:06 mypasswds\n\nThe password database is created and is active now. You can start adding entries to it.\n\n## Add an entry\n\n    $ varuh -A\n    Title: My Website Login\n    URL: mywebsite.name\n    Username: mememe\n    Password (enter to generate new): \n    Generating password ...done\n\tTags (separated by space): testing test website\n    Notes: Website uses Nginx auth\n    Do you want to add custom fields [y/N]: \n    Created new entry with id: 1\n\nYou can now list the entry with one of the list options.\n\n    $ varuh -l 1\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n    ID: 1\n    Title: My Website Login\n    User: mememe\n    URL: http://mywebsite.name\n    Password: ****************\n\tTags: testing test website\n    Notes: Website uses Nginx auth\n    Modified: 2021-21-09 23:12:35\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n\n## Add an entry with custom fields\n\nFrom version 0.3 onwards, custom fields are supported.\n\n    $ varuh -A\n    Title: Github token\n    URL: https://github.com/mydev/myproject\n    Username: mydev\n    Password (enter to generate new): ghp_ipQrStuVwxYz1a2b3cdEF10ghI689kLaMnOp\n\tTags (separated by space): token github\n    Notes: Never Expires\n    Do you want to add custom fields [y/N]: y\n    Field Name: Domain\n    Value for Domain: github.com\n    Field Name: Type\n    Value for Type: Auth Token\n    Field Name:\n    Created new entry with id: 6\n\n    $ varuh -l 6\n    ID: 6\n    Title: Github token\n    User: mydev\n    URL: https://github.com/mydev/myproject\n    Password: ghp_ipQrStuVwxYz1a2b3cdEF10ghI689kLaMnOp\n\tTags: token github\n    Notes: Never Expires\n    Domain: github.com\n    Type: Auth Token\n    Modified: 2021-21-13 00:07:18\n\nFor more on listing see the [Listing and Searching](#listing-and-searching) section below.\n\n## Edit an entry\n\n    $ varuh -E 1\n    Current Title: My Website Login\n    New Title: My Blog Login\n    Current URL: http://mywebsite.name\n    New URL: myblog.name\n    Current Username: mememe\n    New Username: meblog\n    Current Password: lTzC2z9kRppnYsYl\n    New Password ([y/Y] to generate new, enter will keep old one):\n\tCurrent Tags: testing test website\n\tNew Tags: \n    Current Notes: Website uses Nginx auth\n    New Notes: Website uses Apache\n    Do you want to add custom fields [y/N]:\n    Updated entry.\n\n    $ varuh -l 1 -s\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n    ID: 1\n    Title: My Blog Login\n    User: meblog\n    URL: http://myblog.name\n    Password: myblog123\n\tTags: testing test website\n    Notes: Website uses Apache\n    Modified: 2021-21-09 23:15:29\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n\n## Edit an entry with custom fields\n\nWhen you edit an entry with custom fields, you get the option to change the name of the fields or delete the fields entirely.\n\n    $ varuh -E 6\n    Current Title: Github token\n    New Title:\n    Current URL: https://github.com/mydev/myproject\n    New URL:\n    Current Username: mydev\n    New Username: \n    Current Password: ghp_ipQrStuVwxYz1a2b3cdEF10ghI689kLaMnOp\n    New Password ([y/Y] to generate new, enter will keep old one):\n\tCurrent Tags: token github\n\tNew Tags: \t\n    Current Notes: Never Expires\n    New Notes:\n    Editing/deleting custom fields\n    Field Name: Domain\n\t\tNew Field Name (Enter to keep, \"x\" to delete): x\n\tDeleting field: Domain\n    Field Name: Type\n        New Field Name (Enter to keep, \"x\" to delete): Token Type\n    Field Value: Auth Token\n        New Field Value (Enter to keep): \n    Do you want to add custom fields [y/N]: \n    Created 1 custom entries for entry: 21.\n    Updated entry.\n\n    $ varuh -l 6 -s\n    ID: 6\n    Title: Github token\n    User: mydev\n    URL: https://github.com/mydev/myproject\n    Password: ghp_ipQrStuVwxYz1a2b3cdEF10ghI689kLaMnOp\n\tTags: token github\n    Notes: Never Expires\n    Token Type: Auth Token\n    Modified: 2021-21-13 00:16:41\n\n(*-s* turns on visible passwords)\n\n## Clone an entry\n\nTo clone (copy) an entry,\n\n    $ $ varuh -C 1\n    Cloned to new entry, id: 3\n\n## Remove an entry\n\n    $ varuh -R 1\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n    Title: My Website Login\n    User: mememe\n    URL: https://mywebsite.name\n    Modified: 2021-21-09 23:12:35\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n    Please confirm removal [Y/n]: \n    Entry with id 1 was removed from the database\n\nIt is an error if the id does not exist.\n\n    $ varuh -R 4\n    No entry with id 4 was found\n\n## Remove a range of entries\n\nYou can remove a range of entry ids from id1-id2 using the following command.\n\n    $ varuh -R id1-id2\n\nExample:\n\n    $ varuh -R 1-4\n\nThis will remove entries from 1 to 4 inclusive, asking for confirmation from the user every time.\n\n## Removal without confirmation\n\nIf you are very sure, you can avoid the confirmation prompt by passing the `-y` flag which will remove the entry without confirmation.\n\n    $ varuh -R 2 -y\n    ...\n    ...\n    ...\n    Entry with id 2 was removed from the database\n\n## Switch to a new database\n\nOnce a database is active, creating another one automatically encrypts the current one and makes the new one the active database. The automatic encryption happens only if the configuration flag `auto_encrypt` is turned on (See section [Configuration](#configuration) below).\n\n    $ varuh -I mysecrets\n    Encrytping current database - /home/anand/mypasswds\n    Password: \n    Password again: \n    Encryption complete.\n    Created new database - mysecrets\n    Updating active db path - /home/anand/mysecrets\n\nThe previous database is now encrypted with the configured block cipher using the password. Please make sure you remember the password.\n\n## Switch back to previous database\n\nIf you want to switch back to a previous database, you can use the `-U` option. The same process is repeated with the current database getting encrypted and the older one getting decrypted.\n\n    $ varuh -U mypasswds\n    Encrypting current active database - /home/anand/mysecrets\n    Password: \n    Password again: \n    Encryption complete.\n    Database /home/anand/mypasswds is encrypted, decrypting it\n    Password: \n    Decryption complete.\n    Switched active database successfully.\n\n## Database Migration\n\n(New in version 0.4)\n\nWhen new features are added - sometimes new fields would be required to be added in the database schema. To make sure your old databases work with the new features in such cases, the `-m/--migrate` option can be used to migrate your existing databases.\n\n\t$ ./varuh -m /home/anand/mypasswds\n\tPassword:\n\tDecryption complete.\n\tMigrating tables ...\n\n\tEncryption complete.\n\tMigration successful.\n\nFor migration you need to provide the database path - even for the active database. Once migrated, you can continue to use your database as before.\n\nNOTE: It is suggested to make a backup copy of your current active database before migration.\n\n## Manual encryption and decryption\n\nYou can manually encrypt the current database using the `-e` option.\n\n    $ varuh -e\n    Password: \n    Password again: \n    Encryption complete.\n\nNote that once you encrypt the active database, you cannot use the listings any more unless it is decrypted.\n\n    $ varuh -l 2\n    No decrypted active database found.\n\nManually decrypt the database using `-d` option.\n\n    $ varuh -d mypasswds \n    Password: \n    Decryption complete.\n\nNow the database is active again and you can see the listings.\n\n    $ varuh -l 3\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n    ID: 2\n    Title: My Blog Login\n    User: myblog.name\n    URL: http://meblog\n    Password: *********\n\tTags: test testing website\n    Notes: Website uses Apache\n    Modified: 2021-21-09 23:21:32\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n\n## Always on encryption\n\nIf the config param `encrypt_on` is set to `true` along with `auto_encrypt` (default), the program will keep encrypting the database after each action, whether it is an edit/listing action. In this mode, the decryption password is saved in memory and re-used for encryption to avoid too many password queries.\n\n### Example\n\n    $ varuh -f my -s\n    Password: \n    Decryption complete.\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n    ID: 2\n    Title: MY LOCAL BANK\n    User: banklogin\n    URL: https://my.localbank.com\n    Password: bankpass123\n\tTags: bank banking finance\n    Notes: \n    Modified: 2021-21-18 12:44:10\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n\n    Encryption complete.\n\nIn this mode, your data is provided maximum safety as the database remains decrypted only for a short while on the disk while the data is being read and once done is encrypted back again.\n\nListing and Searching\n=====================\n\n## List an entry using id\n\nTo list an entry using its id,\n\n    $ varuh -l 8\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n    ID: 8\n    Title: Google account\n    User: anandpillai@alumni.iitm.ac.in\n    URL: \n    Password: ***********\n    Notes: \n    Modified: 2021-21-25 15:02:50\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n\n## To search an entry\n\nAn entry can be searched on its title, username, URL or notes. Search is case-insensitive.\n\n    $ varuh -f google\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n    ID: 8\n    Title: Google account\n    User: anandpillai@alumni.iitm.ac.in\n    URL: \n    Password: **********\n    Notes: \n    Modified: 2021-21-25 15:02:50\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n    ID: 9\n    Title: Google account\n    User: xyz@gmail.com\n    URL: \n    Password: ********\n    Notes: \n    Modified: 2021-21-25 15:05:36\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n    ID: 10\n    Title: Google account\n    User: somethingaboutme@gmail.com\n    URL: \n    Password: ***********\n    Notes: \n    Modified: 2021-21-25 15:09:51\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n\n\n## To search using multiple terms\n\nThe `-f` option supports multiple terms, so you can specify this more than one time to narrow a search down to a specific entry.\n\n    $ varuh -f google -f anand\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n    ID: 8\n    Title: Google account\n    User: anandpillai@alumni.iitm.ac.in\n    URL: \n    Password: **********\n    Notes: \n    Modified: 2021-21-25 15:02:50\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n\n    $ varuh -f google -f priya\n    Entry for \"google priya\" not found\n\n## To list all entries\n\nTo list all entries, use the option `-a`.\n\n    $ varuh -a\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n    ID: 1\n    Title: My Bank #1\n    User: myusername1\n    URL: https://mysuperbank1.com\n    Password: ***********\n    Notes: \n    Modified: 2021-21-15 15:40:29\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n    ID: 2\n    Title: My Digital Locker #1\n    User: mylockerusername\n    URL: https://mysuperlocker1.com\n    Password: **********\n    Notes: \n    Modified: 2021-21-18 12:44:10\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n    ID: 3\n    Title: My Bank Login #2\n    User: mybankname2\n    URL: https://myaveragebank.com\n    Password: **********\n    Notes: \n    Modified: 2021-21-19 14:16:33\n    \u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\n    ...\n\nBy default the listing is in ascending ID order. This can be changed in the configuration (see below).\n\n## Turn on visible passwords\n\nTo turn on visible passwords, modify the configuration setting (see below) or use the `-s` flag.\n\n## Copy password to clipboard\n\nTo copy a password to clipboard, use the `-c` or `--copy` flag. This works *only if* the result for a listing is single. For example this will work when listing an entry by id or when a search results in a single hit. It *will not work* when listing all entries or when a search results in multiple hits.\n\nThis is useful to copy the password to a password input field in the browser for example.\n\n## See current active database path\n\n    $ varuh -p\n    /home/anand/mypasswds\n\nExport\n======\n\n`Varuh` allows to export password databases to the following formats.\n\n1. `csv`\n2. `markdown`\n3. `html`\n4. `pdf`\n\nTo export use the `-x` option. The type of file is automatically figured out from the filename extension.\n\n    $ varuh -x passwds.csv\n    !WARNING: Passwords are stored in plain-text!\n    Exported 14 records to passwds.csv .\n    Exported to passwds.csv.\n\n    $ varuh -x passwds.html\n    Exported to passwds.html.\n\nPDF export is supported if `pandoc` is installed along with the required `pdflatex` packages. The following command (on `Debian` and derived systems) should install the required dependencies.\n\n    $ sudo apt-get install pandoc texlive-latex-base texlive-fonts-recommended texlive-fonts-extra texlive-latex-extra texlive-xetex lmodern -y\n\nThen,\n\n    $ varuh -x passwds.pdf\n    pdftk not found, PDF won't be secure!\n\n    File passwds.pdf created without password.\n    Exported to passwds.pdf.\n\nPDF files are exported in landscape mode with 150 dpi and 600 columns. To avoid the data not fitting into one page the fields `Notes` and `URL` are not exported.\n\nIf `pdftk` is installed, the PDF files will be encrypted with an (optional) password.\n\n    $ sudo apt-get install pdftk -y\n\n    $ varuh -x passwds.pdf\n    PDF Encryption Password: ******\n    File passwds.pdf created without password.\n    Added password to passwds.pdf.\n    Exported to passwds.pdf.\n\nMisc\n====\n\nThe following miscellaneous actions are supported.\n\nGenerate a strong password of length ranging from 12 - 16.\n\nA `strong` password is defined as a cryptographically secure string contaning at least one upper-case letter, one punctuation character and one number.\n\n    $ varuh -g\n    7%zv/uzIgpqexJ\n\n    By passing the `-c` option, the password is also copied to the clipboard.\n\n    $ varuh -g -c \n    y6UpD$~uBI#8\n    Password copied to clipboard\n\n\nConfiguration\n=============\n\n`Varuh` uses the standard [Free Desktop XDG Base Directory Spec](https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.8.html) for storing its configuration in a JSON file. This usually translates to a folder name *.config/varuh* in your home directory on *nix systems.\n\nThe config file is named *config.json*. It looks as follows.\n\n    `{\n        \"active_db\": \"/home/anand/mypasswds\",\n        \"cipher\": \"aes\",\n        \"auto_encrypt\": true,\n        \"visible_passwords\": false,\n        \"encrypt_on\": true,\n        \"path\": \"/home/anand/.config/varuh/config.json\",\n        \"list_order\": \"id,asc\",\n        \"delimiter\": \"\u003e\",\n        \"color\": \"default\",\n        \"bgcolor\": \"bgblack\"\n    }\n    `\nYou can modify the following variables.\n\n1. `auto_encrypt` - Set this to true to enable automatic encryption/decryption when switching databases. Otherwise you have to do this manually. The default is `true`.\n1. `cipher` - The block cipher to use. This is `aes` by default. To switch to `xchacha20-poly1305` set this to `xchacha`,`chacha` or `xchachapoly`.\n1. `visible_passwords` - Set this to true to always show passwords in clear text in listings. Otherwise passwords are masked using asterisks. This can be overridden with the `-s` flag.\n1. `encrypt_on` - Set this to true for the program to always encrypt the database after every action. This makes sure that the database is never sitting in the unencrypted form on the disk and increases the security.\n1. `list_order` - Ordering when using the `-a` option to view all listings. Supported fields are,\n   * `id` - Uses the `ID` field.\n   * `timestamp` - Uses the `Modified` timestamp field. Use this to show latest entries first.\n   * `title` - Uses the `Title` field.\n   * `username` - Uses the `User` field.\n\n    Always specify this configuration as `\u003cfield\u003e,\u003corder\u003e`. Supported `\u003corder\u003e` values are `asc` and `desc`.\n1. `delimiter` - This modifies the delimiter string when printing a listing. Only one character is allowed.\n1. `color` - The foreground color of the text when printing listings.\n1. `bgcolor` - The background color of the text when printing listings.\n\nVisit this [gist](https://gist.github.com/abritinthebay/d80eb99b2726c83feb0d97eab95206c4) to see the supported color options. All color values must be in lower-case.\n\nThe fields `active_db` and `path` are for internal use. Suggest not to modify them.\n\nLicense\n=======\n\n`Varuh` is licensed under the [GNU GPL V3](https://www.gnu.org/licenses/gpl-3.0.html) license. See the LICENSE file for details.\n\nFeedback\n========\n\nPlease send your valuable feedback and suggestions to my email available in the program's usage listing.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpythonhacker%2Fvaruh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpythonhacker%2Fvaruh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpythonhacker%2Fvaruh/lists"}