Workspace layout
The folders and files an Eggent workspace is made of — projects, the orchestrator, chats, attachments, settings, schedules — and which of them you may edit by hand.
All of a workspace's state is ordinary files in the data/ folder. In the cloud it lives on the server; on your own server, next to the installation. The agent works inside data/projects/.
Overview
data/
├── projects/ # the orchestrator's files and every project
├── chats/ # chat history
├── chat-files/ # chat attachments, one folder per chat
├── settings/ # settings, the API token, the sign-in secret
├── board/ # the task board: one file per card
├── versions/ # versions of files: what each held before every change
├── memory/ # memory's internal data
├── learning/ # internal: counters and a journal of what the agent learned
├── models/whisper/ # the speech recognition model
└── pi-agent/ # the runtime: keys, models, packages
The orchestrator and projects
data/projects/
├── context.md # the orchestrator's context
├── memory.md # the orchestrator's memory
├── learned.md # short notes the agent keeps about you and the work
├── skills/ # the orchestrator's skills, including ones the agent wrote
│ └── .archive/ # learned skills nobody has used for a long time
├── .mcp.json # the orchestrator's MCP servers
├── Messages/ # in a company: files from each thread, one folder per person
├── .shared/ # in a company: company folders given to you (not in the history)
│
└── <project-id>/
├── project.json # the project's name and description
├── context.md # the project's context
├── memory.md # the project's memory
├── model.json # the project's own model (if set)
├── skills/ # the project's skills
├── .mcp.json # the project's MCP servers
├── .pi/ # internal: schedules and state
├── generated-images/# images the agent drew
└── … # the project's files
A project's folder is its working folder: the agent reads and writes files here, and the Files panel shows the same folder.
What you may edit by hand
| File | OK? | Best done via |
|---|---|---|
context.md, memory.md |
Yes | Settings → Context / Memory, or ask the agent |
learned.md |
Yes | Settings → Memory → What the agent has learned: one note per line, starting with - |
skills/<name>/SKILL.md |
Yes | Any editor, the agent or the Files panel |
.mcp.json |
Yes | Settings → MCP |
model.json |
Yes | Settings → Models, scope set to the project |
.pi/subagent-schedules/* |
No | Only through the agent: "move the task…". Editing by hand breaks a running schedule |
data/settings/*, data/pi-agent/auth.json |
No | Through the settings interface |
Where secrets live
- Model provider keys —
data/pi-agent/auth.json. - The external API token and the sign-in secret —
data/settings/. - MCP server tokens — in the project's or orchestrator's
.mcp.json. - The Telegram bot token —
data/settings/telegram-integration.json.
Credentials that were pasted into a chat or printed by a tool are masked in the stored chats under data/chats/; data/secrets-sweep.json records that the one-time cleanup of older chats has run. The runtime's own session files under data/pi-sessions/ are the agent's memory and are not changed.
When backing up or moving a workspace, treat the whole data/ folder as a secret.