{"id":24905777,"url":"https://github.com/jcserv/nvy","last_synced_at":"2026-02-14T11:07:27.702Z","repository":{"id":275152549,"uuid":"924957978","full_name":"jcserv/nvy","owner":"jcserv","description":"nvy is a CLI tool, written in Rust, for managing multiple .env files in a project","archived":false,"fork":false,"pushed_at":"2025-03-01T13:10:23.000Z","size":49,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-21T11:53:23.414Z","etag":null,"topics":["cli","configuration","env","rust"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/nvy","language":"Rust","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/jcserv.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":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-31T00:08:02.000Z","updated_at":"2025-03-01T13:10:27.000Z","dependencies_parsed_at":"2025-03-01T14:21:28.452Z","dependency_job_id":"74cbc6ae-e012-4bae-83ba-df6630ba72e9","html_url":"https://github.com/jcserv/nvy","commit_stats":null,"previous_names":["jcserv/nvy"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/jcserv/nvy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcserv%2Fnvy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcserv%2Fnvy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcserv%2Fnvy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcserv%2Fnvy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jcserv","download_url":"https://codeload.github.com/jcserv/nvy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcserv%2Fnvy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279214675,"owners_count":26127762,"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","status":"online","status_checked_at":"2025-10-16T02:00:06.019Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","configuration","env","rust"],"created_at":"2025-02-02T00:24:51.821Z","updated_at":"2025-10-16T16:31:51.923Z","avatar_url":"https://github.com/jcserv.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nvy 😡\n\n![visitors](https://img.shields.io/endpoint?url=https://vu-mi.com/api/v1/views?id=jcserv/nv) ![downloads](https://img.shields.io/crates/d/nvy)\n\nnvy (pronounced \"ehn-vee\", like the word \"envy\") is a simple command line tool for managing multiple env files (profiles) in a project.\n\n- supports exporting to a target file\n- supports exporting to a shell\n  - note: child processes cannot modify the environment of the parent process, so the `use` command outputs the command text which can be eval'd to set the environment variables, when in shell mode.\n\n## installation 📦\n\n### homebrew\n`brew tap jcserv/cask`\n\n`brew install nvy`\n\n### cargo\n\n`cargo binstall nvy` ([cargo-binstall](https://github.com/cargo-bins/cargo-binstall?tab=readme-ov-file#installation))\n\nor\n\n`cargo install nvy`\n\n## usage ⚙️ \n\n1. `nvy init` - to create a new nvy.yaml file in the current working directory\n2. switching profiles\n   - shell mode:\n     -  `eval \"$(nvy use \u003cprofile\u003e)\"` - to switch between profiles\n     - You can add an alias to your shell config to make this easier: `alias nv='eval \"$(nvy use $1)\"'` \n   - file mode:\n     - `nvy target \u003ctarget-file\u003e` to set the target file to write to\n     - `nvy use \u003cprofile\u003e` to switch between profiles\n\nnote: you can also use `nvy use \u003cprofile1\u003e \u003cprofile2\u003e ...` to use multiple profiles\n\n## why 🤔\n\nhave you ever had multiple configurations with different environment variables that you had to switch between?\n\nrather than tweaking the file by hand, or commenting out code, you can now: \n1. define separate profiles (a .env* file for each)\n2. use `nvy` to easily switch between\n\nalso, this was an opportunity for me to learn Rust by doing.\n\n## references 📚\n- [Command Line Applications in Rust](https://rust-cli.github.io/book/index.html)\n- [How to Deploy Rust Binaries with GitHub Actions](https://dzfrias.dev/blog/deploy-rust-cross-platform-github-actions/)\n- [How to Publish your Rust project on Homebrew](https://federicoterzi.com/blog/how-to-publish-your-rust-project-on-homebrew/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcserv%2Fnvy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjcserv%2Fnvy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcserv%2Fnvy/lists"}