Skip to main content
Pixi supports extensions that add new subcommands to the pixi CLI. Extensions are standalone executables that integrate seamlessly with Pixi’s command structure.

How Extensions Work

When you run pixi <command>, Pixi searches for an executable named pixi-<command> and executes it with any additional arguments.

Naming Convention

Extensions follow the pattern: pixi-{command}

Discovery Mechanism

Pixi discovers extensions by searching for pixi-* executables in:
  1. PATH Environment Variable - All directories in your PATH
  2. pixi global Directories - Managed by pixi global install
All discovered extensions appear in pixi --list alongside built-in commands.

Installing Extensions

Install extensions using pixi global install:
Benefits:
  • Isolated environments prevent dependency conflicts
  • Automatic discovery without modifying PATH
  • Easy management with pixi global list and pixi global remove
  • Consistent experience with built-in commands

Manual Installation

Install by placing the executable in any directory in your PATH:

pixi-pack

Package Pixi environments as portable archives.
See the pixi-pack documentation for details.

pixi-diff

Compare lockfiles to see what changed between environments.
Features:
  • JSON output for programmatic use
  • Integration with git history
  • Human-readable markdown reports
  • Terminal rendering with glow
Example workflow:
See pixi-diff documentation for full usage details.

pixi-inject

Inject conda packages into existing Pixi environments.
Use cases:
  • Testing locally built packages
  • Patching environments without rebuilding
  • Development workflows
Custom prefix:

pixi-skills

Manage and install coding agent skills across LLM backends.
Features:
  • Interactive skill management UI
  • Discover skills from pixi environments
  • Install into Claude, Aider, and other AI coding assistants
  • Support for local and global skill scopes
Example usage:
1

Install pixi-skills

2

Add skill packages

pixi.toml
3

Manage skills

Learn more in the pixi-skills blog post.

Creating Extensions

Build your own Pixi extensions to add custom functionality.

Basic Extension Example

pixi-hello
1

Make executable

2

Place in PATH

3

Use the extension

Extension in Rust

src/main.rs
Cargo.toml
Build and install:

Best Practices

Descriptive Names

Use clear, descriptive names: pixi-diff is better than pixi-d.

Standard Arguments

Support --help and follow UNIX conventions for flags and exit codes.

Exit Codes

Use exit code 0 for success, non-zero for errors.

Pixi Integration

Respect Pixi’s environment management and work with its conventions.

Documentation

Provide clear usage documentation and examples.

Command Suggestions

Pixi suggests similar commands when you mistype:
This works for both built-in commands and extensions.

Listing Extensions

View all available commands including extensions:
Output includes:
  • Built-in Pixi commands
  • Installed extensions
  • Brief descriptions

Extension Development Tips

Argument Handling

Extensions receive all arguments after the command name:

Environment Variables

Access Pixi’s environment:

Error Handling

Testing

Test extensions as standalone programs:

Publishing Extensions

As Conda Packages

Publish to conda-forge or custom channels:
meta.yaml
Users can install via:

As Binaries

Publish releases on GitHub:
  1. Build for multiple platforms
  2. Create GitHub release
  3. Upload binaries
  4. Document installation in README

Community

Discord

Join the Pixi Discord for discussions and support.

GitHub

Contribute to Pixi or browse existing extensions.

See Also