Skip to content

skills

Skill models for the Open WebUI Skills workspace.

Skills are prompt-style content blocks that get injected into the chat context as system messages when referenced via <$skillId|label> mention syntax. Unlike Tools, Skills are plain text/markdown (not Python code).

Classes

SkillMeta

Bases: BaseModel

Metadata for a skill.

Attributes

tags
tags: Optional[list[str]] = []

List of tags for categorizing and filtering skills.

SkillModel

Bases: BaseModel

Full skill model as stored in the database.

Represents a skill with all its fields including content and access grants.

Attributes

id
id: str

Unique identifier for the skill, derived from the skill name (slugified, lowercased).

user_id
user_id: str

ID of the user who created the skill.

name
name: str

Display name of the skill.

description
description: Optional[str] = None

Brief description of what the skill does.

content
content: str

The text/markdown content of the skill. When a skill is invoked in chat, this content is wrapped in <skill name="..."> tags and injected as a system message.

meta
meta: SkillMeta

Metadata associated with the skill.

is_active
is_active: bool = True

Whether the skill is active and available for use. Inactive skills are hidden from selectors.

access_grants
access_grants: list[AccessGrantModel] = Field(
    default_factory=list
)

List of access grants controlling who can read/write this skill.

updated_at
updated_at: int

Timestamp of the last update (epoch).

created_at
created_at: int

Timestamp of creation (epoch).

SkillUserModel

Bases: SkillModel

Skill model with associated user information.

Attributes

user
user: Optional[UserResponse] = None

Details of the user who owns the skill.

SkillResponse

Bases: BaseModel

Response model for skill operations, excluding the heavy content field.

Attributes

id
id: str

Unique identifier for the skill.

user_id
user_id: str

ID of the user who created the skill.

name
name: str

Display name of the skill.

description
description: Optional[str] = None

Brief description of what the skill does.

meta
meta: SkillMeta

Metadata associated with the skill.

is_active
is_active: bool = True

Whether the skill is active and available for use.

access_grants
access_grants: list[AccessGrantModel] = Field(
    default_factory=list
)

List of access grants controlling who can read/write this skill.

updated_at
updated_at: int

Timestamp of the last update (epoch).

created_at
created_at: int

Timestamp of creation (epoch).

SkillUserResponse

Bases: SkillResponse

Skill response including user details.

Attributes

user
user: Optional[UserResponse] = None

Details of the user who owns the skill.

model_config
model_config = ConfigDict(extra='allow')

Allows extra fields which may be dynamically added.

SkillAccessResponse

Bases: SkillUserResponse

Skill response with write access indicator.

Used by list endpoints to communicate whether the requesting user has write permission on each skill.

Attributes

write_access
write_access: Optional[bool] = False

Whether the requesting user has write access to this skill.

SkillForm

Bases: BaseModel

Form for creating or updating a skill.

Attributes

id
id: str

Unique identifier for the skill. Lowercased and spaces replaced with hyphens on create.

name
name: str

Display name of the skill.

description
description: Optional[str] = None

Brief description of what the skill does.

content
content: str

The text/markdown content of the skill.

meta
meta: SkillMeta = SkillMeta()

Metadata associated with the skill.

is_active
is_active: bool = True

Whether the skill is active and available for use.

access_grants
access_grants: Optional[list[dict]] = None

List of access grants for the skill.

Dict Fields
  • id (str, optional): Unique identifier for the grant
  • principal_type (str, required): 'user' or 'group'
  • principal_id (str, required): User/group ID, or '*' for public access
  • permission (str, required): 'read' or 'write'

SkillListResponse

Bases: BaseModel

Paginated list of skills with user details.

Attributes

items
items: list[SkillUserResponse] = []

List of skills in the current page.

total
total: int = 0

Total number of skills matching the query.

SkillAccessListResponse

Bases: BaseModel

Paginated list of skills with access information.

Attributes

items
items: list[SkillAccessResponse] = []

List of skills with write access indicators.

total
total: int = 0

Total number of skills matching the query.

SkillAccessGrantsForm

Bases: BaseModel

Form for updating skill access grants.

Attributes

access_grants
access_grants: list[dict]

List of access grants for the skill.

Dict Fields
  • id (str, optional): Unique identifier for the grant
  • principal_type (str, required): 'user' or 'group'
  • principal_id (str, required): User/group ID, or '*' for public access
  • permission (str, required): 'read' or 'write'