Repository navigation
Install
pipx install kivaxSame command on Linux, macOS, and Windows. Upgrading is pipx upgrade kivax, and that is the whole story — the agents, skills, and templates Kivax installs into projects now ship inside the package, so the CLI and the material it copies can never be out of step.
Breaking: install.py is gone
Kivax used to be installed by cloning the repository and running install.py, which left a store in ~/.kivax and a kivax symlink in ~/.local/bin. Neither is used any more, and if that old symlink sits earlier on your PATH it will keep shadowing the version you just installed.
rm -rf ~/.kivax ~/.local/bin/kivaxkivax version and kivax doctor detect the leftovers and tell you. Projects need no migration — everything kivax init wrote is already committed in your repository.
Why
install.py reimplemented what pip already does: dependency resolution (with a --break-system-packages workaround for PEP 668), PATH placement, and a kivax.bat shim on Windows. pipx does all three properly and sidesteps the "externally-managed-environment" error on Debian, Ubuntu, and Homebrew Python by isolating the tool in its own virtualenv.
It also let the CLI and the global store drift: updating one didn't update the other. With the store shipped as package data they are one artifact and cannot disagree about which version they are.
Also in this release
- Editing the store by hand no longer works. It was never supported — agents are generated and
kivax upgradeoverwrites a project's copies — so this stops pretending rather than removing a feature. Use theagents:block in.kivax/config.ymlfor models, upstream changes for behavior, or pointKIVAX_HOMEat your own copy of the store if you genuinely need a divergent one. - The sample CI gate is now copy-pasteable. Installing Kivax on a runner is
pip install kivaxinstead of a placeholder for your own infrastructure. - Windows is covered by CI, not just claimed: the full suite plus a real wheel install and
kivax initrun on every push.
Verified
482 tests, 96.89% coverage, across Python 3.10–3.13 on Linux, macOS, and Windows. A dedicated package job builds the wheel, asserts its store file count matches the tree exactly, installs it into a clean virtualenv with no access to the checkout, and drives a real init / feature new / doctor / validate.
Full changelog: v2.0.0...v2.1.0