documentation/SOCIAL.md · main · 2026-10-08

Social Extension

Posts, comments, reposts and quotes are commits (GITSOCIAL.md), written to the gitmsg/social branch unless init names another. The timeline is the union of the lists a workspace follows.

Initialize · Post · Blog · Lists and timeline · Followers · Reference

Initialize

gitsocial social init [-b <branch>]
gitsocial social config get|set|list

init is idempotent. It creates refs/gitmsg/social/config and the gitmsg/social branch. -b names the branch that post, comment, repost and quote write to.

On each branch that the timeline reads, a commit without a GitMsg: trailer is a post, so a plain git commit is also a post. Commits with a trailer are comments, reposts, quotes, edits or retractions.

Post

gitsocial social post "Hello world" [-l kind/note]
gitsocial social comment <ref> "Great idea!"
gitsocial social repost <ref>
gitsocial social quote <ref> "Worth reading:"
gitsocial social edit <ref> "Updated text"
gitsocial social retract <ref>

The original of a comment is the root post of the thread, and a nested reply adds reply-to for its parent. Edits and retractions use core versioning, and the latest version has priority.

Blog

A blog uses one branch and has no gitmsg/social branch.

gitsocial social init -b main
git commit -m "Hello world"                 # a plain commit on main is a post
gitsocial social post "A shorter note"
gitsocial social edit <ref> "Updated text"
gitsocial social retract <ref>

edit and retract write to the branch that the post is on; for a blog, this is main. A follower names that branch with list add -b main, or lets list add record the repository's default branch.

Lists and timeline

A list is a named set of repositories. The timeline shows posts from every list, or from one list with -l.

gitsocial social list create following
gitsocial social list add following https://github.com/user/repo [-b <branch> | --all-branches]
gitsocial social list remove following https://github.com/user/repo
gitsocial social list show [following]
gitsocial social list ls
gitsocial social list delete following
gitsocial social list repo <repo-url>       # the lists a remote repository publishes
gitsocial social timeline [-l following] [-r workspace] [-n 50]
gitsocial social fetch                      # every repository in every list; `gitsocial fetch` does this and more

list add fetches the URL that you type; list remove accepts each form of it, because GitSocial compares URLs by identity. A repository is in a list one time, on one branch or on all branches. The timeline reads the branch that the member names, the gitmsg/social branch of the repository, and all branches of the workspace.

In the TUI, the Repository view reads all branches of a repository unless a branch is picked. My Branches in the navigation, or b on a repository, lists the branches with their commit counts, and Enter opens one (TUI-KEYS.md). c on a repository or a branch opens its code: the tree of the branch, and each file with line numbers (TUI-KEYS.md). My Tags, or t, lists the tags of the local clone with the commits since the previous tag, and Enter opens the release that names a tag (TUI-KEYS.md). w on My Repository shows the working tree: s and u stage and unstage a file, and C commits the index with a subject and a body (TUI-KEYS.md).

Followers

A repository follows the workspace when one of its lists contains the workspace URL. GitSocial finds followers during a fetch.

gitsocial social followers [--json]

Reference

Timeline actions

An action is derived from commits that exist already: an edit that changes a state, or a review. No command writes an action.

ActionShown forSource
closed, reopened, canceledissue, milestone, sprintan edit whose state differs from the version before it
started, completedsprintan edit that changes state to active or completed
merged, closed, reopenedpull requestan edit whose state differs from the version before it
readypull requestan edit that removes draft="true" from an open pull request
approved, changes-requestedpull requesta review with review-state; an edit of the review only when the value changes