{"id":13484722,"url":"https://github.com/mattrighetti/envelope","last_synced_at":"2026-01-24T17:12:41.698Z","repository":{"id":196157756,"uuid":"694684052","full_name":"mattrighetti/envelope","owner":"mattrighetti","description":"An environment variables cli tool backed by SQLite","archived":false,"fork":false,"pushed_at":"2026-01-23T10:13:44.000Z","size":236,"stargazers_count":505,"open_issues_count":4,"forks_count":9,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-01-23T17:44:58.648Z","etag":null,"topics":["cli","environment-variables","rust","sqlite"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mattrighetti.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-09-21T13:41:05.000Z","updated_at":"2026-01-16T03:50:51.000Z","dependencies_parsed_at":"2024-03-26T04:32:14.063Z","dependency_job_id":"fb6597a0-f983-4762-aa4b-03593a2bcd93","html_url":"https://github.com/mattrighetti/envelope","commit_stats":null,"previous_names":["mattrighetti/envelope"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/mattrighetti/envelope","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattrighetti%2Fenvelope","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattrighetti%2Fenvelope/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattrighetti%2Fenvelope/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattrighetti%2Fenvelope/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mattrighetti","download_url":"https://codeload.github.com/mattrighetti/envelope/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattrighetti%2Fenvelope/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28732261,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T10:24:43.181Z","status":"ssl_error","status_checked_at":"2026-01-24T10:24:36.112Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","environment-variables","rust","sqlite"],"created_at":"2024-07-31T17:01:31.550Z","updated_at":"2026-01-24T17:12:41.688Z","avatar_url":"https://github.com/mattrighetti.png","language":"Rust","readme":"# envelope\nenvelope is a modern environment variables manager.\n\n```console\nA modern environment variables manager\n\nUsage: envelope [COMMAND]\n\nCommands:\n  add        Add environment variables to a specific environment\n  check      Check which environment is currently exported\n  delete     Delete environment variables\n  drop       Drop environment\n  duplicate  Create a copy of another environment\n  diff       Diff two existing environments\n  edit       Edit environment variables in editor\n  history    Display the historical values of a specific key in a given environment\n  init       Initialize envelope\n  import     Import environment variables\n  list       List saved environments and/or their variables\n  lock       Encrypt envelope\n  revert     Revert environment variable\n  unlock     Decrypt the envelope\n  help       Print this message or the help of the given subcommand(s)\n\nOptions:\n  -h, --help     Print help\n  -V, --version  Print version\n```\n\n## Installation\n\n### Brew\nYou can install envelope from homebrew-core:\n```console\n$ brew install envelope\n```\n\n### Binary\nYou can download the envelope binary in the latest\n[release](https://github.com/mattrighetti/envelope/releases/latest) and copy the\nbinary to a folder in your `$PATH`\n\n### Cargo\nYou can install envelope with cargo, make sure that your `~/.cargo` folder is in\nyour `$PATH`\n```console\n$ git clone https://github.com/mattrighetti/envelope\n$ cd envelope\n$ cargo install --path .\n$ envelope --version\nenvelope 0.3.11\n```\n\n## Building\nenvelope is written in Rust, so you'll need the [Rust\ncompiler](https://www.rust-lang.org/).\n\nTo build envelope:\n```console\n$ git clone https://github.com/mattrighetti/envelope\n$ cd envelope\n$ cargo build --release\n$ ./target/release/envelope --version\nenvelope 0.3.11\n```\n\n## How it works\n`envelope` is a command line utility that leverages an SQLite database\nto keep track of your environment variables so you can easily switch between\ndifferent configurations.\n\n## Usage\n\n### Pretty print\nPipe .env files to envelope to get a pretty format representation of the file\n```console\n$ cat .env | envelope\n\n+-------------------+----------------------------------------------+\n| VARIABLE          | VALUE                                        |\n+-------------------+----------------------------------------------+\n| DATABASE_URL      | postgres://user:password@localhost:5432/mydb |\n+-------------------+----------------------------------------------+\n| SECRET_KEY        | mysecretkey123                               |\n+-------------------+----------------------------------------------+\n| API_KEY           | your_api_key_here                            |\n+-------------------+----------------------------------------------+\n| DEBUG_MODE        | true                                         |\n+-------------------+----------------------------------------------+\n| SMTP_HOST         | smtp.example.com                             |\n+-------------------+----------------------------------------------+\n| AWS_ACCESS_KEY_ID | your_access_key_id                           |\n+-------------------+----------------------------------------------+\n```\n\n### Import\nImport from .env file\n\n```console\n$ envelope import dev .env\n$ envelope list dev\nAPI_KEY=your_api_key_here\nAWS_ACCESS_KEY_ID=your_access_key_id\nDATABASE_URL=postgres://user:password@localhost:5432/mydb\nDEBUG_MODE=true\nSECRET_KEY=mysecretkey123\nSMTP_HOST=smtp.example.com\n```\n\nIt's also possible to import directly from stdin\n```console\n$ cat .env | envelope import prod\n```\n\n### List\nList environment variables of a particular environment.\n```console\n$ envelope list dev\nAPI_KEY=your_api_key\n...\nSMTP_HOST=smtp.example.com\n```\n\nYou can also specify the sorting order of the output using the `--sort` option. The available sorting options are:\n\n- `key` or `k`: Sort by key in ascending order.\n- `value` or `v`: Sort by value in ascending order.\n- `date` or `d`: Sort by creation date in ascending order.\n- `kd`: Sort by key in descending order.\n- `vd`: Sort by value in descending order.\n- `dd`: Sort by creation date in descending order (default).\n\nFor example, to list the environment variables in descending order by their keys:\n\n```console\n$ envelope list dev --sort kd\nSMTP_HOST=smtp.example.com\n...\nAPI_KEY=your_api_key\n```\n\nIf no `--sort` option is provided, the default sorting is by creation date (`da`).\n\n### Add\nAdd env variables to an environment\n```console\n$ envelope add local db_connection https://example.com\n$ envelope list local\nDB_CONNECTION=https://examples.com\n```\nYou can use lowercased variables, they will be uppercased by envelope\n\n### Delete\nDelete entire environments from envelope\n```console\n$ envelope delete dev\n$ envelope list dev\n```\nEnvelope always soft deletes environment variables, they are never actually\ndeleted, this is useful in case you want to take a look at the history of a\ncertain valriable. You can however do a hard delete using the `drop` command\n\n### Drop\nDrops (hard deletes) an environment\n```console\n$ envelope drop dev\n$ envelope list\n```\n\n### Check\nChecks which environment is currently active\n```console\n$ export $(envelope list dev)\n$ envelope check\ndev\n```\n\n### Lock\nEncrypt the envelope database. You will be prompted for a password and a\nconfirmation.\n```console\n$ envelope lock\nPassword: ********\nConfirm password: ********\ndatabase locked successfully\n```\n\n\u003e [!NOTE]\n\u003e\n\u003e when the database is locked, all other commands\n\u003e will fail until you run `envelope unlock`.\n\n### Unlock\nDecrypt the envelope database with the password you set when locking it.\n```console\n$ envelope unlock\nPassword: ********\ndatabase unlocked successfully\n```\n\n### Diff\nDiff two different environments\n```diff\n$ envelope add local db_connection http://localhost:3030\n$ envelope add local dev true\n$ envelope add prod db_connection https://proddb.com\n$ envelope add prod db_user pg\n$ envelope add prod db_pwd somepwd\n$ envelope diff local prod\n# DB_CONNECTION=http://localhost:3030 -\u003e https://proddb.com\n- DB_PWD=somepwd\n- DB_USER=pg\n+ DEV=true\n```\n\n### Revert\nRevert a key value of an environment to a previous value\n```console\n$ envelope add local db_connection http://localhost:3030\n$ envelope add local db_connection http://localhost:2222\n$ envelope add local db_connection http://localhost:3333\n$ envelope list local\nDB_CONNECTION=http://localhost:3333\n$ envelope revert local db_connection\n$ envelope list local\nDB_CONNECTION=http://localhost:2222\n$ envelope revert local db_connection\n$ envelope list local\nDB_CONNECTION=http://localhost:3030\n```\n\n### History\nShows all the values that a certain key in an environment was set to\n```console\n$ envelope add local db_connection http://localhost:3030\n$ envelope add local db_connection http://localhost:2222\n$ envelope add local db_connection http://localhost:3333\n$ envelope history local db_connection\n2025-01-01 00:00:00 DB_CONNECTION=http://localhost:3030\n2025-02-01 00:00:00 DB_CONNECTION=http://localhost:2222\n2025-03-01 00:00:00 DB_CONNECTION=http://localhost:3333\n```\n","funding_links":[],"categories":["Rust"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattrighetti%2Fenvelope","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmattrighetti%2Fenvelope","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattrighetti%2Fenvelope/lists"}