Generated layout

.phantasm/
├── phantasm.toml
├── clients.toml
└── state/
    ├── store.sqlite
    ├── backups/
    ├── indexes/
    ├── logs/
    ├── raw/
    └── tmp/

Only phantasm.toml and clients.toml are public config files today. The rest of the runtime layout is state, storage, or derived output.

phantasm.toml

version = "v1"
default_client = "generic_mcp"

version

Type: quoted string. Default: "v1". This is the config schema version. The runtime currently accepts only v1.

default_client

Type: quoted string. Default: "generic_mcp". This selects the client profile Phantasm should treat as the default when a runtime consumer relies on config rather than hard-coding a profile selection.

Valid values for default_client are the names present in clients.toml. The shipped built-ins are generic_mcp, codex, and claude_code.

clients.toml

version = "v1"

# User-defined profiles must inherit from exactly one built-in profile.
# Built-ins: generic_mcp, codex, claude_code
#
# Example:
# [profiles.codex_readonly]
# inherits = "codex"
# display_name = "Codex Read Only"
# allow_authoritative_writes = false

The top-level file key is version. Custom profiles live under [profiles.<name>] sections.

version

Type: quoted string. Default: "v1". This is the client-profile schema version, and only v1 is accepted today.

inherits

Type: quoted string. Required inside every custom profile section. The value must be one built-in profile: generic_mcp, codex, or claude_code.

display_name

Type: quoted string. Optional. If omitted, Phantasm derives a display name from the profile section name by replacing underscores with spaces.

allow_suggestions

Type: boolean. Optional. Overrides whether the profile can create suggestion-shaped mutations. If omitted, the value is inherited from the built-in parent profile.

allow_authoritative_writes

Type: boolean. Optional. Controls whether the profile can perform authoritative runtime writes. Omitted values inherit from the built-in parent.

allow_sensitive_read

Type: boolean. Optional. Controls whether the profile can perform sensitive reads. Omitted values inherit from the built-in parent.

allow_sensitive_export

Type: boolean. Optional. Controls whether the profile can export sensitive data. Omitted values inherit from the built-in parent.

Built-in profiles

Profile
Suggestions
Authoritative writes
Sensitive read / export
generic_mcp
Allowed
Not allowed
Not allowed / Not allowed
codex
Allowed
Allowed
Not allowed / Not allowed
claude_code
Allowed
Allowed
Not allowed / Not allowed

Current limitations

Related docs

For the Markdown version of this reference, see configuration-reference.md.