shelf Docs
On this page
shelf log <name>
ArgumentDescription
<name>Skill name

Also takes the global options --json and --actor (CLI overview).

What it does

Reconciles the library, then lists every recorded revision of the skill. * marks the library's latest. BORROWED BY lists the projects whose loan is based on that revision. Revisions are never deleted, so the list is the complete history.

SourceRecorded when
libraryThe library copy changed (an edit, shelf new, shelf restore).
promoteA project's edits were published.
importshelf add or shelf pull.
adoptshelf adopt --unedited recorded an older copy.

Examples

terminal
shelf log pdf-tools
REVISION      DATE        SOURCE   BORROWED BY
d4deea4b55 *  2026-10-07  promote  storefront
ddad27dd34    2026-10-07  library  billing-api

Here billing-api is behind: shelf propagate pdf-tools, or shelf update pdf-tools inside it, brings it to d4deea4b55.

JSON output

json
{"schemaVersion":1,"ok":true,"data":{"skill":"pdf-tools","revisions":[{"hash":"sha256:d4deea4b55d45984ad84b4ea9db4211166df58840a9a66b02530604b34a4f20c","parent":"sha256:ddad27dd34082032a0f9564e301c57903aeb482c1f97b56b07844301a222bc36","source":"promote","createdAt":"2026-10-07T05:34:39.082Z","latest":true,"borrowers":["storefront"]},{"hash":"sha256:ddad27dd34082032a0f9564e301c57903aeb482c1f97b56b07844301a222bc36","parent":null,"source":"library","createdAt":"2026-10-07T05:33:58.052Z","latest":false,"borrowers":["billing-api"]}],"borrowers":[{"project":"billing-api","path":"/home/me/code/billing-api","revision":"sha256:ddad27dd34082032a0f9564e301c57903aeb482c1f97b56b07844301a222bc36","onLatest":false,"dueAt":"2026-11-06T05:34:38.125Z"},{"project":"storefront","path":"/home/me/code/storefront","revision":"sha256:d4deea4b55d45984ad84b4ea9db4211166df58840a9a66b02530604b34a4f20c","onLatest":true,"dueAt":"2026-11-06T05:34:17.892Z"}]}}
FieldMeaning
revisions[]hash, parent, source, createdAt, latest, and borrowers (project names).
borrowers[]Every project borrowing the skill: project, path, revision, onLatest, dueAt.

Errors

CodeWhen
SKILL_NOT_FOUNDNo skill by that name in the library.