Skip to main content

Meowda 🐱 —— 「喵哒」 Manage multiple Python virtual environments with ease

Project description

Meowda 🐱 —— 「喵哒」

Meowda is a modern Python virtual environment management tool that lets you easily manage multiple Python virtual environments. Built on uv, it provides a conda-like CLI interface (but is not a conda replacement or compatible with conda) focused on simple and fast virtual environment management.

✨ Features

  • 🚀 Fast: Lightning-fast package management powered by uv
  • 🎯 Simple: Intuitive conda-like command line interface
  • 🔄 Flexible: Support for both global and project-level environment management
  • 🔗 Project Linking: Associate projects with specific environments
  • 🛠️ VS Code Integration: Seamless integration into development workflow
  • 📦 Lightweight: Written in Rust for excellent performance

📦 Installation

Prerequisites

Make sure you have uv installed. See the official installation guide for detailed instructions.

Install Meowda

Using uv (Recommended)

uv tool install meowda

Using Cargo

cargo install meowda

🚀 Quick Start

1. Initialize Shell

# For zsh users
meowda init ~/.zshrc
source ~/.zshrc

# For bash users
meowda init ~/.bashrc
source ~/.bashrc

2. Basic Usage

# Create and use a virtual environment
$ meowda create my-project -p 3.12
Using CPython 3.12.11
Creating virtual environment with seed packages at: /Users/user/.local/share/meowda/venvs/my-project
 + pip==25.2
Activate with: source /Users/user/.local/share/meowda/venvs/my-project/bin/activate
Virtual environment 'my-project' created successfully.

$ meowda activate my-project
$ meowda install requests pandas
$ meowda deactivate

# List and manage environments
$ meowda env list
Available global virtual environments:
  my-project (/Users/user/.local/share/meowda/venvs/my-project python 3.12.11)

$ meowda env dir
/Users/user/.local/share/meowda/venvs

$ meowda remove my-project
Virtual environment 'my-project' removed successfully.

💡 Advanced Features

Global vs Local Environments

# Global environments (accessible anywhere)
$ meowda create --global tools -p 3.12
$ meowda activate --global tools

# Local environments (project-specific, stored in .meowda/venvs/)
$ meowda create --local myproject -p 3.11
Using CPython 3.11.13
Creating virtual environment with seed packages at: .meowda/venvs/myproject
 + pip==25.2 + setuptools==80.9.0 + wheel==0.45.1
Virtual environment 'myproject' created successfully.

$ meowda env dir --local
/path/to/project/.meowda/venvs

Development Workflow Example

$ mkdir awesome-app && cd awesome-app
$ meowda create --local awesome-app -p 3.12
$ meowda activate --local awesome-app
$ meowda install fastapi uvicorn pytest sqlalchemy
$ meowda deactivate

Advanced Options

# Recreate environment (clear existing packages)
$ meowda create my-env -p 3.12 --clear

# Fork from the current Python environment
$ meowda fork cloned-env

# Fork from another managed environment
$ meowda fork cloned-tools --from tools

# Fork from any external virtual environment or Python executable
$ meowda fork cloned-ci --from /path/to/.venv
$ meowda fork cloned-system --from /path/to/python

# Install specific versions or from requirements
$ meowda install "django>=4.0,<5.0" "pytest==7.4.0"
$ meowda install -r requirements.txt

# Project linking
$ meowda link my-web-app /path/to/web-project
$ meowda unlink my-web-app

🔌 VS Code Integration

Add to your settings.json:

{
   "python-envs.globalSearchPaths": ["~/.local/share/meowda/venvs"],
  "python-envs.workspaceSearchPaths": [".meowda/venvs"],
}
For Legacy Python Settings
{
   "python.venvFolders": [".meowda/venvs", "~/.local/share/meowda/venvs"]
}

📖 Command Reference

Environment Management

  • meowda create <name> [-p <version>] - Create environment (defaults to Python 3.14)
  • meowda fork <name> - Fork from the current active environment
  • meowda fork <name> --from <env|path> - Fork from another managed environment or any Python environment path/executable
  • meowda activate <name> - Activate environment
  • meowda deactivate - Deactivate current environment
  • meowda remove <name> - Remove environment
  • meowda env list - List all environments
  • meowda env dir - Show storage directory

Package Management

  • meowda install <packages> - Install packages
  • meowda uninstall <packages> - Uninstall packages

Options: --global, --local, --clear

🤔 FAQ

Q: Why was Meowda created?

A: Meowda bridges the gap between conda's convenience and uv's speed. While conda is great for managing environments across projects, it can be heavy. While uv is blazingly fast, managing multiple environments with it can be cumbersome. Meowda combines the best of both worlds by providing a conda-like interface powered by uv's performance.

Q: What's the difference between Meowda and conda?

A: Meowda focuses specifically on Python virtual environment management and provides faster package installation through uv. It's not a complete conda replacement, but rather a lightweight alternative.

Q: Global vs local environments?

A: Global environments are stored in ~/.local/share/meowda/venvs and accessible anywhere. Local environments are stored in project's .meowda/venvs/ and only available within that project.

🙏 Acknowledgement

  • uv - For the virtual environment management core functionality
  • conda - For the inspiration of the CLI interface design

Like Meowda? Give us a ⭐️!

Made with 🐱 by ShigureLab

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meowda-0.2.0a1.tar.gz (28.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

meowda-0.2.0a1-py3-none-win_amd64.whl (330.4 kB view details)

Uploaded Python 3Windows x86-64

meowda-0.2.0a1-py3-none-win32.whl (319.7 kB view details)

Uploaded Python 3Windows x86

meowda-0.2.0a1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (501.2 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

meowda-0.2.0a1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl (509.3 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ s390x

meowda-0.2.0a1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (538.0 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64le

meowda-0.2.0a1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl (537.1 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ i686

meowda-0.2.0a1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (505.1 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

meowda-0.2.0a1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (521.3 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

meowda-0.2.0a1-py3-none-macosx_11_0_arm64.whl (445.3 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

meowda-0.2.0a1-py3-none-macosx_10_12_x86_64.whl (448.8 kB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file meowda-0.2.0a1.tar.gz.

File metadata

  • Download URL: meowda-0.2.0a1.tar.gz
  • Upload date:
  • Size: 28.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for meowda-0.2.0a1.tar.gz
Algorithm Hash digest
SHA256 be80dae515d42b5fcc99f83a0742e09c58fb5166bbc56e9320e4ce81b7a29cca
MD5 48827e936d2314f5237dedf5a49916e5
BLAKE2b-256 bc73f2e54c6bc5d1e485757f1d30d2a5635b02b86e5d3ff8e37cd90c8861b1bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for meowda-0.2.0a1.tar.gz:

Publisher: build-and-release.yml on ShigureLab/meowda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meowda-0.2.0a1-py3-none-win_amd64.whl.

File metadata

  • Download URL: meowda-0.2.0a1-py3-none-win_amd64.whl
  • Upload date:
  • Size: 330.4 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for meowda-0.2.0a1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 2a6aee040088a6a17af363641840a0490c91c31bd4a7ec7a4db892e57dbf0a12
MD5 9cc12ba3bf43042ca9058a5fd324c70e
BLAKE2b-256 6a67d63b07352e69a5d5a31e4dac187a07b4be0e207123dce4b41c1f48da9459

See more details on using hashes here.

Provenance

The following attestation bundles were made for meowda-0.2.0a1-py3-none-win_amd64.whl:

Publisher: build-and-release.yml on ShigureLab/meowda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meowda-0.2.0a1-py3-none-win32.whl.

File metadata

  • Download URL: meowda-0.2.0a1-py3-none-win32.whl
  • Upload date:
  • Size: 319.7 kB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for meowda-0.2.0a1-py3-none-win32.whl
Algorithm Hash digest
SHA256 ce69080a784fe342c3fd7c51b2d9887f9ccf78842fa6b3eae21e01f96d66006b
MD5 457f2339fb78e76238631bfc2539d29e
BLAKE2b-256 02d763da75770b73a1f760a02915c701deef6310a4013c2ec2c012ec4fd8ce26

See more details on using hashes here.

Provenance

The following attestation bundles were made for meowda-0.2.0a1-py3-none-win32.whl:

Publisher: build-and-release.yml on ShigureLab/meowda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meowda-0.2.0a1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for meowda-0.2.0a1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 33f47702b22d066e9993cfe440c56ed843b99ca4a77c0dc57099026d3c4f4ef2
MD5 6e4410e54f6ccc98d94891bea3019702
BLAKE2b-256 86361dc3428f024fddbba5945d9834ba4e9e93610a8e4db3194cfb7ba5db17b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for meowda-0.2.0a1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build-and-release.yml on ShigureLab/meowda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meowda-0.2.0a1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for meowda-0.2.0a1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 c51afacb318551d645e35af35b2cc0f29007c47152a510d387822f57e4f8525a
MD5 c665c628097c8521f1395c4883ea6d3c
BLAKE2b-256 51d736a6e84aebc848caa65dfd0d1815439de48037bfeb2dd568a71db3121b23

See more details on using hashes here.

Provenance

The following attestation bundles were made for meowda-0.2.0a1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: build-and-release.yml on ShigureLab/meowda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meowda-0.2.0a1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for meowda-0.2.0a1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 d6b68a276e1b299cb200a7eecd46dd0a2b548f874133ab8e73cd21be3bec8b09
MD5 321e2454e0f5f5a079df43fdb35b7ba2
BLAKE2b-256 a6ec5d0d5646edceee77e8bc275cc657191fdbdb6c1d4df030ecd2919a954c6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for meowda-0.2.0a1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:

Publisher: build-and-release.yml on ShigureLab/meowda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meowda-0.2.0a1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for meowda-0.2.0a1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4fab49fb29881b1638b5f005585afcf0abd747325eee6d1904ab61adff42857e
MD5 f99a138ad7a108cfe05d38d10a96b9f7
BLAKE2b-256 a493f0b040f3e30ab51a99c073c71461c18d871d0f29b7b1d0963efb8c766732

See more details on using hashes here.

Provenance

The following attestation bundles were made for meowda-0.2.0a1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: build-and-release.yml on ShigureLab/meowda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meowda-0.2.0a1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for meowda-0.2.0a1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 db31120b067042343c68ff5392bb76f150a9102dbc1ad77a1eb838360b33feab
MD5 c1c53d771c07576395f9667fd88c4bde
BLAKE2b-256 296460051250114c64219582e7537e3c40e37a2fb439753489ddb084ed7c8862

See more details on using hashes here.

Provenance

The following attestation bundles were made for meowda-0.2.0a1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: build-and-release.yml on ShigureLab/meowda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meowda-0.2.0a1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for meowda-0.2.0a1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 13c5041d160cfb8a2c3440621a2f0bf7c47b606466be903a0e5ab4668fe416be
MD5 cfe3866a1f226cf81ba43843eabc9863
BLAKE2b-256 1363001ee5023ced7c0d141e4e6562f6eae8a7d75c1e174695deb37c7339eea2

See more details on using hashes here.

Provenance

The following attestation bundles were made for meowda-0.2.0a1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build-and-release.yml on ShigureLab/meowda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meowda-0.2.0a1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for meowda-0.2.0a1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2f71224e1866861d54e7aa93df904b181924e1e178d97c06f0804271cf5b7b1b
MD5 b3a9cbc730bfe8e5ce138361a5742b70
BLAKE2b-256 2fa2d5364d56099b1e29533f92c15fd214264df219b0ba4d995d75fe0ffdda16

See more details on using hashes here.

Provenance

The following attestation bundles were made for meowda-0.2.0a1-py3-none-macosx_11_0_arm64.whl:

Publisher: build-and-release.yml on ShigureLab/meowda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meowda-0.2.0a1-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for meowda-0.2.0a1-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 abeeb9e89ff3358731344fa2cf810963a0d3953ff8e4e6a92f57c12d3ed08a09
MD5 87841c95622b3ea2e1038a38ba5c2f5c
BLAKE2b-256 c7d80567b9574e3d33e6ae008605114268a22b8cf92f855f0c02e3d35f6d9549

See more details on using hashes here.

Provenance

The following attestation bundles were made for meowda-0.2.0a1-py3-none-macosx_10_12_x86_64.whl:

Publisher: build-and-release.yml on ShigureLab/meowda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page