title: Tangled Lexicons updated: 2026-03-24#
Tangled defines its AT Protocol record types under the sh.tangled.* namespace. These are the records stored on users' Personal Data Servers (PDS) and consumed by the indexing pipeline.
Searchable Records#
sh.tangled.repo#
Repository metadata. Created when a user registers a repo with Tangled.
name(string, required) — Repository namedescription(string) — Short descriptioncreatedAt(datetime) — Creation timestampknot(string) — Knot DID hosting the git datatopics(array of strings) — Tags/topics
sh.tangled.repo.issue#
Issue on a repository.
repo(at-uri, required) — Reference to the parent repo recordtitle(string, required) — Issue titlebody(string) — Issue body (markdown)createdAt(datetime)
sh.tangled.repo.pull#
Pull request on a repository.
repo(at-uri, required) — Reference to the parent repo recordtitle(string, required) — PR titlebody(string) — PR body (markdown)head(string) — Source branchbase(string) — Target branchcreatedAt(datetime)
sh.tangled.string#
Code snippet or gist.
filename(string) — File name with extensioncontents(string, required) — Code contentlanguage(string) — Programming languagecreatedAt(datetime)
sh.tangled.actor.profile#
User profile information.
displayName(string) — Display namedescription(string) — Bio/about textavatar(blob) — Profile imagepronouns(string) — Pronounslocation(string) — Locationlinks(array of strings) — External linkspinnedRepos(array of at-uri) — Pinned repository references
Interaction Records#
sh.tangled.feed.star#
Star/favorite on a repository.
subject(object, required) —{ uri: at-uri, cid: cid }referencing the starred repo
sh.tangled.graph.follow#
Follow relationship between users.
subject(did, required) — DID of the followed usercreatedAt(datetime)
sh.tangled.feed.reaction#
Emoji reaction on content.
subject(object, required) —{ uri: at-uri, cid: cid }referencing the targetemoji(string, required) — Reaction emoji
State Records#
sh.tangled.repo.issue.state#
Tracks whether an issue is open or closed.
issue(at-uri, required) — Reference to the issuestate(string, required) —openorclosed
sh.tangled.repo.pull.status#
Tracks pull request lifecycle.
pull(at-uri, required) — Reference to the PRstatus(string, required) —open,closed, ormerged
Comment Records#
sh.tangled.repo.issue.comment#
Comment on an issue.
issue(at-uri, required) — Reference to the parent issuebody(string, required) — Comment body (markdown)parent(at-uri) — Parent comment for threadingcreatedAt(datetime)
sh.tangled.repo.pull.comment#
Comment on a pull request.
pull(at-uri, required) — Reference to the parent PRbody(string, required) — Comment body (markdown)parent(at-uri) — Parent comment for threadingcreatedAt(datetime)
Infrastructure Records#
sh.tangled.knot.member#
Knot membership record.
knot(did, required) — Knot DIDpermission(string) — Permission level
sh.tangled.knot.version#
Knot software version metadata.
Stable ID Format#
Documents in the search index use the stable ID format: did|collection|rkey (e.g., did:plc:abc123|sh.tangled.repo|repo-name). This ensures idempotent upserts regardless of CID changes.
AT-URI Format#
Records are addressed as at://did/collection/rkey (e.g., at://did:plc:abc123/sh.tangled.repo/repo-name).