Skip to content
Crystal CodeDocs
ENEnglish

Data directory

Override with CRYSTAL_HOME or --home.

~/.crystal/
binaries/code/CrystalCode (CrystalCode.exe on Windows)
config.json
providers.json
credentials.json
permissions.json
trusted.json
access.json
instructions.md
AGENTS.md
prompts/
work.md
plan.md
review.md
review.user.md
topic.md
compaction.system.md
compaction.user.md
image.system.md
image.user.md
promptsets/
concise/
prompt.json
work.md
plan.md
review.md
review.user.md
topic.md
compaction.system.md
compaction.user.md
image.system.md
image.user.md
prompt-attachments/
<name>/
prompt.json
work.md
plan.md
review.md
skill/<name>/SKILL.md
skills/<name>/SKILL.md
tools/<directory>/tools.json
data/tools/<directory>/
plugins/<directory>/plugin.json
data/plugins/<directory>/
sessions/<id>.json
logs/

Project overlay (named prompts, prompt attachments, Crystal skills, tool sets, and plugins of the same directory name win over home):

<workspace>/.crystal/
instructions.md
prompts/
work.md
plan.md
review.md
review.user.md
topic.md
compaction.system.md
compaction.user.md
image.system.md
image.user.md
prompt-attachments/
<name>/
prompt.json
work.md
plan.md
review.md
skill/<name>/SKILL.md
skills/<name>/SKILL.md
tools/<directory>/tools.json
plugins/<directory>/plugin.json
data/tools/<directory>/
data/plugins/<directory>/
<workspace>/.crystal.md
<workspace>/AGENTS.md

config.json is not part of the project overlay. Workspace-level configuration is deferred.

access.json stores default extra directories for each canonical workspace root.

Event What happens to the defaults
New session, /clear, /fork, successful /cd or /space Copies the defaults into the session
/resume Keeps the saved rules. Does not add defaults back
Any --allow-read or --allow-write Replaces the defaults for this process. Not saved

A missing directory or a credential path is skipped with an error and left in the file. A corrupt file, or two modes for one directory, seeds nothing. The session still opens.

Plugins and tool sets keep runtime data under data/, split by kind.

Root Path
Global ~/.crystal/data/{plugins|tools}/<directory>, shared across workspaces
Project <workspace>/.crystal/data/{plugins|tools}/<directory>

The host creates both the first time the extension receives them, at plugin attach or before a tool call. They are separate from the install trees and are not a secret store.

plugins/<directory>/plugin.json loads one operator plugin. Dotnet tool sets still load class libraries from the tool-set directory only. See Plugins.