ChatEnv¶
ChatEnv is the shared typed env/profile layer for ChatArch packages.
It provides field descriptors, config base classes, registry discovery, paths, profile file IO, masking, paste parsing, and runtime token-store primitives. Service-specific variables and connectivity semantics stay in leaf packages.
Minimal layout¶
CHATARCH_HOME=${CHATARCH_HOME:-~/.chatarch}
$CHATARCH_HOME/envs/ # stable typed env/profile files
$CHATARCH_HOME/tokens/ # generated runtime tokens/sessions
ChatEnv does not create extra config/cache/data/state surfaces. tokens/ stores runtime values generated by service login/refresh flows; it is not a second manually maintained env layer.
Quick example¶
from chatenv import BaseEnvConfig, EnvField, EnvStore, get_paths
class ExampleConfig(BaseEnvConfig):
_title = "Example Configuration"
_aliases = ["example"]
_storage_dir = "Example"
EXAMPLE_API_KEY = EnvField("EXAMPLE_API_KEY", is_sensitive=True)
paths = get_paths()
store = EnvStore(paths.envs_dir)
store.save_active(ExampleConfig, {"EXAMPLE_API_KEY": "sk-..."})
See CLI, Design, and the Developer Guide.