Storage locations
Where Knowledge Worker Agent keeps files, data, and credentials in the workspace.
~ is the home folder of the user Knowledge Worker Agent runs as, /home/developer in the image. All the data Knowledge Worker Agent keeps is under /home/developer, which lasts across restarts and image upgrades. The release image no longer has a /data volume.
Knowledge Worker Agent keeps everything it owns in one folder,
~/Knowledge_Worker_Agent, or the folder KWA_HOME names. Workspaces from earlier releases move their files there once. Until then, they use the earlier locations, listed in the Before the move column. For more information, see Move files into one folder.
In the tables, a path without
~ or / at the start is in ~/Knowledge_Worker_Agent.
~/Knowledge_Worker_Agent/
Chats/ chat folders
Projects/ projects
Scheduled Tasks/ scheduled tasks
upload/ attachments that don't belong to a chat
ObsidianVault/ the Obsidian connector's vault
.system/ files Knowledge Worker Agent manages, hidden from the Files panel
Work
| What | Where | Before the move |
|---|---|---|
| A chat's files | Chats/chat-<id> |
~/Chats/chat-<id>, or ~/chat-<id> for chats from earlier versions |
| A chat's attachments | upload in the chat's folder |
The same |
| A project's files | Projects/<project-name>, or the cloned repository for a project backed by one |
~/Projects/<project-name> |
| A scheduled task's files | Scheduled Tasks/<task-name>, unless the task runs in a project |
~/Scheduled Tasks/<task-name> |
| A cloned repository | A new folder in ~/Knowledge_Worker_Agent |
A new folder in ~ |
New clones and the Files panel start in
~/Knowledge_Worker_Agent. The Files panel can still open the rest of the home folder.
A new chat's folder starts with three folders:
| Folder | Holds |
|---|---|
inputs |
Material for the assistant to read. |
working |
Scratch files the assistant can throw away. |
.system |
Files Knowledge Worker Agent manages. When Make self-contained replaces a shared file, the original is kept in .system/artifact-backups. |
The assistant saves finished work at the top of the chat's folder.
Data
| What | Where | Before the move |
|---|---|---|
| Chats, messages, and settings | .system/knowledge-worker-agent.db |
~/.copilot-web.db. The release image uses ~/copilot-web.db. |
| Database snapshots | .system/backups. The five newest are kept, at most one a day. |
A .backups folder next to the database |
| Earlier versions of files | .system/file-versions. The contents of the 50 newest versions of each text file, compressed. The database lists them. |
A .versions folder next to the database |
| Log | .system/logs/knowledge-worker-agent.log, kept across restarts. KWA_LOG_FILE overrides it. |
/tmp/chat-logs/chat.log, cleared at every restart |
| LibreOffice, for previews of PowerPoint, Word, and Excel files | .system/libreoffice, about 546 MB once installed |
The same place |
| PDF previews of PowerPoint, Word, and Excel files | .system/office-previews. A PDF that isn't opened for 30 days is removed. |
The same place |
| Records of moving the files | .system/migration |
Not applicable |
| Chat history kept by opencode | ~/.local/share/opencode/opencode.db. If XDG_DATA_HOME is set, it's in that folder instead of ~/.local/share. |
The same |
Snapshots are on the same disk as the database. They protect against a mistake or a failed upgrade, not against losing the disk.
Configuration
| What | Where | Before the move |
|---|---|---|
| Your opencode configuration, including your agents and connectors | ~/.config/opencode. Agents you create are in its agent folder. |
The same |
| Central configuration | .system/config, or OPENCODE_CONFIG_DIR. Rewritten at each start. |
~/.config/opencode-platform |
| Cached configuration repository | .system/config-repo |
~/.config/sds-config-repo |
| Obsidian connector | .system/obsidian |
~/.local |
| Obsidian vault | ObsidianVault, or KWA_OBSIDIAN_VAULT |
~/ObsidianVault |
| Bundled skills and plugins | The skills and plugin folders in ~/.config/opencode. Replaced at each start. |
The same |
Knowledge Worker Agent installs its skills (for PDF, Word, PowerPoint, and Excel files, and for reports and dashboards) and its plugins at every start. Changes you make to them don't last.
Dictation
| What | Where |
|---|---|
| Speech engine and its libraries | /usr/lib/knowledge-worker-agent/whisper/, in the image. |
| Speech model | /usr/share/knowledge-worker-agent/whisper/, in the image. |
| Third-party licenses | /usr/share/doc/knowledge-worker-agent/third-party/, in the image. |
Older images have these under
sds-chat instead of knowledge-worker-agent, and dictation still finds them there. Dictation writes nothing to disk. Audio stays in memory and is discarded after each dictation.
Credentials
| What | Where | Before the move |
|---|---|---|
| GitHub Copilot sign-in, and provider API keys | ~/.local/share/opencode/auth.json, kept by opencode |
The same |
| Google Vertex AI sign-in | Kept by the Google Cloud CLI, in its own configuration folder | The same |
| Connector API keys | One file per connector in .system/mcp-keys, readable only by you |
~/.config/sds-mcp-keys |
| GitHub token for pull requests | .system/github-pat.json, readable only by you |
~/.copilot/github-pat.json |
If the legacy setting
COPILOT_HOME or COPILOT_GITHUB_PAT_PATH points somewhere else, the GitHub token stays there.
opencode's folders use the default location of the opencode configuration. If
XDG_CONFIG_HOME is set, they're in it instead of ~/.config.