Metadata Panel
The Metadata panel is your control center for managing prompt properties beyond the content itself. Access it by clicking the Tag icon in the editor header or pressing Cmd + Shift + M.
Panel Overview
The Metadata panel contains four main sections:
+---------------------------+
| VARIABLES | <- Define template variables
| + Add Variable |
+---------------------------+
| INJECTIONS | <- View detected prompt references
| [[ prompt-path ]] ✓ |
+---------------------------+
| TAGS | <- Organize with labels
| [tag1] [tag2] + Add |
+---------------------------+
| SETTINGS | <- Configure behavior
| ○ Raw Content Mode |
+---------------------------+
| [Render Preview] | <- Test rendering
+---------------------------+Variables Section
Define and manage template variables that can be used in your prompt with {{ variableName }} syntax.
Auto-Detection
The panel automatically detects variables used in your content:
Your prompt contains: {{ userName }}
Variables section shows:
├── userName (detected, undefined) [+ Add]Click + Add to quickly define detected variables.
Adding Variables Manually
- Click + Add Variable in the Variables section
- Fill in the variable details:
| Field | Required | Description |
|---|---|---|
| Name | Yes | Variable identifier (no spaces or hyphens) |
| Type | Yes | string, number, boolean, array, or object |
| Default Value | No | Fallback when no value provided |
| Description | No | Documentation for team members |
| Required | No | Whether a value must be provided |
- The variable is saved automatically
Variable Types
| Type | Default Value Format | Input in Render Modal |
|---|---|---|
string | "text" | Text input |
number | 42 | Number input |
boolean | true or false | Checkbox |
array | ["a", "b"] | Textarea (comma-separated) |
object | {"key": "val"} | Textarea (JSON) |
Variable Actions
Hover over any variable to see available actions:
| Action | Icon | Description |
|---|---|---|
| Copy | 📋 | Copy {{ variableName }} syntax |
| Edit | ✏️ | Modify variable definition |
| Delete | 🗑️ | Remove variable (own variables only) |
Inherited Variables
Variables from parent folders appear with a lock icon and source label:
Variables
├── brand_name 🔒 (from: marketing) <- Inherited
├── tone 🔒 (from: marketing) <- Inherited
└── greeting <- Own variableActions for inherited variables:
- Override: Create a local copy to customize
- Unlock: Remove local override, revert to inherited value
Injections Section
View and validate all prompt injections detected in your content.
Detection
The panel finds all [[ path/to/prompt ]] references:
Your prompt contains: [[ personas/expert ]]
Injections section shows:
├── personas/expert ✓ ValidValidation Status
| Icon | Status | Meaning |
|---|---|---|
| ✓ Green | Valid | Prompt exists and is injectable |
| ✗ Red | Invalid | Prompt not found |
| ⚠ Yellow | Warning | Circular dependency or disabled |
Injection Actions
| Action | Description |
|---|---|
| Copy | Copy [[ path ]] syntax |
| Navigate | Jump to the injected prompt |
Error Messages
When validation fails, the panel shows helpful messages:
"Prompt not found"— Check the path spelling"Circular dependency"— This prompt references itself (directly or indirectly)"Injection disabled"— The target prompt has disabled injection
Tags Section
Organize prompts with descriptive labels for easy filtering and discovery.
Adding Tags
- Type a tag name in the input field
- Press Enter or click Add
- Tag appears as a chip
Tag Display
Tags appear as clickable chips:
Tags
[customer-support] [email] [v2] [+ Add]Tag Actions
- Click tag: Copy tag name
- Click ✕: Remove tag (own tags only)
Inherited Tags
Tags from parent folders are merged with own tags:
Tags
[brand] 🔒 <- From parent folder
[email] <- Own tagInherited tags show a lock icon and cannot be removed (only overridden at the folder level).
Settings Section
Configure prompt behavior and rendering options.
Raw Content Mode
Toggle: Disable Variable Substitution
When enabled:
{{ variableName }}is preserved literally in output- Variables are NOT replaced with values
- Useful for prompts that contain template syntax as content
Use cases:
- Code examples showing template syntax
- Jinja/Handlebars templates as prompt content
- Documentation about the variable system
Inherited Settings
Settings can be inherited from parent folders:
Settings
├── Raw Content Mode: OFF 🔒 (from: templates)
│ [Override] [Revert]- Override: Set a different value for this prompt
- Revert: Remove override, use inherited value
Render Preview
Test your prompt rendering without running it through an AI model.
Opening the Modal
- Click Render Preview at the bottom of the Metadata panel
- Or press
Cmd + Shift + R
The Render Modal
+----------------------------------------+
| RENDER PREVIEW [✕] |
+----------------------------------------+
| Variables |
| ┌────────────────────────────────────┐ |
| │ userName: [_______________] │ |
| │ company: [_______________] │ |
| │ isPremium: ☑ │ |
| └────────────────────────────────────┘ |
+----------------------------------------+
| Rendered Output |
| ┌────────────────────────────────────┐ |
| │ Hello, Alice! │ |
| │ Welcome to Acme Corp. │ |
| │ Premium features enabled. │ |
| └────────────────────────────────────┘ |
+----------------------------------------+
| [Copy] [Download .md] [Re-render] |
+----------------------------------------+Features
| Feature | Description |
|---|---|
| Variable Inputs | Type-aware input fields for each variable |
| Auto-render | Output updates as you type values |
| Error Display | Shows template errors with fix suggestions |
| Copy | Copy rendered output to clipboard |
| Download | Save as .md file |
| Re-render | Manually trigger re-rendering |
What Gets Rendered
- Injections resolved first: All
[[ ]]references are replaced - Variables applied: All
{{ }}expressions are evaluated - Final output shown: Ready-to-use prompt text
Variable Collection
The modal collects variables from:
- Current prompt’s defined variables
- All injected prompts’ variables
- Parent folder inherited variables
Variables show their source:
userName (from: current prompt)
brand_name (from: marketing folder)
tone (from: personas/expert)Folder Metadata
Folders can have their own metadata that cascades to all contained prompts.
Editing Folder Metadata
- Select a folder in the sidebar
- The Metadata panel shows folder-specific options
- Changes affect all prompts within
What Cascades
| Metadata | Cascade Behavior |
|---|---|
| Variables | Merged with child variables |
| Tags | Combined with child tags |
| Settings | Inherited unless overridden |
Affected Prompts
When editing folder metadata, the panel shows:
This folder contains 12 prompts
Changes will affect all prompts in this folderKeyboard Shortcuts
| Action | Mac | Windows/Linux |
|---|---|---|
| Toggle Metadata Panel | Cmd + Shift + M | Ctrl + Shift + M |
| Open Render Modal | Cmd + Shift + R | Ctrl + Shift + R |
| Add Variable | Cmd + Shift + V | Ctrl + Shift + V |
| Add Tag | Cmd + Shift + T | Ctrl + Shift + T |
Mobile Experience
On mobile devices, the Metadata panel appears as a bottom sheet:
- Swipe up to expand
- Swipe down to minimize
- Tap the grab handle to toggle
- Full functionality maintained
Auto-Save
Metadata changes are saved automatically:
- Debounce delay: 1 second after last change
- Retry on failure: Up to 3 attempts
- Visual feedback: Save indicator in header
No manual save needed — just make your changes and they’re persisted.
Best Practices
1. Define Variables Proactively
Add variable definitions before using them in content:
- Provides autocomplete suggestions
- Documents expected inputs
- Sets sensible defaults
2. Use Descriptive Tags
Good tags make prompts discoverable:
Good: [customer-support] [email-reply] [v2.1]
Bad: [misc] [test] [new]3. Document with Descriptions
Add descriptions to variables:
userName
Type: string
Description: "Customer's first name for personalization"
Default: "valued customer"4. Leverage Inheritance
Set common metadata at folder level:
marketing/ # brand_name, tone defined here
├── emails/ # Inherits brand_name, tone
├── social/ # Inherits brand_name, tone
└── ads/ # Inherits brand_name, tone5. Test with Render Preview
Before deploying, always:
- Open Render Preview
- Enter realistic test values
- Verify output looks correct
- Check for undefined variable errors
Troubleshooting
Variables not appearing
- Check syntax: Must be
{{ name }}(double braces) - Variable names can’t have hyphens (use
userNamenotuser-name) - Refresh the panel if recently added
Inherited metadata not showing
- Verify the parent folder has metadata defined
- Check you’re viewing a prompt, not a folder
- Inherited items show a lock icon
Render preview shows errors
Common error types:
- Undefined variable: Add it to the Variables section
- Invalid syntax: Check for typos in
{{ }} - Circular injection: Review
[[ ]]references
Changes not saving
- Check the save indicator in the header
- Verify network connection
- If “Error” state, try refreshing the page