Kirby Copilot supports configuration through view buttons (in Kirby 5+) and individual writer/textarea fields, providing fine-grained control over AI generation behavior.
In Kirby 5, you can add the Copilot view button to any blueprint and configure its behavior with props:
buttons:
copilot:
label: AI Assistant
userPrompt: Generate content based on the site structure and existing content
theme: blue-icon
preview: true
languages: true
buttons:
copilot:
label: AI Assistant
userPrompt: "Create engaging content for this page about {title}"
theme: blue-icon
preview: true
settings: true
languages: true
status: true
buttons:
copilot:
label: AI Assistant
userPrompt: Analyze this file and suggest descriptive content
theme: blue-icon
preview: true
settings: true
languages: true
The view button opens a prompt dialog that allows you to generate content for multiple fields at once:

For writer and textarea fields with the Copilot toolbar button, you can configure a custom userPrompt directly in the field definition. When users open the Copilot dialog, the prompt will be pre-filled with your custom text.
fields:
introduction:
label: Introduction
type: writer
marks:
- bold
- italic
- "|"
- copilot
copilot:
userPrompt: Write a compelling introduction about the future of web development in 2-3 paragraphs.
fields:
metaDescription:
label: Meta Description
type: textarea
buttons:
- bold
- italic
- "|"
- copilot
copilot:
userPrompt: Generate an SEO-optimized meta description (150-160 characters) that includes relevant keywords.
label StringCustom label for the view button. The default depends on the Panel language (e.g., "Copilot" for English).
buttons:
copilot:
label: AI Assistant
userPrompt StringDefault 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: Create engaging content for this page about {title}
fields:
text:
type: writer
marks:
- copilot
copilot:
userPrompt: Write engaging content that matches our brand voice.
fields:
description:
type: textarea
buttons:
- copilot
copilot:
userPrompt: Create a brief product description highlighting key benefits.
systemPrompt StringCustom system prompt that controls how the AI structures and formats the generated content. Users cannot see or edit this prompt.
Defaults to the global systemPrompt if not set locally.
buttons:
copilot:
systemPrompt: You are a technical writer specializing in documentation. Use clear, concise language.
icon StringCustom icon for the view button.
Default: sparklingOptions: Any of the default Kirby Panel icons or a custom icon like copilot-ai-generate.
buttons:
copilot:
icon: copilot-ai-generate
theme: blue-icon
theme StringControls 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

logLevel StringSet the logging level for debugging AI generation. Inspect the browser console to see logs.
Options: error, warn, info, debug
buttons:
copilot:
logLevel: info
Configuration options are applied in the following order (later options override earlier ones):
config.php)return [
'johannschopplich.copilot' => [
'systemPrompt' => 'Default system prompt', // Applied globally
'theme' => 'positive'
]
];
buttons:
copilot:
theme: blue-icon # Overrides global config
# systemPrompt inherited from global config