Skip to content

🐱 Meowda β€”β€” γ€Œε–΅ε“’γ€ Manage multiple Python virtual environments with ease

License

Notifications You must be signed in to change notification settings

ShigureLab/meowda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

53 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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

# 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.venvFolders": [".meowda/venvs", "~/.local/share/meowda/venvs"]
}

πŸ“– Command Reference

Environment Management

  • meowda create <name> -p <version> - Create environment
  • 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

About

🐱 Meowda β€”β€” γ€Œε–΅ε“’γ€ Manage multiple Python virtual environments with ease

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages