Install

Install PARI

Install, run, update, or uninstall PARI.

Choose an install method

MethodUse it whenWhat the agent can access
curlYou want the quickest setup on macOS or Linux.The project you launch from. On Linux, shell commands stay inside Bubblewrap.
PowerShellYou are on Windows.Installs the CLI. Run the session inside WSL2 when you want Bubblewrap.
pipxYou want an isolated, reusable command.Same workspace boundary as the installer you would have used.
uvYou already use uv and want a fast install.Same workspace boundary.
pipYou want PARI in the current Python environment.Same workspace boundary.
From sourceYou 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 --version

Debian and Ubuntu:

sudo apt-get install bubblewrap

Fedora:

sudo dnf install bubblewrap

PARI only trusts Bubblewrap from /usr/bin, /usr/local/bin, or /bin. A copy inside the repository is ignored.

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 --version

Open 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.

Confirm it started

After install, check the CLI before you ask it to change a repository:

  1. Run pari-cli --version and confirm the command is on your PATH.
  2. Change to the project you want PARI to edit.
  3. Sign in with pari-cli login. Pick DeepSeek, OpenAI, Anthropic, Grok, or OpenRouter.
  4. Run pari-cli --dry-run. On Linux this checks the workspace, Bubblewrap, and the model, and it does not start a turn.
  5. Run pari-cli and ask for a change in that repository.
cd ~/projects/my-app
pari-cli login
pari-cli --dry-run
pari-cli

A 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-cli

Common startup options

OptionDescription
-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-runCheck the workspace, sandbox, and model, then exit.
-v, --versionPrint the version.
-h, --helpShow help.

Open one project and pin a file before the prompt:

pari-cli --workspace ~/projects/my-app --add README.md

These subcommands do not start a conversation:

CommandDescription
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 loginSave an API key or an account token.
pari-cli logoutRemove a saved sign-in.
pari-cli evalReserved for benchmark suites. The harness is not available yet, and the command exits with an error.

Environment variables

VariablePurpose
PARI_MODELModel id used when --model is omitted. This wins over the latest saved sign-in.
PARI_SANDBOXSandbox mode when --sandbox is omitted. PARI_SANDBOX_MODE is accepted as the same setting.
PARI_AUTH_FILEPath of the sign-in file. The default is ~/.pari/auth.json.
OPENAI_API_KEYOpenAI key. An environment key is used before the saved sign-in.
ANTHROPIC_API_KEYAnthropic key.
DEEPSEEK_API_KEYDeepSeek key.
XAI_API_KEYGrok key.
OPENROUTER_API_KEYOpenRouter key.

Example:

export PARI_MODEL="deepseek-chat"
export DEEPSEEK_API_KEY="sk-..."
pari-cli

Stop PARI

At the prompt, type /exit or /quit. From the terminal that is running PARI, press Ctrl+C.

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 | bash

Uninstall PARI

pipx uninstall pari-cli

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.