What are assistants?
Assistants combine a model, system prompt, and skills into a configured agent that works inside your workspace.
Assistants are Sundial's abstraction for a configured AI agent: they combine a model, system prompt, and skills into one agent that works inside your workspace. An assistant specifies which LLM to use, what personality and instructions to follow, and which skills to load. They can edit your files, run searches, and carry out multi-step workflows.
Each assistant is defined by a single ASSISTANT.md file inside a .sundial/assistants/ directory.
How assistants work
- The runtime reads
ASSISTANT.mdand parses the frontmatter (model, skills) and body (system prompt). - Skills listed in the frontmatter are discovered — name + description at first, full instructions on demand.
- If
BOOTSTRAP.mdexists alongside it, the assistant enters bootstrap mode to personalize itself through conversation. - The configured agent is connected to the workspace, ready to receive messages and use tools.
The ASSISTANT.md file
Every assistant is defined by an ASSISTANT.md file with YAML frontmatter for configuration and a Markdown body that becomes the system prompt.
---
name: lara
description: A research assistant that cites sources
model: claude-sonnet-4-5
skills: [web-search, pdf-to-text, code-review]
---
# Soul
Be genuinely helpful, not performatively helpful.
Have opinions when asked. Be resourceful before asking.
# Identity
- **Name:** Lara
- **Vibe:** Warm, thorough, citation-obsessed
- **Emoji:** 📚
# Instructions
You are a thorough research assistant.
Always cite your sources and prefer primary sources.Frontmatter
| Field | Required | Description |
|---|---|---|
name | Yes | Display name of the assistant. |
description | Yes | One-line summary of what it does. |
model | Yes | LLM identifier (e.g. claude-sonnet-4-5). |
skills | No | Inline YAML array of skill names to load (e.g. [web-search, code-review]). |
skills: [web-search, code-review]) rather than multi-line list entries, since some assistants may have dozens of skills and the inline format keeps the frontmatter compact.Body = system prompt
The body of ASSISTANT.md is what your assistant reads as its instructions. Think of it as telling your assistant who they are and how they should behave. Everything after the frontmatter fence is sent to the model as the system prompt.
Three conventional H1 sections are recognized — Soul, Identity, and Instructions — but the body is freeform. You can include all three, just one, or write it as prose. Whatever works best for your assistant.
# Soul
The Soul section defines the assistant's personality, values, and behavioral principles. This is the “who” of the assistant — how it thinks and what it cares about.
# Soul
Be genuinely helpful, not performatively helpful.
Have opinions when asked. Be direct but kind.
Be resourceful — try to solve problems before asking for help.# Identity
The Identity section defines surface-level traits: name, vibe, emoji, and any other character attributes. Think of it as the assistant's “character sheet.”
# Identity
- **Name:** Lara
- **Vibe:** Warm, thorough, citation-obsessed
- **Emoji:** 📚
- **Speaks like:** A knowledgeable colleague, not a chatbot# Instructions
The Instructions section is task-specific. It tells the assistant what to do and how to do it. This is where you describe workflows, output formats, constraints, and domain-specific behavior.
Bootstrap mode
When a BOOTSTRAP.md file exists alongside ASSISTANT.md in the assistant folder, the assistant enters bootstrap mode. Instead of jumping into work, it starts by having a conversation with the user to understand:
- Who the assistant should be (personality, tone, expertise)
- What tasks it should excel at
- Any specific instructions or constraints
As it learns, the assistant updates the Soul and Identity sections in ASSISTANT.md. When personalization is complete, it deletes BOOTSTRAP.md and exits bootstrap mode.
BOOTSTRAP.md exists next to ASSISTANT.md, the runtime injects it into the system prompt. The agent deletes it when onboarding is done. No frontmatter flag needed.Skills at runtime
When an assistant starts, the runtime:
- Reads the
skills:array fromASSISTANT.mdfrontmatter. - Locates each skill in the agent's skills folder (e.g.
.claude/skills/). - Loads only the name and description from each
SKILL.mdfrontmatter. - Injects an available skills section into the system prompt listing all skills.
- When a task matches a skill's description, the agent reads the full
SKILL.mdinstructions on demand.
There is no special “Skill tool.” Skills are listed in the system prompt and the agent uses its normal file-reading ability to load instructions when a task matches.
Assistants vs skills
| Skill | Assistant | |
|---|---|---|
What it is | A capability (folder with SKILL.md) | A configured agent (folder with ASSISTANT.md) |
Contains | Instructions, scripts, references | Model choice, system prompt, skills list |
Reusable | Yes, across many assistants | Yes, can be forked/copied |
Has a personality | No | Yes (Soul + Identity sections) |
Runs on its own | No, needs an agent to load it | Yes, with a runtime |