Skip to content

Install Keprix

Curl installer (CLI / TUI)

Primary install path for Linux, macOS, and WSL2:

curl -fsSL https://raw.githubusercontent.com/malike2356/keprix/main/scripts/install.sh | bash

The installer clones or updates code under ${KEPRIX_HOME:-$HOME/.keprix}/keprix, creates an isolated Python env (prefers uv when available), installs the [tui] extra, and puts keprix on PATH via ~/.local/bin.

The repository and raw installer are publicly readable. The curl command follows the development channel. Stable distribution uses scripts/install-release.sh with an exact version, manifest checksum, and signature verification.

Windows: use WSL2 and run the installer inside Linux. Native Windows is not claimed.

Env overrides: KEPRIX_HOME, KEPRIX_REPO_URL, KEPRIX_REF, KEPRIX_NONINTERACTIVE=1, KEPRIX_DRY_RUN=1, optional KEPRIX_INSTALL_DOCKER=1 (Compose is never required for CLI success).

Next steps after install: hash -r, keprix --version, keprix setup, keprix tui.


Requirements (pipx paths)

For workstation installs with pipx (GitHub or local checkout), you need:

  • Python 3.11 or 3.12
  • pipx
  • At least one LLM provider key for agent replies

Install pipx if needed:

python3 -m pip install --user pipx
python3 -m pipx ensurepath

Restart your shell after ensurepath if pipx is not immediately available.

If your system's default python3 is older than 3.11 (for example Ubuntu 22.04 LTS, which ships 3.10) - verified live 2026-09-06 - every pipx install command below fails closed with a confusing Cannot determine package name from spec error rather than a clear version message. Install a compatible interpreter (sudo apt install python3.11 on Debian/Ubuntu, or via pyenv) and pass it explicitly:

pipx install '.[tui]' --python python3.11 --force

Add the same --python python3.11 flag to any pipx command on this page if you hit that error.

Install with pipx from GitHub

Alternative to the curl installer when you want pipx to manage an isolated env from the public repo:

pipx install 'keprix[tui] @ git+https://github.com/malike2356/keprix.git'
keprix --version
keprix start --host 127.0.0.1 --port 3333

In another terminal:

keprix tui

Use keprix tui --help for terminal UI flags such as session resume, model override, API URL, bearer token, and mouse capture.

Public repo required: anonymous git+https://github.com/malike2356/keprix.git fails until the repository is public. See public GitHub checklist.

PyPI note: the package name keprix is not published on PyPI yet (404 as of 2026-08-07). Bare PyPI installs of the keprix[tui] extra (no @ git+... URL) are not supported and will 404 until an owner publish. When publish is approved, follow PyPI publish checklist.

Install from a local checkout

From the repository root:

pipx install '.[tui]' --force
keprix --version
keprix tui --help

Use this when testing a local build or when the public git URL is not yet reachable.

Voice extras

The terminal UI can use push-to-talk voice capture with the voice extra.

From GitHub (same public-repo caveat as above):

pipx install 'keprix[tui-voice] @ git+https://github.com/malike2356/keprix.git'

From a checkout:

pipx install '.[tui-voice]' --force

Bare PyPI installs of the keprix[tui-voice] extra (no git URL) are not supported until publish.

Contributor install (secondary)

Use a repository virtual environment only when changing Keprix itself:

bash scripts/install.sh
source .venv/bin/activate

Normal users should not need PYTHONPATH, an activated development venv, or manual module entry points to run keprix tui. For bare-metal Postgres/Redis/Node, see Manual install (for developers).

Next

Uninstall / reset

CLI home: remove ${KEPRIX_HOME:-$HOME/.keprix}. This deletes local install code, config, and any keys stored under that tree. Confirm before deleting.

Optional: remove the keprix symlink if you no longer want the command:

rm -f ~/.local/bin/keprix

Docker: stop the stack from a checkout that has docker/docker-compose.yml:

docker compose -f docker/docker-compose.yml down

Add -v only if you accept deleting Compose volumes (database and other persisted data):

docker compose -f docker/docker-compose.yml down -v