Workspaces
Organise projects, manage your licensed project slot, and work across devices.
What are Workspaces?
A workspace is the top-level container for everything related to one business plan project. Each workspace has its own sessions, sources, skills, tasks, and configuration — completely isolated from other workspaces.
All workspace data is stored locally on your machine. Archiving or switching workspaces never deletes your local files — it only changes which workspace occupies your licensed project slot on the server.
Workspace Identity
Every workspace has two identifiers:
| Identifier | Purpose | Example |
|---|---|---|
| Workspace ID | Permanent UUID — the unique identity of the workspace. Used by the server to track your project slot. Never changes. | fcac7128-bb9a-c18f-8479-7e4b30bdc6ee |
| Name | Display label — shown in the sidebar, settings, and server dashboard. Can be renamed at any time. | IFV Workspace |
The Workspace ID is the source of truth. Two machines can use different names for the same workspace, and the server will treat them as one project — as long as the Workspace ID matches.
You can find your Workspace ID in Settings → Workspace in the desktop app, and on the Dashboard at torly.ai beneath the active project name.
Use Cases
Visa Application
Dedicated workspace for your Innovator Founder Visa business plan
Multiple Ventures
Separate workspaces for each business idea (one active at a time)
Experimentation
Test new configurations without affecting your main workspace
Multi-Device
Use the same workspace ID on Mac and Windows seamlessly
Creating a Workspace
- Click your workspace name at the bottom of the sidebar
- Select Create New Workspace
- Enter a name and optional description
- Choose whether to copy settings from an existing workspace
A new UUID is generated automatically. This becomes the workspace’s permanent identity.
Workspace Contents
Each workspace includes:
~/.torlyai/workspaces/{workspace-id}/
├── config.json # Workspace settings (name, ID, rootPath)
├── theme.json # Theme overrides
├── permissions.json # Safety rules
├── sessions/ # Chat session data (JSONL)
├── sources/ # Connected sources
│ └── {source-slug}/
│ ├── config.json
│ ├── guide.md
│ └── permissions.json
├── skills/ # Custom skills
├── statuses/ # Status configuration
├── labels/ # Label configuration
├── business-plans/ # Generated business plan sections
├── discovery/ # Idea discovery sessions
├── interviews/ # Mock interview records
├── exports/ # PDF/DOCX exports
└── project/ # Project Workspace (tasks, deliverables)
├── config.json
└── tasks.jsonProject Slot & Licensing
Your Builder plan includes 1 active project slot. Only one workspace can occupy the slot at a time. When you open a workspace, the app registers it with the server as the active project.
How Activation Works
On every app launch, the desktop calls the server’s activate endpoint with the workspace ID and name. Three outcomes are possible:
| Scenario | Server Response | What Happens |
|---|---|---|
| Slot is free | 200 OK | Workspace activated, app proceeds normally |
| Same workspace already active | 200 OK (idempotent) | No change needed — app proceeds normally |
| Different workspace occupies the slot | 409 Conflict | “Project Slot Full” dialog appears |
The idempotent check uses the Workspace ID, not the name. This means relaunching the app, or using the same workspace from a different machine, works seamlessly without triggering the dialog.
Archiving a Workspace
When the “Project Slot Full” dialog appears, you can click Archive & Switchto free the slot and activate the new workspace. Here’s what that does:
What Archiving Does NOT Do
| Concern | Answer |
|---|---|
| Delete local files? | No. All data in ~/.torlyai/workspaces/ stays untouched. |
| Delete sessions, business plans, or tasks? | No. These live on disk and are never affected. |
| Remove the workspace from the app? | No. The workspace still appears in the sidebar. |
| Touch anything on the other machine? | No. Each machine’s local data is independent. |
What Archiving DOES Do
| Action | Detail |
|---|---|
Sets server status to archived | The project row changes from active to archived |
| Records a timestamp | archived_at is set on the database row |
| Frees the slot | Slot usage drops from 1/1 to 0/1, allowing another workspace to claim it |
| Preserves history | The archived row remains in the database as an audit record |
Think of archiving as “releasing the server-side slot” — it’s a licensing concept, not a data concept. Your local files are always safe.
Re-Activating a Workspace
Simply open the workspace again. The app calls the activate endpoint, which creates a new active project row. If another workspace is occupying the slot, you’ll see the “Project Slot Full” dialog and can archive the other project to proceed.
Multi-Device Usage
The same Workspace ID can be used on multiple machines (e.g. Mac and Windows). The server recognises the Workspace ID and treats re-activation from a different device as the same project.
| Scenario | Allowed? | Why |
|---|---|---|
| Same workspace ID, different machine | Yes | Same project — idempotent activation succeeds |
| Same workspace ID, different name | Yes | Names are display labels; Workspace ID is the identity |
| Different workspace IDs, same account | No | Different projects — slot dialog appears |
To use the same workspace on both machines, ensure the Workspace ID matches. You can check your Workspace ID in Settings → Workspace.
Switching Workspaces
Click your workspace name at the bottom of the sidebar to see all workspaces and switch between them. Each workspace maintains its own session history.
If the workspace you switch to has a different Workspace ID from the currently active project, you’ll be prompted to archive the current project first.
Workspace Settings
Open Settings → Workspace to view and edit:
| Setting | Description |
|---|---|
| Name | Display name for the workspace (can be renamed at any time) |
| Workspace ID | Permanent UUID used by the server for project slot tracking (read-only) |
| Icon | Custom avatar image (PNG, JPG, SVG, WebP, GIF) |
| Permission Mode | Default agent autonomy level (Explore, Ask, Auto) |
| Working Directory | Root path for file operations |
| Sources | Which data sources are enabled for this workspace |
Config File
// ~/.torlyai/workspaces/{workspace-id}/config.json
{
"id": "fcac7128-bb9a-c18f-8479-7e4b30bdc6ee",
"name": "IFV Workspace",
"createdAt": 1769608505354,
"rootPath": "/Users/me/.craft-agent/workspaces/my-workspace"
}