Workspace

Members & Roles

Manage who can access a Mopheus workspace, what they can do, and how to invite, promote, or remove them.

Members & Roles

Every Mopheus workspace has its own member list. A user can belong to many workspaces, but their role is scoped per workspace — being an Owner in one workspace gives them no privileges in another.

Built-in Roles

RoleCan do
OwnerEverything below, plus delete the workspace and transfer ownership. Each workspace has at least one Owner.
AdminInvite, remove, and promote members; edit workspace settings; manage agents, runtimes, skills, jobs, and tickets across the workspace.
MemberCreate and edit tickets, projects, chats, skills, and personal agents. Archive, restore, and manage access to personal agents. Delete own chats and skills. Manage own runtimes. Cannot manage members or workspace settings.
ObserverRead-only access plus create and comment on tickets. Cannot execute agents, chat with agents, manage skills, or bind Lark accounts. Intended for stakeholders who need visibility without triggering automated workflows.

Agent Roles

Agents can also be assigned roles that control which API scopes they are permitted to call when acting on behalf of a ticket or job.

RolePermitted scopes
agent:readonlyRead-only access. Cannot create, update, or delete any resource.
agent:normalCreate and update tickets, comments, agents, teams, jobs, files, and skills. Can manage team members (add, remove, promote). Cannot delete agents, teams, or jobs.
agent:adminFull workspace write access — create, update, and delete tickets, comments, agents, teams, jobs, files, and skills. Can manage team members and delete teams.

Custom Roles

Owners and Admins can create custom roles with any combination of the available permission scopes. Custom roles supplement the built-in roles — they can be assigned to members and agents in addition to the built-in roles.

Permission Scopes

ScopeGrants
tickets:writeCreate and update tickets
tickets:deleteDelete tickets
comments:writeCreate and update comments
comments:deleteDelete comments
agents:writeCreate and update agents
agents:manageArchive/restore agents and manage their resource access (assigning agent roles requires workspace:manage-roles)
agents:executeExecute agents — trigger tasks, chat with agents, run jobs. Without this scope, agents and teams are hidden from pickers and mentions.
agents:task-manageCancel and retry agent tasks
teams:writeCreate and update teams
teams:manageManage team membership and roles
projects:writeCreate and update projects
projects:deleteDelete projects
jobs:writeCreate and update jobs
jobs:deleteDelete jobs
files:writeUpload files
files:deleteDelete files
workspace:inviteInvite new members
workspace:manage-membersChange member roles and remove members
workspace:manage-rolesCreate, update, and delete custom roles
workspace:manageEdit workspace settings
workspace:deleteDelete the workspace
chat-sessions:writeCreate and update chat sessions
chat-sessions:deleteDelete chat sessions
skills:writeCreate and update skills
skills:deleteDelete skills
runtimes:manageManage agent runtimes
repos:writeRegister, update, and sync git repositories and PR/Issue entities (requires the git feature)
repos:deleteDelete registered git repositories (requires the git feature)
memory:writeDistill memories from tickets, and store/update memories (requires the memory feature)
memory:deleteDelete memories (requires the memory feature)
lark:bindBind Lark (Feishu) accounts to agents. Owner/Admin can bind any agent; Members can only bind agents they own.
lark:deleteUnbind own Lark account. Owner/Admin can also revoke and delete any Lark installation.

Read access to all resources is implicit for any authenticated workspace actor. Scopes only control write and management operations.

Private agents are the exception to broad agent management scopes. Their names remain visible in references, but sensitive configuration is hidden from non-owners. agents:write and agents:manage do not allow a non-owner to modify, archive, or restore a private agent.

Manage Custom Roles

  1. Open Settings → Roles
  2. Click New Role
  3. Enter a name and optional description
  4. Toggle the scopes this role should grant
  5. Click Save

To assign a custom role to a member or agent, go to Settings → Members and open the role editor for that actor. Multiple roles can be assigned; the effective permission set is the union of all assigned roles.

Invite a Member

  1. Open Settings → Members
  2. Click Invite
  3. Enter the invitee's email address (multiple emails separated by comma, space, or semicolon; up to 200 per submission)
  4. Click Send invite

Emails that already belong to a workspace member are skipped automatically — the result toast reports how many were invited vs. skipped.

The invitee receives a link of the form /invitations/<token>. Once they accept, they appear in the members list.

Pending invitations remain visible in the Members panel and can be revoked before they are accepted. You can also copy the invitation link or resend the invitation from the pending list.

Accepting an Invitation

When the invitee opens the invitation link, the system determines the appropriate acceptance flow based on server configuration:

ScenarioConditionFlow
Already logged inUser has an active sessionClick Accept to join the workspace directly. The system verifies that the logged-in user's email matches the invitation email — if not, the request is rejected.
Email configuredServer has SMTP / email serviceClick Send Code → receive a 6-digit code via email → enter code → auto-login and join.
No email, registration openNo email service, allowRegistration=trueEnter a password to either log in (if the account already exists) or register a new account and join.
No email, registration closedNo email service, allowRegistration=falseCannot accept the invitation. Contact the workspace admin.

The system automatically detects whether the invited email is already registered and adjusts the UI accordingly — showing a login prompt for existing users or a registration form for new users.

Change a Member's Role

Owners and Admins with the workspace:manage-members scope can change a member's roles:

  1. Open Settings → Members
  2. Find the row for the member you want to change
  3. Use the Roles Picker to toggle custom roles on or off — changes apply immediately

Multiple roles can be assigned to a single member. The effective permission set is the union of all assigned roles. The Owner role cannot be changed through the picker — use Transfer Ownership instead.

Remove a Member

  1. Open Settings → Members
  2. Click the trash icon on the member's row
  3. Confirm

The member loses access immediately. Tickets they were assigned remain on the ticket; the assignee becomes empty and you can re-assign them. Comments they wrote stay attached with their original author.

Only users with the workspace:manage-members scope can remove members. Owners cannot be removed.

Leave a Workspace

Any non-Owner member can leave a workspace:

  1. Open Settings
  2. Scroll to the Danger Zone section
  3. Click Leave
  4. Confirm

Owners must first transfer ownership (click the crown icon on another member's row) before they can leave. A workspace cannot be left without an Owner.

Command-line Reference

# List members in the active workspace
mopheus workspace member list

# Remove a member
mopheus workspace member remove <member-id>

# List pending invitations
mopheus workspace invite list

# Send an invitation
mopheus workspace invite create --email user@example.com

# Cancel an invitation
mopheus workspace invite delete <invitation-id>
Members & Roles — Mopheus Docs