Skip to content

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.