Skip to content

Commit 185ef11

Browse files
committed
update readme to mention python support
1 parent 4e9fa66 commit 185ef11

1 file changed

Lines changed: 38 additions & 2 deletions

File tree

README.md

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# xpm - Universal Package Manager Wrapper
22

3-
Working across multiple projects with different package managers?
3+
Working across multiple projects with different package managers?
44

5-
You can use `xpm` instead of `npm`/`yarn`/`pnpm`/`bun`.
5+
You can use `xpm` instead of `npm`/`yarn`/`pnpm`/`bun` (and even `pip`/`poetry`/`uv`).
66

77
Think of `xpm` as your universal translator for package managers. When you run `xpm`, it figures out which package manager your project uses, ensures your dependencies are up-to-date, and runs the appropriate command. It's like having muscle memory that works everywhere.
88

@@ -26,6 +26,7 @@ npm install -g @assistant-ui/xpm
2626
- 🎯 **Unified commands** - identical commands across all package managers
2727
- 📦 **Workspace aware** - correctly handles monorepo operations
2828
- 🏃 **Runs from anywhere** - works in project subdirectories
29+
- 🌍 **Multi-language** - supports JavaScript and Python ecosystems
2930

3031

3132
## Usage
@@ -78,6 +79,41 @@ Default: `npm`
7879
2. Config file (`~/.config/xpm/config.json` or `~/.xpmrc`)
7980
3. Default fallback (`npm`)
8081

82+
## Python Support
83+
84+
While xpm is primarily designed for JavaScript projects, it also supports Python package managers for a unified development experience across languages.
85+
86+
### Supported Python Package Managers
87+
88+
- **pip** - Detects `requirements.txt`
89+
- **pipenv** - Detects `Pipfile` and `Pipfile.lock`
90+
- **poetry** - Detects `pyproject.toml` and `poetry.lock`
91+
- **uv** - Detects `uv.lock`
92+
- **conda** - Detects `environment.yml`
93+
94+
### Python Usage Examples
95+
96+
```bash
97+
# In a Python project
98+
xpm install # Runs pip/pipenv/poetry install
99+
xpm install flask # Adds flask package
100+
xpm remove flask # Removes flask package
101+
102+
# Poetry project
103+
xpm install --dev pytest # Adds pytest as dev dependency
104+
105+
# UV project
106+
xpm sync # Syncs dependencies
107+
xpm update # Updates lockfile
108+
```
109+
110+
### Detection Priority
111+
112+
1. **Lockfiles** - Most specific (e.g., `poetry.lock` → Poetry)
113+
2. **Package files** - Project configuration (e.g., `Pipfile` → Pipenv)
114+
3. **Fallback** - Uses pip if `requirements.txt` exists
115+
116+
**Note:** Python global installs (`-g`) are not supported.
81117

82118
## License
83119

0 commit comments

Comments
 (0)