# X Env

> x-env is x-cmd's environment and package management module for installing and managing third-party software, programming language runtimes, and command-line tools. Use this skill when: installing or managing runtimes (node, python, go, bun, java, rust); installing CLI tools (jq, yq, fzf, himalaya, claude-code); managing multiple software versions (specify versions, switch versions); cleaning up unused packages; viewing installed software paths or dependencies; asking how to install software; temporarily using software in current shell session (try); permanently installing software to user environment (use); upgrading installed software versions; running scripts with specific software versions. This is the core package manager in x-cmd ecosystem.

- Skill: `x-cmd/x-env` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add x-cmd/x-env`
- Raw SKILL.md: https://api.skillmd.com/api/skills/x-cmd/x-env/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache-2.0
- Author: x-cmd (https://skillmd.com/u/x-cmd)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/x-cmd/x-env

---


# x env - Environment & Package Manager

## Prerequisites

1. Load x-cmd before use:
   ```bash
   . ~/.x-cmd.root/X
   ```

2. x-cmd not installed? → [data/install.md](data/install.md)

## Core Concepts

- **try**: Temporarily use software in current shell session (only valid for current terminal)
- **use**: Permanently install software to user environment (persists after terminal restart)
- **untry**: Cancel temporarily tried software in current session
- **unuse**: Remove installed software from user environment
- **upgrade**: Upgrade installed software versions

## Core Functions

- **List available versions**: `x env la <pkg>`
- **List installed packages**: `x env ls`, `x env ll`
- **Temporary use (try)**: `x env try <pkg>[=<version>]`
- **Permanent install (use)**: `x env use <pkg>[=<version>]`
- **Remove package**: `x env unuse <pkg>`
- **Upgrade package**: `x env upgrade <pkg>`
- **Cleanup packages**: `x env gc <pkg>`
- **Find command path**: `x env which <cmd>`
- **Check dependencies**: `x env depend <pkg>`

## Usage Examples

### Install packages
```bash
x env use node              # Install default version of node
x env use python            # Install default version of python
x env use go=v1.21.0        # Install specific version
x env use node python go    # Install multiple packages
```

### Temporary use (current shell session only)
```bash
x env try node              # Use default node in current session
x env try bun go=v1.17.13   # Use multiple packages with versions
x env untry node            # Cancel temporary use
```

### Version management
```bash
x env use --upgrade --all   # Upgrade all installed packages
x env use --upgrade jq yq   # Upgrade specific packages
x env upgrade node python   # Upgrade packages (shorthand)
```

### List and search
```bash
x env la node               # List all available node versions
x env ls                    # List packages in use
x env ll                    # List all installed packages
x env which node            # Show node installation path
```

### Cleanup
```bash
x env gc jq yq              # Remove specified packages and orphans
```

## Common Scenarios

- **Install node**: `x env use node`
- **Install python**: `x env use python`
- **Install go**: `x env use go`
- **Install jq**: `x env use jq`
- **Install specific version**: `x env use node=v18.12.0`
- **Temporary try**: `x env try node`
- **Upgrade all**: `x env upgrade --all`
- **Find path**: `x env which node`

## Get Help

Run `x env --help` for full help documentation.

