---
title: Compatibility
description: Kache 1.x interfaces and upgrade behavior
---
Kache 1.x keeps documented CLI commands, options, and configuration keys compatible. Removing an interface or changing its meaning requires a major release. New commands, options, and configuration keys can appear in minor releases.
For scripts, use the documented JSON output and check `schema_version`. Fields may be added within a schema version; consumers should ignore fields they do not use. Removing fields or changing their meaning requires a new schema version and a major Kache release. Human-readable output can change between releases. See the [command reference](/docs/commands/reference) for JSON schemas and exit codes.
The published `kache-core`, `kache-format`, `kache-fs`, `kache-shims`, and `kache-store` crates follow the same major-version compatibility rule for their public Rust APIs. Public struct fields, enum variants, and trait methods are part of those APIs.
Cache contents are disposable compiler outputs. Cache-key recipes and private storage layouts can change during 1.x; an upgrade may cause misses and rebuilds. The JSON CLI contract does not make raw cache files or event logs stable interfaces.
The [planner service and Helm chart](/docs/remote-service) remain previews. Their deployment, authentication, and HA behavior can change even when their versions track the CLI release.
Building the CLI from source requires Rust 1.95 or newer, the `rust-version` in its `Cargo.toml`. The repository pins Rust 1.99 for development and release builds. Published crates declare their own minimum Rust versions.