{"id":22585376,"url":"https://github.com/xmodar/uvn","last_synced_at":"2026-02-08T21:31:19.088Z","repository":{"id":266224373,"uuid":"879983256","full_name":"xmodar/uvn","owner":"xmodar","description":"uvn is conda for uv; a centralized Python virtual environment manager.","archived":false,"fork":false,"pushed_at":"2024-11-02T18:59:28.000Z","size":35,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-11-28T10:35:31.472Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/xmodar.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,"zenodo":null}},"created_at":"2024-10-28T22:42:48.000Z","updated_at":"2025-04-10T12:19:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"b58f8bc3-8811-47b7-b619-650363eb3b5b","html_url":"https://github.com/xmodar/uvn","commit_stats":null,"previous_names":["xmodar/uvn"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/xmodar/uvn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmodar%2Fuvn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmodar%2Fuvn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmodar%2Fuvn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmodar%2Fuvn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xmodar","download_url":"https://codeload.github.com/xmodar/uvn/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmodar%2Fuvn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29244653,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-08T21:00:43.743Z","status":"ssl_error","status_checked_at":"2026-02-08T20:59:20.374Z","response_time":57,"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":[],"created_at":"2024-12-08T07:08:29.775Z","updated_at":"2026-02-08T21:31:19.083Z","avatar_url":"https://github.com/xmodar.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# uvn\n\n[![PyPI version](https://img.shields.io/pypi/v/uvn)](https://pypi.org/project/uvn/)\n[![License](https://img.shields.io/pypi/l/uvn)](https://opensource.org/licenses/MIT)\n[![Python version](https://img.shields.io/pypi/pyversions/uvn)](https://pypi.org/project/uvn/)\n[![Downloads](https://img.shields.io/pypi/dd/uvn)](https://pypi.org/project/uvn/)\n[![Contributions Welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg)](https://github.com/yourusername/uvn)\n\n[`uvn`](https://github.com/xmodar/uvn) is a centralized Python virtual environment manager designed to work alongside [`uv`](https://astral.sh/uv), similar to [`conda`](https://conda.io) for general environment management.\n\n## Highlights\n\n- 🎯 **Centralized Environments**: Manage all environments from a single location.\n- 🛠️ **`uv` Integration**: Complements `uv` to streamline virtual environment management.\n- ⚡️ **Simple CLI Interface**: Easily list, create, activate, and remove environments with straightforward commands.\n- 🗂️ **Export Options**: Quickly export configurations as `requirements.txt` or inline script metadata.\n- 💾 **Cloning**: Easily clone environments to create new ones.\n- 🚀 **Minimal Dependencies**: Designed for simplicity and speed.\n\n## Installation\n\nInstall `uv` first.\n\n```bash\n# On macOS and Linux\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n# On Windows\npowershell -ExecutionPolicy ByPass -c \"irm https://astral.sh/uv/install.ps1 | iex\"\n```\n\n\u003e [!CAUTION]\n\u003e Do not install `uv` via `pip`; use the shell commands above.\n\nThen, install `uvn` with the `cli` extra.\n\n```bash\n# From PyPI\nuv tool install uvn[cli]\n\n# From GitHub\nuv tool install uvn[cli] @ git+https://github.com/xmodar/uvn\n```\n\n\u003e [!IMPORTANT]\n\u003e Although `uvn` can be installed via `pip`, using `uv` is recommended for best integration.\n\nFinally, install `uvna` for easy shell activation (e.g., in `~/.bashrc` for `bash`).\n\n```bash\ntarget=\"~/.bashrc\"\nuvna=$(cat \u003c\u003c'EOF'\nuvna() {\n    activate=$(uvn activate --quiet \"$1\")\n    if [[ -n \"$activate\" ]]; then\n        eval \"$activate\"\n    else\n        uvn list\n        echo \"Could not activate '\"$1\"'!\" \u003e\u00262\n    fi\n}\nEOF\n)\ntarget=\"${target/#\\~/$HOME}\"\nif [[ -f \"$target\" ]] \u0026\u0026 grep -q \"uvna() {\" \"$target\"; then\n  sed -i \"/^uvna() {/,/^}$/d\" \"$target\"\nfi\necho \"$uvna\" \u003e\u003e \"$target\"\nsource \"$target\"\n```\n\n\u003e [!TIP]\n\u003e Install shell completion (optional):\n\u003e ```bash\n\u003e uvn --install-completion\n\u003e ```\n\n## Usage\n\nAfter installing `uvn`, manage virtual environments that are centralized and accessible from any directory, similar to `conda`.\n\n### Quick Start\n\nTo begin, create and activate an environment.\n\n```bash\nuvn create test --python 3.12\nuvna test\n```\n\n\u003e [!WARNING]\n\u003e Currently, `uvn activate \u003cENV_NAME\u003e` only outputs the command for activation. Use `uvna` or manually run the output command to activate.\n\nThe `list` and `remove` commands are simple.\n\n```bash\n# List environments with their sizes\nuvn list --size\n\n# Remove the 'test' environment\nuvn remove test\n```\n\nTo install packages, you can simply use `uv pip` in an activated environment.\n\n```bash\nuvna test\nuv pip install # ...\n```\n\nThe `export` command offers various options for exporting environment configurations.\n\n```bash\n# Print dependencies as in requirements.txt\nuvn export test\n\n# Export inline script metadata\nuvn export test py --short --lower\n\n# Generate a requirements.txt file\nuvn export test requirements.txt\n\n# Prepend inline script metadata (automatically detects \".py\")\nuvn export test script.py\n\n# Clone the environment\nuvn fork test test2\n```\n\n\u003e [!TIP]\n\u003e Use `--help` with any command to see available options.\n\n### Commands\n\nAvailable commands in `uvn`:\n\n```plaintext\nUsage: uvn [OPTIONS] COMMAND [ARGS]...\n\n╭─ Commands ──────────────────────────────────────────────────────────────────────────────────────────╮\n  list       List all virtual environments.\n  create     Create a virtual environment.\n  remove     Remove a virtual environment.\n  export     Export a virtual environment.\n  fork       Copy a virtual environment.\n  activate   Show environment command.\n  version    Show uvn version.\n╰─────────────────────────────────────────────────────────────────────────────────────────────────────╯\n\n╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────╮\n --install-completion Install completion for the current shell.\n --show-completion    Show completion for the current shell, to copy it or customize the installation.\n --help               Show this message and exit.\n╰─────────────────────────────────────────────────────────────────────────────────────────────────────╯\n```\n\n\u003e [!TIP]\n\u003e Commands support prefixes (e.g., `uvn c` and `uvn cr` are short for `uvn create`).\n\n\u003e [!NOTE]\n\u003e The location of virtual environments can be set by changing the `UVN_DIR` environment variable. The default path is `~/.virtualenvs`.\n\n## Contributing\n\nContributions are welcome! For suggestions or issues, please submit a pull request or open an issue on [GitHub](https://github.com/xmodar/uvn).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxmodar%2Fuvn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxmodar%2Fuvn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxmodar%2Fuvn/lists"}