View Button & Field Configuration

Per-blueprint controls for the view button and writer/textarea toolbar – set defaults, lock prompts, scope to specific fields.

Kirby Copilot supports configuration through Panel view buttons and individual writer/textarea fields, providing fine-grained control over AI generation behavior.

For section configuration, see the dedicated Copilot Section documentation.

View Button Configuration

The Copilot view button can be added to any Panel view (site, page, file, user) alongside the default buttons like the preview button or settings dropdown. Configure its behavior with props in your blueprints:

buttons:
  copilot:
    label: AI Assistant
    userPrompt: Generate homepage content including a headline, intro paragraph, and three key features with descriptions.
    theme: blue-icon
  open: true
  preview: true
  languages: true
buttons and marks replace Kirby's defaults instead of extending them, so every entry you want to keep has to be listed. The defaults differ per view: open, preview, languages for the site, plus settings and status for pages, and open, settings, languages for files – there is no preview button for files. For marks the stakes are higher, because an omitted mark is removed from the writer itself, not just from its toolbar: existing bold, italic, or link formatting is stripped from the field the next time it is saved.

The view button opens a prompt dialog that allows you to generate content for a single field or multiple fields at once:

Copilot Panel view button

Available Properties

Only systemPrompt and logLevel can be set globallylabel, userPrompt, icon, and theme are blueprint-only. Blueprint values override the global ones.

label String

Custom label for the view button. The default depends on the Panel language (e.g., "Copilot" for English).

buttons:
  copilot:
    label: AI Assistant

userPrompt String

Default user prompt that appears when the generation dialog opens. Without a predefined prompt, the input field will be empty. Users can edit the prompt before generating content.

buttons:
  copilot:
    userPrompt: 'Write a landing page for "{title}": headline, intro, three benefits, and call-to-action.'
Learn more about predefined prompts for Writer and Textarea fields in the Toolbar Buttons documentation.

A Kirby query in the view button or the section resolves against the current model, so editors can write the prompt themselves in a field:

buttons:
  copilot:
    userPrompt: "{{ page.customPrompt.value }}"

Note the two syntaxes side by side: {{ ... }} is a Kirby query resolved in the blueprint, while {field} is a placeholder resolved when the prompt is sent.

systemPrompt String

Custom system prompt that controls how the AI structures and formats the generated content. Users cannot see or edit this prompt.

Defaults to the global system prompt if not set locally.

buttons:
  copilot:
    systemPrompt: You are a technical writer specializing in documentation. Use clear, concise language.

Kirby queries resolve here too, on the same terms as userPrompt.

Learn more about the system prompt and how to customize it effectively.

icon String

Custom icon for the view button.

Default: sparkling
Options: Any of the default Kirby Panel icons or a custom icon like copilot-ai-generate.

buttons:
  copilot:
    icon: copilot-ai-generate
    theme: blue-icon
Copilot Panel view button with custom icon

theme String

Controls the visual appearance and color theme of the button.

Default: notice-icon
Options: notice-icon, passive, white, info, positive, warning, notice, negative, *-icon variants (e.g., positive-icon, negative-icon)

buttons:
  copilot:
    theme: blue-icon
Copilot Panel view button with custom theme

logLevel String

Set the logging level for debugging AI generation. Inspect the browser console to see logs.

Options: error, warn, info, debug

buttons:
  copilot:
    logLevel: info

Configuration Precedence

Properties are applied in the following order (later values override earlier ones):

  1. Default values (built into the plugin)
  2. Global configuration (in config.php)
  3. View button props (in blueprints)
config.php
return [
    'johannschopplich.copilot' => [
        'systemPrompt' => 'Default system prompt', // Applied globally
        'logLevel' => 'info'
    ]
];