FabricFabric
ReferenceConfig

preferences.json

Reference for ~/.fabric-agent/preferences.json — personal info Fabric Agents uses to tailor agent responses.

preferences.json holds the personal context Fabric Agents injects into the agent's system prompt so responses feel personalised — your name, timezone, where you are, notes you want every session to know about you.

~/.fabric-agent/preferences.json

It's separate from config.json on purpose: config is about app behaviour; preferences are about you.

Schema

FieldTypePurpose
namestringDisplay name — e.g. "Alex". Used in the system prompt so the agent can address you.
timezonestringIANA timezone — e.g. "America/Los_Angeles", "Europe/Berlin". Used for scheduling and date formatting.
location{ city?, region?, country? }Geographic context. The agent uses it for localisation (temperature units, language defaults).
notesstringFree-form notes about how you like to work. "I prefer concise, code-first answers. I work mostly in TypeScript and Python."
diffViewer{ diffStyle?, disableBackground? }Diff display preferences. diffStyle is "unified" or "split"; disableBackground hides the coloured background strip.
includeCoAuthoredBybooleanWhen true (default), the agent adds a Co-Authored-By: trailer to git commits it creates.
updatedAtnumberMilliseconds since epoch. Set automatically on save.

A note on language

There used to be a language field here. It's deprecated — Fabric Agents now reads the UI language from your i18n setting (Settings → Appearance → Language) and passes that to the agent. The old language field is ignored if present.

Example

{
  "name": "Alex",
  "timezone": "America/Los_Angeles",
  "location": {
    "city": "San Francisco",
    "region": "California",
    "country": "USA"
  },
  "notes": "I prefer concise, code-first answers. I work mostly in TypeScript and Python.\nWhen explaining concepts, assume I'm comfortable with Go and React.",
  "diffViewer": {
    "diffStyle": "split",
    "disableBackground": false
  },
  "includeCoAuthoredBy": true,
  "updatedAt": 1705000000000
}

How it's used

At session start, Fabric Agents formats preferences.json into a short block of "User context" and prepends it to the system prompt. Fields only appear in the prompt when set — an empty notes isn't shown; a missing location isn't fabricated.

You can ask the agent to update your preferences at any time:

"Remember that I always want concise answers, and my timezone is Berlin."

The agent writes to preferences.json through the preferences tool (assuming the session has permission). You can also edit it by hand — the file is re-read on every session start.

Privacy

  • preferences.json lives on your machine. It's not uploaded with shared sessions.
  • Credentials, API keys, and OAuth tokens never go here — those live in the OS keychain or the encrypted credential store.
  • When you share a session, the viewer does not see your preferences — the shared payload contains only the session's messages and tool calls, not the system prompt that fed the agent.

Editing

Close the app before editing to avoid race conditions with auto-save. Standard JSON rules apply — the app fails loud (a user-facing error dialog) rather than silently dropping a malformed preferences file.

On this page