Skip to content

Users & permissions

What this is for. This page is the people-and-agents directory: humans who log in, and non-login agent identities linked to agent definitions. CASL enforces permissions on every protected API. It is not where you configure an agent’s model or tools — that is Configure. New Agent here creates the identity and jumps to the agent editor.

Route: /users. Subtitle: Users and AI agents.

  • A second human needs to log in (operator / viewer) on a multi-user install.
  • You want a new agent identity without going through Agents first.
  • Someone left and you need to Archive them (soft — restore later). Root owner and agent users cannot be archived from this table.
  • You need to see who is active vs archived.
  1. Open Users (/users).
  2. Toggle Active / Archived.
  3. New Agent creates an agent user named “New Agent” and opens /agents/<id>.
  4. For a human, create them through setup or your user-provisioning path; roles are enforced via CASL.
  5. Archive a human (confirm). Restore from the Archived view.
ConceptMeaning
Root ownerFirst admin from setup (is_root_owner) — cannot be archived here
Roleowner / admin / others as defined — badge styling differs
Statusactive / archived
Agent usersNon-login identities linked to agents (is_agent) — AI Config → jumps to the agent
ArchiveSoft delete (DELETE /users/:id); restore POST /users/:id/restore
OpenCode terminalOwner and admins only (the manage right on OpenCode): the terminal runs commands as the server’s own user. The user role sees the OpenCode page, and colleagues’ opencode_run tasks run in its conversations. The built-in roles’ rights are fixed; to give someone the terminal, give them the admin role. Lowering their role, suspending or archiving them ends their open terminals at once — see OpenCode — Who can open a terminal

Create users for multi-user installs; permissions enforced via CASL on API routes.

ColumnMeaning
UsernameLogin id
Display NameShown name
RoleAuthorization role
TypeHuman or Agent
CreatedCreated at
AI Config →Agent users only — open the agent
Archive / restoreHumans except root owner

Empty: No users / No archived users.