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:

IdentifierPurposeExample
Workspace IDPermanent UUID — the unique identity of the workspace. Used by the server to track your project slot. Never changes.fcac7128-bb9a-c18f-8479-7e4b30bdc6ee
NameDisplay 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

  1. Click your workspace name at the bottom of the sidebar
  2. Select Create New Workspace
  3. Enter a name and optional description
  4. 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.json

Project 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:

ScenarioServer ResponseWhat Happens
Slot is free200 OKWorkspace activated, app proceeds normally
Same workspace already active200 OK (idempotent)No change needed — app proceeds normally
Different workspace occupies the slot409 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

ConcernAnswer
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

ActionDetail
Sets server status to archivedThe project row changes from active to archived
Records a timestamparchived_at is set on the database row
Frees the slotSlot usage drops from 1/1 to 0/1, allowing another workspace to claim it
Preserves historyThe 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.

ScenarioAllowed?Why
Same workspace ID, different machineYesSame project — idempotent activation succeeds
Same workspace ID, different nameYesNames are display labels; Workspace ID is the identity
Different workspace IDs, same accountNoDifferent 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:

SettingDescription
NameDisplay name for the workspace (can be renamed at any time)
Workspace IDPermanent UUID used by the server for project slot tracking (read-only)
IconCustom avatar image (PNG, JPG, SVG, WebP, GIF)
Permission ModeDefault agent autonomy level (Explore, Ask, Auto)
Working DirectoryRoot path for file operations
SourcesWhich 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"
}