Install
Install PARI
Install, run, update, or uninstall PARI.
Choose an install method
| Method | Use it when | What the agent can access |
|---|---|---|
| curl | You want the quickest setup on macOS or Linux. | The project you launch from. On Linux, shell commands stay inside Bubblewrap. |
| PowerShell | You are on Windows. | Installs the CLI. Run the session inside WSL2 when you want Bubblewrap. |
| pipx | You want an isolated, reusable command. | Same workspace boundary as the installer you would have used. |
| uv | You already use uv and want a fast install. | Same workspace boundary. |
| pip | You want PARI in the current Python environment. | Same workspace boundary. |
| From source | You are changing PARI itself. | Your local checkout, with the same sandbox rules. |
Verify prerequisites
Install Python 3.11 or later, Git, and Bubblewrap. Then check that each one is on your PATH:
python3 --version
git --version
bwrap --versionDebian and Ubuntu:
sudo apt-get install bubblewrapFedora:
sudo dnf install bubblewrapPARI only trusts Bubblewrap from /usr/bin, /usr/local/bin, or /bin. A copy inside the repository is ignored.
Install Python 3.11 or later and confirm it:
python3 --version
git --versionYou can install and sign in on a Mac. Automatic sandbox mode will not run shell commands on the Mac host. Use a Linux machine or a Linux VM when you want the agent to execute commands.
Install Python 3.11 or later. In PowerShell:
py -3 --version
git --versionFor a session that can run commands, install Ubuntu from WSL2, open that shell, install Bubblewrap, and follow the Linux steps inside it.
Install and run
Install the published package. The script uses uv if it is installed, then pipx, then a virtualenv in ~/.pari/venv with a link in ~/.local/bin.
curl -fsSL https://pari-cli.in/install.sh | bash
pari-cli --versionOpen a new terminal if the shell says pari-cli was not found. The installer adds ~/.local/bin to bash or zsh when that directory is missing from PATH.
The Windows script follows the same order: uv, then pipx, then a virtualenv in your user profile at .pari.
irm https://www.pari-cli.in/install.ps1 | iex
pari-cli --versionpipx keeps PARI out of the environment you use for other projects.
pipx install pari-cli
pari-cli --versionuv tool install pari-cli
pari-cli --versionpip install pari-cli
pari-cli --versionUse a checkout when you are changing PARI. Python 3.11 or later is required.
git clone https://github.com/MdTanwer/pari.git
cd pari
python3 -m venv .venv
source .venv/bin/activate
pip install -e .Development tools, including pytest and Ruff:
pip install -e ".[dev]"Or, with uv:
uv sync --group devConfirm it started
After install, check the CLI before you ask it to change a repository:
- Run
pari-cli --versionand confirm the command is on your PATH. - Change to the project you want PARI to edit.
- Sign in with
pari-cli login. Pick DeepSeek, OpenAI, Anthropic, Grok, or OpenRouter. - Run
pari-cli --dry-run. On Linux this checks the workspace, Bubblewrap, and the model, and it does not start a turn. - Run
pari-cliand ask for a change in that repository.
cd ~/projects/my-app
pari-cli login
pari-cli --dry-run
pari-cliA passing dry run prints the workspace path, the sandbox mode, the model, and Self-check passed. Leave the terminal open while you use the session. Type /exit or press Ctrl+C to stop.
Run PARI again
After you close the terminal, start PARI with the same command. The saved sign-in in ~/.pari/auth.json is reused until you log out. Project history stays in that project’s .pari/ directory.
pari-clipari-clipari-clicd pari
source .venv/bin/activate
pari-cliCommon startup options
| Option | Description |
|---|---|
-w, --workspace <dir> | Project directory. The default is the current directory. |
--model <name> | Model id. The default is PARI_MODEL, then the latest saved sign-in. |
--sandbox <mode> | auto or bwrap uses Bubblewrap on Linux. seatbelt, cloud, and none are not available yet. |
--add <file> | Pin a file into the session. Repeat the flag for another file. The file must already exist inside the workspace. |
--edit-fallback <mode> | none keeps exact edits. cascade allows the fallback edit path. The default is none. |
--repomap <mode> | off uses search. ppr turns on the repository map. The default is off. |
--dry-run | Check the workspace, sandbox, and model, then exit. |
-v, --version | Print the version. |
-h, --help | Show help. |
Open one project and pin a file before the prompt:
pari-cli --workspace ~/projects/my-app --add README.mdThese subcommands do not start a conversation:
| Command | Description |
|---|---|
pari-cli find [pattern] | List files matching a glob. The default pattern is *. |
pari-cli grep <query> | Search file contents. Add --regex to treat the query as a regular expression. |
pari-cli login | Save an API key or an account token. |
pari-cli logout | Remove a saved sign-in. |
pari-cli eval | Reserved for benchmark suites. The harness is not available yet, and the command exits with an error. |
Environment variables
| Variable | Purpose |
|---|---|
PARI_MODEL | Model id used when --model is omitted. This wins over the latest saved sign-in. |
PARI_SANDBOX | Sandbox mode when --sandbox is omitted. PARI_SANDBOX_MODE is accepted as the same setting. |
PARI_AUTH_FILE | Path of the sign-in file. The default is ~/.pari/auth.json. |
OPENAI_API_KEY | OpenAI key. An environment key is used before the saved sign-in. |
ANTHROPIC_API_KEY | Anthropic key. |
DEEPSEEK_API_KEY | DeepSeek key. |
XAI_API_KEY | Grok key. |
OPENROUTER_API_KEY | OpenRouter key. |
Example:
export PARI_MODEL="deepseek-chat"
export DEEPSEEK_API_KEY="sk-..."
pari-cliStop PARI
At the prompt, type /exit or /quit. From the terminal that is running PARI, press Ctrl+C.
A command the agent starts is killed when it hits its timeout. Closing the session also stops the sandboxed process group. You do not need a separate service to shut down.
Update PARI
Settings and conversation files are outside the package. Upgrading the CLI leaves ~/.pari/auth.json and each project’s .pari/ directory in place.
curl -fsSL https://pari-cli.in/install.sh | bashpipx upgrade pari-cliuv tool upgrade pari-clipip install --upgrade pari-cliUninstall PARI
pipx uninstall pari-cliuv tool uninstall pari-clipip uninstall pari-cliIf the curl or PowerShell installer created ~/.pari/venv, remove that directory. This also deletes ~/.pari/auth.json when it lives in the same folder. Copy the auth file first if you still want the saved sign-in.
rm -rf ~/.pariOn Windows PowerShell:
Remove-Item -Recurse -Force "$env:USERPROFILE\.pari"Removing the package does not delete .pari/ folders inside your projects. Delete those yourself if you also want the session logs gone.
Next
- First session →
Sign in, open a workspace, and start a conversation.
- Models →
Choose a provider and switch models inside a session.
- Sandbox →
See what a command can read, write, and reach on the network.