A Colibri-specific user profile. Singleton record on the user's own repo, kept separate from app.bsky.actor.profile so Colibri never needs write access to the Bluesky record.
literal:self
Fixed literal value
Properties
$type
string
nsid
Optional
The type of the record.
avatar
blob
Optional
The user's avatar image.
banner
blob
Optional
The user's profile banner image.
description
string
Optional
The user's profile description / bio.
maxLength: 2560 bytesmaxGraphemes: 256 graphemesdisplayName
string
Optional
The user's display name.
maxLength: 640 bytesmaxGraphemes: 64 graphemespreferredBadge
string
Optional
Label value of the badge the user chose to display as their primary badge. Absent means automatic (highest-priority badge).
maxLength: 64 bytespresenceService
string
did
Optional
DID of the AppView authorized to emit off-protocol presence (status, typing, voice) for this user via Humming. A receiving AppView MUST drop any Hum about this user whose authenticated origin does not equal this value. Absent means the user has not opted into cross-instance presence.
syncBluesky
boolean
Optional
When true, the AppView serves displayName/avatar/banner/description from the user's app.bsky.actor.profile record (Bluesky stays the live source); these mirrored fields may be omitted here.
falsetheme
ref
lex:social.colibri.actor.profile#theme
Optional
Colibri-only profile theming. Always sourced from this record regardless of syncBluesky.
View raw schema
{
"key": "literal:self",
"type": "record",
"record": {
"type": "object",
"required": [],
"properties": {
"$type": {
"type": "string",
"format": "nsid",
"description": "The type of the record."
},
"theme": {
"ref": "lex:social.colibri.actor.profile#theme",
"type": "ref",
"description": "Colibri-only profile theming. Always sourced from this record regardless of syncBluesky."
},
"avatar": {
"type": "blob",
"accept": [
"image/jpeg",
"image/png",
"image/gif",
"image/webp"
],
"description": "The user's avatar image."
},
"banner": {
"type": "blob",
"accept": [
"image/jpeg",
"image/png",
"image/gif",
"image/webp"
],
"description": "The user's profile banner image."
},
"description": {
"type": "string",
"maxLength": 2560,
"description": "The user's profile description / bio.",
"maxGraphemes": 256
},
"displayName": {
"type": "string",
"maxLength": 640,
"description": "The user's display name.",
"maxGraphemes": 64
},
"syncBluesky": {
"type": "boolean",
"default": false,
"description": "When true, the AppView serves displayName/avatar/banner/description from the user's app.bsky.actor.profile record (Bluesky stays the live source); these mirrored fields may be omitted here."
},
"preferredBadge": {
"type": "string",
"maxLength": 64,
"description": "Label value of the badge the user chose to display as their primary badge. Absent means automatic (highest-priority badge)."
},
"presenceService": {
"type": "string",
"format": "did",
"description": "DID of the AppView authorized to emit off-protocol presence (status, typing, voice) for this user via Humming. A receiving AppView MUST drop any Hum about this user whose authenticated origin does not equal this value. Absent means the user has not opted into cross-instance presence."
}
}
},
"description": "A Colibri-specific user profile. Singleton record on the user's own repo, kept separate from app.bsky.actor.profile so Colibri never needs write access to the Bluesky record."
}