# Install repowise

Install the repowise CLI on macOS, Linux, or Windows via pip or uv. Verify, upgrade, switch versions, or uninstall. Every step.

The repowise CLI is a Python package. You can install it with `pip`,
or (recommended) with [`uv`](https://docs.astral.sh/uv/), which puts
the binary into an isolated environment without touching your system
Python.

Before installing, make sure you've got [Python 3.11+ and Git 2.30+](https://docs.repowise.dev/installation/requirements).

## Install

### uv (recommended)

```bash
uv tool install repowise
```

`uv tool install` puts the binary in an isolated, uv-managed venv on
`PATH`. No conflicts with system Python, no `requirements.txt` to
maintain, fastest install path.

If you don't have `uv` yet:

```bash
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
```

### pip

```bash
pip install repowise
```

Installs into your active Python environment. Fine for project-scoped
installs (in a venv); not ideal for a global system install, since
there's no isolation from your other Python tools.

If you see a `Defaulting to user installation` message, the binary may
land in `~/.local/bin` (Linux/macOS) or
`%APPDATA%\Python\Scripts` (Windows). Add that to `PATH`.

### pipx

```bash
pipx install repowise
```

Like `uv tool install`, this isolates the binary in its own venv. Use it
if you already standardise on `pipx` for CLI tools.

## Verify

```bash
repowise --version
```

You should see something like `repowise 0.59.0`. If `command not found`,
your `PATH` is missing the install location. See
[Troubleshooting → command not found](https://docs.repowise.dev/installation/troubleshooting#command-not-found-repowise).

## Optional extras

**Every LLM provider works out of the box.** The Anthropic, OpenAI,
Google, and LiteLLM SDKs are base dependencies, so there is nothing
extra to install to use Claude, GPT, Gemini, Ollama, or any
OpenAI-compatible endpoint. Just set the API key. See
[Environment variables](https://docs.repowise.dev/installation/env-vars). A provider is
optional: `repowise init` runs and produces a full wiki without one.

Two extras exist, and neither is needed for a normal install:

| Extra | What it adds | When you want it |
|---|---|---|
| `postgres` | `pgvector` + `asyncpg` | Storing the index in PostgreSQL instead of the default SQLite. See [Configuration](https://docs.repowise.dev/installation/configuration). |
| `graph-extra` | `graspologic` | Leiden community detection. Without it, repowise falls back to Louvain via networkx, which is already bundled. |

### uv

```bash
uv tool install 'repowise[postgres]'
uv tool install 'repowise[graph-extra]'
```

### pip

```bash
pip install 'repowise[postgres]'
pip install 'repowise[graph-extra]'
```

## Upgrade

### uv

```bash
uv tool upgrade repowise
```

### pip

```bash
pip install --upgrade repowise
```

### pipx

```bash
pipx upgrade repowise
```

Run `repowise --version` again to confirm, then run `repowise update` in your
repo so the new build picks up your existing index. Upgrades keep that index
working (no reindex in the normal case), and a full reindex is only ever
*recommended*, never forced. See [Upgrading](https://docs.repowise.dev/upgrading) for the full flow.

> **Note**
>
> Not sure if you're up to date? [`repowise doctor`](https://docs.repowise.dev/cli/other#repowise-doctor)
> prints a `CLI version` row that compares your installed CLI against PyPI and
> suggests the right upgrade command for your install method. This is handy when
> an MCP client is silently running an older `repowise` from your `PATH`.

## Pin to a specific version

```bash
uv tool install repowise==0.59.0
# or
pip install repowise==0.59.0
```

The full release history is on [PyPI](https://pypi.org/project/repowise/).

## Uninstall

### uv

```bash
uv tool uninstall repowise
```

### pip

```bash
pip uninstall repowise
```

### pipx

```bash
pipx uninstall repowise
```

The CLI is gone, but your `.repowise/` directories are untouched.
Delete them by hand if you want to reclaim the disk space:

```bash
# inside each indexed repo
rm -rf .repowise/
```

## Editable install (for contributors)

Hacking on repowise itself? Clone the OSS repo and install with `uv`
in editable mode:

```bash
git clone https://github.com/repowise-dev/repowise
cd repowise
uv sync --all-packages
uv run repowise --version
```

Or activate the venv `uv sync` created:

```bash
source .venv/bin/activate
repowise --help
```

See [CONTRIBUTING.md](https://github.com/repowise-dev/repowise/blob/main/.github/CONTRIBUTING.md)
in the OSS repo for the full developer setup, including how to add a
language and how to add a new LLM provider.

## What's next

1. **Index your first repo**: head to the
   [Quickstart](https://docs.repowise.dev/getting-started/quickstart) and run
   `repowise init --yes`. No API key needed. Repowise builds the graph, git,
   health and dead-code layers and renders a complete wiki from that
   structure.

2. **(Optional) Set an API key**: a provider upgrades the wiki to
   model-written prose and, with an embedder, semantic search.
   [Environment variables](https://docs.repowise.dev/installation/env-vars) lists every key
   and provider option. You can add it after the fact and upgrade pages in
   place, no re-index needed.

3. **Connect Claude Code**: `repowise init` already wrote `.mcp.json`
   and registered the server. Restart Claude Code and you're done.

> **Note**
>
> **Don't want to install Python at all?** The
> [hosted version](https://docs.repowise.dev/hosted/vs-self-hosted) at
> [repowise.dev](https://repowise.dev) runs the same engine on managed
> infrastructure. Sign in with GitHub, paste a repo URL, you're done.
> Same MCP tools, same dashboard, no install.
