Introduce a single configurable `copilotFolder` root (default `copilot`) that
all six Copilot sub-folders derive from (`${root}/copilot-conversations`,
`/copilot-custom-prompts`, `/system-prompts`, `/skills`, `/memory`,
`/projects`). Retire the three separate sub-folder settings and the
conversation-tag setting; the plugin never moves files — changing the root (or
upgrading with customized sub-folders) reloads consumers to the derived
location, prompts the user once about old→new paths, and leaves existing data
in place.
Core:
- copilotFolder field + v8 migration (seeds root, captures a legacy-upgrade
flag for pre-versioned installs).
- Pure derived accessors + reuse of the existing subscribe/debounce/reload
watcher pattern (watchers compare derived paths); custom-command watcher
added with pure-fetch → generation-check → atomic swap.
- QA privacy: whole-root exclusion expanded from `copilot` to
`copilot` + active root + all historical roots across all consumer entry
points; reset/hydrate preserve root history.
- Editable root UI (draft + explicit Apply), change-root ConfirmModal +
atomic landing + best-effort GC, root validation; conversation tag frozen to
a constant; skills folder is root-derived (no settings row).
- One-time v3→v4 relocation prompt for customized users.
Docs updated; retired fields kept as dead (no schema break). Tag freeze is
zero-migration (session identity is folder+epoch, never the tag).
4.7 KiB
System Prompts
A system prompt is a set of instructions you give the AI that shapes how it behaves in all conversations. Think of it as a persistent briefing: "You are an assistant that helps me with academic writing. Always cite sources. Respond in formal English."
Overview
Copilot has two layers of system prompts:
- Built-in system prompt — Always active. Defines core behaviors specific to Obsidian (how to format Obsidian links, how to handle note references, etc.)
- Custom system prompt — Optional. You can write your own instructions that are appended to the built-in prompt.
Built-In System Prompt
The built-in prompt is always active and cannot be edited. It tells the AI:
- It is "Obsidian Copilot" — an AI integrated into Obsidian
- How to format Obsidian internal links:
[[Note Title]] - How to format Obsidian image links:
![[image.png]] - How to format LaTeX math: use
$...$not\[...\] - How to handle @vault and @tool mentions
- To use
-for bullet points (not*) - To respond in the language of the user's query
- To treat "note" as referring to an Obsidian note
This prompt ensures Copilot's output is correctly formatted for Obsidian and aware of its context.
Warning
: Disabling the built-in prompt can break features like Vault QA, memory, and agent tools. Avoid disabling it unless you have a specific reason.
Custom System Prompts
Custom system prompts let you add your own instructions on top of the built-in prompt.
Where They're Stored
Custom system prompts are stored as markdown files in your vault, in the system-prompts/ sub-folder of your Copilot folder:
copilot/system-prompts/
This location is derived from your Copilot folder. To move it, change the root in Settings → Copilot → Basic → Copilot folder location — every Copilot sub-folder follows that root, so it is no longer configured on its own. Changing the root affects only where new prompts are saved; existing prompt files stay where they are unless you move them yourself.
Creating a System Prompt
From Settings
- Go to Settings → Copilot → Advanced
- Under User System Prompt, click the
+button - Enter a title for the prompt (e.g., "Academic Writing")
- A new markdown file is created in your system prompts folder
- Open the file and write your instructions
From the System Prompts Folder
Create any .md file in the copilot/system-prompts/ folder. Its filename (without .md) becomes the prompt's title.
Writing Good System Prompts
Tips for effective system prompts:
- Be specific: "Always respond in bullet points with no more than 5 bullets" is better than "be concise"
- Set a persona: "You are an expert in cognitive science helping me build a Zettelkasten"
- Define output format: Specify if you want headers, lists, prose, or code blocks
- Set language: "Always respond in French" if you want non-English output
- Limit scope: "Only answer questions related to my research notes on climate science"
Example system prompt:
You are a Zettelkasten assistant helping me build a knowledge base.
- Always connect new ideas to existing notes when possible
- Suggest up to 3 related concepts per response
- Format all note suggestions as [[Note Title]]
- Keep responses concise — under 200 words
Setting a Global Default
You can set one of your custom prompts as the global default — it will be used for all new chat sessions:
- Go to Settings → Copilot → Advanced
- Under Default System Prompt, select your prompt from the dropdown
- Any new conversation will start with this prompt active
To stop using a custom default, select None (use built-in prompt) from the dropdown.
Per-Session Override (Gear Icon)
You can override the system prompt for just the current conversation:
- Click the gear icon in the chat panel toolbar
- Select a different system prompt (or type a one-off prompt directly)
- This applies to the current session only and resets when you start a new chat
How Prompts Combine
When you have a custom prompt active:
- The built-in Copilot prompt runs first
- Your custom prompt is appended after it
Both sets of instructions are active simultaneously. Your custom instructions can refine, restrict, or extend the default behavior, but they don't replace it.
Per-Project System Prompts
Each Project can have its own system prompt, independent of the global default. Configure this in the project settings under System Prompt.
Related
- Chat Interface — Per-session gear settings
- Projects — Per-project system prompts
- Getting Started — Initial setup