Your assistant's identity, personality, and knowledge about you live in its workspace, a set of plain text files you can open, read, and edit.
On Vellum Cloud, your workspace is encrypted and isolated to your account. You browse and edit it through the web app. There's no folder on your computer to worry about.
On the desktop app with local hosting, the same workspace lives in a folder on your machine at ~/.vellum/workspace/, where you can also open it in any text editor. The structure and the files are the same in both places.

Whether your workspace lives in Vellum Cloud or on your local machine, the structure is the same. The tree below shows the local layout; on Cloud, you see the same files in the web app.
workspace/
├── IDENTITY.md ← Who your assistant is
├── SOUL.md ← How your assistant behaves
├── USER.md ← What it knows about you
├── NOW.md ← Working scratchpad (tasks, context, goals)
├── config.json ← Runtime configuration
├── conversations/ ← Per-conversation folders with attachments
├── skills/ ← Installed and custom skills
├── pkb/ ← Knowledge base (notes about you and your work)
├── scratch/ ← Working files, exports, generated assets
└── data/ ← Internal state
├── db/ ← Conversation history (SQLite)
├── qdrant/ ← Memory embeddings (vector DB)
├── apps/ ← User-built apps
├── avatar/ ← Avatar image
└── logs/ ← Daemon logsCredentials and secrets are kept in a separate, isolated store (the credential vault on Cloud, or ~/.vellum/protected/ on local). They're never included in workspace exports or diagnostic logs.
Three identity files are loaded into every conversation. When your assistant wakes up, it reads them to remember who it is, who you are, and how it should behave. Edit any of them, and the changes take effect on the next conversation.
Your assistant's self-definition:
- Name: Gigi - Emoji: 😏 - Nature: AI familiar - Personality: Witty, sharp, slightly irreverent - Role: Personal assistant, second brain
You can edit this file directly. Change the name, tweak the personality, swap the emoji. Your assistant picks up the changes next time you talk to it.
The big one. SOUL.md is your assistant's constitution — the principles and behavioral rules it follows in every conversation.
What's in here:
Your assistant updates this file on its own as it learns what works for you. But you can edit it too. Want it to stop being sarcastic? Remove the sarcasm. Want it to always explain before acting? Add that rule. It's your file.
Everything your assistant has learned about you:
Your assistant adds to this over time through conversations. You can also edit it directly to fast-track the learning process or correct something it got wrong. If you declined to answer a question during onboarding, it's marked here so the assistant doesn't re-ask.
A working scratchpad for what's happening right now. Unlike the identity files, NOW.md is ephemeral — it tracks in-progress tasks, session context, goals, and anything the assistant needs to carry between conversations.
The assistant reads and updates this file naturally as you work together. Think of it as a shared notepad — you can edit it too if you want to set priorities or leave context for the next session.
Your assistant has a visual identity too. There are two layers:
Removing a custom avatar restores the character avatar automatically. The image lives in data/avatar/ and the assistant manages it through dedicated tools (set_avatar, remove_avatar, get_avatar) — you never need to touch files manually.
This file only exists during onboarding. It's the script your assistant follows for your first conversation — figuring out its name, its vibe, who you are, and what you need help with. Once onboarding is complete, the assistant deletes it. If you see it in your workspace, onboarding hasn't finished yet.
Every conversation gets its own folder inside conversations/, named with a timestamp and unique ID. Each folder can contain attachments — files you sent to the assistant or that it generated during the conversation.
The workspace is version-controlled as a git repository on both Cloud and local. Your assistant automatically commits changes after each conversation turn, so you get a full history of how your workspace evolved over time.
Custom skills you've built or installed from the community live here. Each skill gets its own folder. A minimal skill only needs one file:
More complex skills can also include:
Built-in skills from the catalog are loaded automatically and don't appear here — only custom and community-installed skills show up in this directory. You can inspect, modify, or delete any of them.
The pkb/ directory is your assistant's personal knowledge base. It's a set of editable markdown files where your assistant keeps notes about you, your work, your projects, and anything else worth remembering across conversations.
Unlike memory embeddings (which the assistant queries semantically in data/qdrant/), the knowledge base is human-readable. Open pkb/INDEX.md to see what's in there, and edit any file directly to correct or add to what your assistant knows.
The scratch/ directory is a general-purpose working area. When the assistant generates images, exports files, writes scripts, or creates anything that isn't a conversation attachment, it lands here. Think of it as the assistant's desktop — a place for working files that don't belong anywhere specific.
This is where the assistant keeps its internal state. You generally won't need to touch these, but here's what's in there:
| Folder | What it stores |
|---|---|
| db/ | Conversation history, messages, and tool invocations (SQLite) |
| qdrant/ | Memory embeddings powering the search system (vector DB) |
| apps/ | Apps you've asked the assistant to build |
| avatar/ | Your assistant's avatar image |
| logs/ | Daemon logs (useful for debugging) |
| browser-profile/ | Headless browser session data |
| sounds/ | Custom notification sounds |
Credentials, API keys, OAuth tokens, and trust configuration are stored in a protected vault that lives outside the workspace. On Cloud, this is the managed credential vault tied to your account. On local, it's a separate directory at ~/.vellum/protected/.
Either way, secrets are never included in diagnostic exports or workspace backups. The assistant can use these credentials to take actions on your behalf, but cannot read or display them in conversation.
On Vellum Cloud, your assistant runs in an isolated cloud sandbox. It can read and write files inside its own workspace, but has no access to a host machine, so the host tools and shell commands described below don't apply.
On the desktop app, your assistant operates within a stricter boundary because it can also reach into your local machine:
| Tool type | Access | Permission |
|---|---|---|
| Workspace tools | file_read, file_write, file_edit — restricted to ~/.vellum/workspace/ | No approval needed |
| Host tools | host_file_read, host_file_write, host_file_edit — can access files anywhere on your machine | Requires approval |
| Shell commands | bash runs sandboxed in the workspace; host_bash runs on your machine | host_bash requires approval |
Path traversal (using ../ to escape the workspace) is blocked. Symlinks that point outside the boundary are rejected. On the desktop app, the sandbox is enforced at the OS level using sandbox-exec on macOS.