Expand description
Canonical on-disk locations, shared by every subcommand.
- Index (the big embedding cache) lives under
$XDG_DATA_HOME/ski. - Session state (per-conversation dedup) lives under
$XDG_STATE_HOME/ski.
Both fall back to the XDG defaults relative to $HOME when the env vars are
unset, matching the rest of the toolchain.
Functions§
- claude_
settings_ path ~/.claude/settings.json— Claude Code’s user settings.ski init --host claudemerges its hooks here, the marketplace-free install path for users who can’t run/plugin.- config_
dir $XDG_CONFIG_HOME/ski(default~/.config/ski). Home for the downloaded fastembed model cache, so the ONNX models are kept once per user instead of dropping a.fastembed_cacheinto whatever directory the hook happens to run from (commonly a git work tree).- config_
path - Optional user config (
~/.config/ski/config.toml). Absent by default; when present its fields override the compiled defaults (seecrate::config). - data_
dir $XDG_DATA_HOME/ski(default~/.local/share/ski).- index_
path - Persistent skill index for
host. Each host indexes only its own skill library (seecrate::config::Config::for_host), so the files are kept apart; Claude keeps the originalindex.jsonto avoid orphaning it. - model_
cache_ dir - Cache directory for downloaded embedding/reranker model files, passed to
fastembed’s
with_cache_dir. Lives underconfig_dir. - opencode_
plugin_ dir - opencode’s global plugin directory (
$XDG_CONFIG_HOME/opencode/plugin, default~/.config/opencode/plugin), whereski init --host opencodedropsski.ts. - session_
path - State file for a single conversation. The id is sanitized so a hostile or odd session id can’t escape the sessions directory.
- sessions_
dir - Directory holding one JSON file per conversation.
- state_
dir $XDG_STATE_HOME/ski(default~/.local/state/ski).- telemetry_
path - Opt-in telemetry event log (append-only JSONL). Written only when
SKI_TELEMETRYis truthy; read byski history. Seecrate::telemetry.