GenerateSaaS

Organizations

How the desktop app honors config.tenancy - organization switching, role-gated management, and owner-funded workspaces.

The desktop app honors the same config.tenancy settings as the web app, so one config drives both surfaces.

multiTenantOrganization UIWork in the app is funded by
enabledswitcher, management, auto-created first orgthe active organization's owner
disablednonethe signed-in user

With multiTenant enabled

  • Switching: create and switch organizations from the app; the active one shows in the sidebar switcher. A session that names none lands on the first one. With projects on, that same row leads with the active project and puts the organization list one tap away.
  • Entitlements: an organization holds no money. Switching into one makes its owner the payer, so metered work spends the owner's credits against the owner's plan. With no organization active, the signed-in user funds themselves.
  • Onboarding: on first sign-in a user with no organization gets one created silently, named config.tenancy.defaultOrganizationName (default "Personal") and renamed later in settings - the screen never asks.
  • Members see the payer, not the balance: a member sees who funds the active workspace and an out-of-credits state when work is refused, never the owner's balance or plan name.

Where the app's on-device data goes

The app scopes its on-device data per project, and with multiTenant enabled every organization gets one even when the projects UI is off - so switching organization (hotkeys included) switches chats, automations, per-task overrides and the work folder at once.

  • Projects on the desktop owns that story: what follows the workspace, what stays machine-global, connected folders, and the breaking-change warning for flipping either flag in a shipped app.
  • On disk: Agent runtime lists where each of these lives.

Local data is per machine: it never syncs between a user's own devices and is never shared with other members, so two members of one organization each see their own chats, automations, and overrides.

Management, gated by role

Organization management happens in-app, gated by the viewer's organization role (owner/admin versus member):

AreaActions
Memberslist members, invite one, change a role, remove one
Invitationssee pending invitations and cancel them
Detailsedit the organization's details
Membershipleave an organization, or delete it
Activitythe organization's audit log, filtered by action and entity type (owners and admins; /settings/organization-activity)

Delete is withheld on the last organization the viewer owns, and the server refuses it either way: a user who owns none has no workspace to fund. Create another organization or transfer ownership first. See Organizations.

Two flows stay on the web by design: invitations are accepted through the link in the invitation email, and checkout stays on the web - the Billing screen's plan, credit and portal buttons open the web billing page, where only the payer (the owner, inside an organization) can check out.

On this page