Requirements
Make sure you have the following installed before you build:Rust stable toolchain with Cargo
Rust stable toolchain with Cargo
Contexity is written in stable Rust. Install or update the toolchain using rustup:Any recent stable release works. Nightly is not required.
Git
Git
Contexity reads Git metadata to establish project identity and detect changes. Git must be available on your
PATH.Bash
Bash
The
./bin/contexity wrapper script and local release smoke tests are written in Bash. Any POSIX-compatible shell environment works.Node.js 22 (release gate only)
Node.js 22 (release gate only)
Node.js 22 is only required if you are running the repository’s release gate through
npm. You do not need Node.js for normal development or to use the CLI.Build from Source
Clone the repository, then build the full workspace from the repository root:target/debug/contexity when that binary is present from a prior cargo build. If the binary is not present — for example, after a clean checkout — the wrapper falls back to cargo run so you are never blocked by a missing build artifact.
State Home
Contexity stores two distinct categories of data, and it is important to understand where each one lives. Project identity is written directly into the project directory:CONTEXITY_HOMEenvironment variable, if setXDG_STATE_HOME/contexity, ifXDG_STATE_HOMEis set~/.local/state/contexityas the default fallback
Each project’s durable state is namespaced inside the state home by project identity, so multiple projects coexist safely in a shared state home without interfering with each other.
Upgrading
Before you upgrade to a newer version of Contexity, take the following steps to protect your existing project context. 1. Run the doctor check against every attached project to confirm they are in a healthy state before you change anything:.cxcap/ directory and the Contexity state home to a safe location:
CONTEXITY_HOME or XDG_STATE_HOME.
3. Build the new version following the same steps in the Build from Source section above.
Contexity tracks schema compatibility through schema_version fields embedded in all persisted records. If a new version introduces a schema migration, the CLI will detect the version mismatch on first use and prompt you before making any changes to stored data.