Skip to main content

uv-shell-hook

A cross-platform shell integration for uv that adds convenient uv activate and uv deactivate commands to manage Python virtual environments across different shells and operating systems.

Features

  • Cross-platform support: Works on Linux, macOS, and Windows
  • Multi-shell support: bash, zsh, Fish, PowerShell, and Windows CMD
  • Consistent interface: Same uv activate and uv deactivate commands across all shells
  • Virtual environment discovery: Automatically finds virtual environments in multiple locations

Installation

$ uv tool install uv-shell-hook
$ uv-shell-hook --help

# or use it with uvx directly

$ uvx uv-shell-hook --help

Quick Start

Choose your shell and follow the setup instructions below:

Bash

Add the uv function to your shell:

# Add to ~/.bashrc or ~/.bash_profile
eval "$(uv-shell-hook bash)"

Or manually add the function:

uv-shell-hook bash >> ~/.bashrc
source ~/.bashrc

Zsh

Add the uv function to your shell:

# Add to ~/.zshrc
eval "$(uv-shell-hook zsh)"

Or manually add the function:

uv-shell-hook zsh >> ~/.zshrc
source ~/.zshrc

Fish

Add the uv function to your shell:

# Add to ~/.config/fish/config.fish
uv-shell-hook fish | source

Or manually add the function:

uv-shell-hook fish >> ~/.config/fish/config.fish

PowerShell

Add the uv function to your PowerShell profile:

# Add to your PowerShell profile (run $PROFILE to see location)
uv-shell-hook powershell | Out-String | Invoke-Expression

Or save it permanently:

uv-shell-hook powershell | Add-Content $PROFILE

Windows CMD

Save the batch script and add it to your PATH:

# Save the batch script
uv-shell-hook cmd > uv.bat

# Move to a directory in your `PATH` (e.g., C:\Windows\System32 or create a local bin directory)
move uv.bat C:\Users\%USERNAME%\bin\

Make sure the directory containing uv.bat is in your system PATH.

Usage

Once installed, you can use the enhanced uv commands in any supported shell:

Activate a Virtual Environment

The uv activate command will search for virtual environments in the following locations (in order):

  1. <path>/.venv - Local .venv directory
  2. <path> itself (if it ends with .venv)
  3. ~/.virtualenvs/<name> - Named environment directory
# Activate virtual environment in current directory
uv activate

# Activate virtual environment in specific path
uv activate ./my-project

# Activate virtual environment by name from ~/.virtualenvs/my-project
# i.e. mimic `workon myproject` from virtualenvwrapper or `conda activate myproject` from conda
uv activate my-project

# Activate specific .venv path
uv activate /path/to/project/.venv

Deactivate Virtual Environment

# Deactivate currently active virtual environment
uv deactivate

Other uv Commands

All other uv commands work exactly as before:

uv init
uv add requests
uv run python script.py
uv sync
# ... any other `uv` command

Troubleshooting

If you encounter issues, try the following:

  • Ensure the shell configuration file is sourced correctly (e.g., source ~/.bashrc or source ~/.zshrc).
  • Check that the uv-shell-hook command is available in your PATH.
  • Verify that the virtual environment exists in the expected location.
  • If using Fish, ensure you have the latest version of Fish shell that supports the syntax used.
  • For PowerShell, ensure your execution policy allows running scripts (Set-ExecutionPolicy RemoteSigned).
  • If you have issues with CMD, ensure the uv.bat file is in a directory included in your system PATH.
  • Check the uv documentation for any updates or changes to command usage.
  • If you have custom virtual environment locations, ensure they are correctly set in your shell configuration.

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

Release files for uv-shell-hook 0.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uv-shell-hook 0.1.7
File Size Uploaded
uv_shell_hook-0.1.7.tar.gz 31.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for uv-shell-hook 0.1.7
File Interpreter ABI Platform
uv_shell_hook-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 43.0 kB

Release files / uv_shell_hook-0.1.7.tar.gz

Download URL uv_shell_hook-0.1.7.tar.gz
Size 31.8 kB
Tags Source
SHA-256 checksum
How to use checksums
452c57329da781167ac69aeb135b0e2fd9ff5f2f6d17df2f1ac017a64a365b78
BLAKE2b-256 checksum
How to use checksums
57c57be24b1f063342520952f0c094c772eb1826244b7c4bfe0dda79afa8d18d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 30, 2025.

Transparency log

Release files / uv_shell_hook-0.1.7-py3-none-any.whl

Download URL uv_shell_hook-0.1.7-py3-none-any.whl
Size 11.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
01ad10dee69931e6f94e61a916921c2b7abfa9f06982cef733660c37df410629
BLAKE2b-256 checksum
How to use checksums
bad24617793bd864560ce1c31e1644da739d0224be3b03c5784e19d6536f6473
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 30, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.7 This release

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page