FabricFabric
Core Concepts

Interactions

How you drive Fabric Agents from the keyboard — mentions, slash commands, attachments, shortcuts, permission modes, thinking levels, drafts, and plan approval.

Most of what you do in Fabric Agents happens from the chat input. This page covers everything it does.

Mentions

Type @ in the chat input to open the mention picker. You can mention:

MentionWhat it does
@agentLoads an agent's persona + instructions for the rest of this turn.
@skillPulls in a skill as context.
@sourceEnables a source for this session (MCP, API, or Local).
@fileAttaches a file — image, PDF, Word, spreadsheet, text.
@folderScopes a folder for the agent to work in.

Mentions render as coloured badges inline in your message. You can mix and match — @code-reviewer + @linear + @folder:./src is a perfectly normal opener.

Slash commands

Type / to open the slash-command picker. Commands run prompt templates with optional $ARGUMENTS substitution — see Commands for the full file format.

Built-in slash commands:

CommandAction
/exploreSwitch to Explore (safe, read-only) mode.
/askSwitch to Ask-to-Edit mode.
/executeSwitch to Execute (auto-approve) mode.
/compactSummarise the conversation so far and continue with a compacted context.

Your own commands — anything in ~/.fabric-agent/workspaces/{ws}/commands/ or .agents/commands/ in the repo — show up too.

Prompt enhancer (✨)

The wand icon in the input rewrites a vague draft into a clearer, more specific prompt — using your real repo context, not just session metadata. It looks at top-level layout, package.json, README, detected frameworks, and any identifier-shaped tokens in your draft (file paths, PascalCase types, camelCase functions). Those tokens are grepped against the working directory, so the enhanced prompt can reference real files instead of hallucinating them.

A small context badge sits beside the wand and shows what was attached on the last enhance: repo intro, retrieved files, relevant symbols. Click the badge to expand. Disable it under Settings → Chat → Prompt enhancer if you'd rather it stay out of the way.

See Auto Behaviours → Prompt enhancer for the full mechanics.

File attachments

Drag-drop or use @file to attach:

TypeBehaviour
Images (png, jpg, webp, gif)Inlined as base64; the agent sees them directly.
PDFsExtracted to text; original stays attached.
Office docs (Word, Excel, PowerPoint)Converted to markdown via markitdown.
Text / codeInlined as text.
Anything elseAttached as-is; agent gets path + MIME type.

Pasting more than 400 lines or 20,000 characters of text auto-converts to a file attachment so the input stays responsive.

Attachments are copied into the session's attachments/ folder — if you delete the source file, the conversation still has it.

Keyboard shortcuts

Keys use Cmd on macOS and Ctrl on Windows/Linux.

Sending messages

ShortcutAction
EnterSend the message
Shift + EnterNew line in the input
EscStop processing / close a popover

Permission modes

ShortcutAction
Shift + TabCycle Explore → Ask to Edit → Execute → Explore

Sessions and navigation

ShortcutAction
Cmd + NNew chat
Cmd + Shift + NNew window
Cmd + BToggle sidebar
Cmd + 1 / 2 / 3Focus sidebar / session list / chat
Cmd + .Toggle focus mode

App

ShortcutAction
Cmd + ,Settings
Cmd + /Show all keyboard shortcuts

The full list — including provider-specific and custom bindings — lives in Settings → Keyboard Shortcuts or behind Cmd + /.

Permission modes

Three modes, cycled with Shift + Tab:

ModeBadgeBehaviour
ExploresafeRead-only. Write tools are blocked. Plans can still be submitted.
Ask to EditaskDefault. Prompts before every write or sensitive action.
Executeallow-allAuto-approves all tool calls. Use when you trust the direction.

Permission modes are per-session and persist across turns. The workspace sets the default. See Permissions for how allowlists work.

Thinking levels

Extended thinking lets the model reason before answering. Five levels:

LevelWhen to use
OffFast, cheap, no deliberation.
LowLight reasoning for simple structured tasks.
MediumBalanced default.
HighComplex problem-solving, multi-step planning.
MaxHardest questions — research, debugging, architecture.

Set per-session from the input toolbar. Workspace default lives in config.json.

Available on models that support it (most Anthropic models; provider-specific mapping for Pi).

Drafts

Anything you type is saved as a draft for that session. If you switch away and come back, the draft is there. Sending the message clears it immediately — no stale sync after submit.

Drafts don't sync across machines. They live in the session state in memory plus a small local cache.

Stop restores your last message

Clicking Stop to cancel a running turn copies your last sent message back into the input, so you can tweak the wording and resend without retyping. It's append-safe: if you started a new draft while the agent was working, that draft is kept and the restored text is appended below it. This applies only to an explicit Stop — redirecting or sending a new message doesn't restore anything.

Model switcher

The model picker in the input toolbar shows every model from the current LLM connection. Grouped by provider:

  • Anthropic — direct API or Claude Max OAuth
  • Pi — Fabric Agents Backend (multi-model routing through the Pi SDK)
  • Azure AI Foundry — if configured
  • Local — any pi_compat endpoint pointing at localhost (Ollama, LMStudio, …)

You can switch models any time. The connection locks after the first message of a session — once you've sent something via Anthropic, that session stays on Anthropic. Starting a new session lets you pick freshly.

Plans and approvals

When the agent is in Explore or Ask mode and wants to do something that requires Execute-level permissions, it submits a plan: a markdown file describing what it wants to do and why. You see an approval card with:

  • Accept — switches the session to Execute (or a scoped Allow) and hands control back to the agent. You can add extra context in the draft input before accepting; it's appended to the approval message.
  • Accept & Compact — same as Accept, but also summarises the context so far to keep the conversation short.
  • Decline — cancels the plan; you can keep chatting in the current mode.

Plans are stored as markdown in the session's plans/ folder, so you can review decisions later.

Rendered output

The agent's messages render live as they stream in:

  • Markdown — headings, lists, tables, images.
  • Code fences — syntax highlighting via Shiki, copy button, language-specific actions (run, diff).
  • Diff blocks — side-by-side with inline comments for multi-file changes.
  • Datatables — paginated, sortable, filterable — see Data Tables.
  • Mermaid — diagrams. See Mermaid.
  • HTML previews — see HTML Preview.
  • PDFs — see PDF Preview.
  • Math — KaTeX inline and block.

Compact mode (narrow viewports)

Fabric Agents adapts to narrow viewports automatically. When the shell width drops below 768px — primarily the WebUI on a phone, but also the desktop window when you resize it small — the renderer flips into a single-panel iOS-style drill-in:

  • One panel at a time. The session list, sources, and chat each take the full viewport; the sidebar and right rail auto-hide. A back chevron in the panel header replaces the desktop back/forward buttons.
  • Touch-first pickers. Workspace switcher, source picker, permission-mode selector, session-list filter, session-row context menu, working-directory selector, plan-acceptance picker, and (in the web UI) model selector all swap from popovers to bottom-sheet drawers so they don't get clipped by the panel container.
  • Expandable chat input. Tap a collapsed input to expand it into a multi-line composer — long prompts stay editable without leaving the active session.
  • Reorganised top bar. Workspace pill sits on the left, action chips collapse, and the "new chat" button pins to the viewport bottom as a floating action button.
  • Full-screen menu. The Fabric logo opens a mobile-first navigation stack instead of the desktop dropdown. Settings, Help, and Debug are full-screen sub-pages.

The breakpoint is layout-driven, not user-agent-driven — pulling the desktop window narrow gives you the same experience. Desktop popovers remain unchanged on wider viewports.

  • Permissions — the allowlist model behind Execute
  • Commands — create your own slash commands
  • Agents — create @-mentionable personas

On this page