Git-native collaboration platform
GitSocial is an open source Go binary that stores issues, pull requests, comments and other data in git. It can push that data to your own S3 bucket, which then serves as both a git remote and a static site. GitSocial.org runs this way.
Each issue, pull request or comment is a commit with GitMsg trailers on a gitmsg/* branch. The GitSocial CLI and TUI can create and browse these items (demo).
GitSocial needs git 2.38 or later.
brew trust gitsocial-org/tap
brew install gitsocial-org/tap/gitsocial
scoop bucket add gitsocial https://github.com/gitsocial-org/scoop-bucket.git
scoop install gitsocial
curl -fsSL https://gitsocial.org/install.sh | shgo install github.com/gitsocial-org/gitsocial/cli/gitsocial@latestBefore the first mirror or push, enable public access for the bucket in the dashboard of the provider.
gitsocial mirror https://github.com/owner/repo s3://s3.example.com/mybucket/repo # first run asks for credentials
On a large repository, try -n 100 first to limit the items per type. --url https://example.org/ enables the HTML pages at a domain that you configure in the same dashboard.
Clone the repository from GitHub or GitLab, then run these commands in the repository directory:
gitsocial import # import issues, pull requests, releases and discussions
gitsocial tui # explore in the terminal
gitsocial serve # show the site in the browser
gitsocial config credentials set s3.example.com # paste the access key and the secret key
gitsocial remote add s3://s3.example.com/mybucket/myrepo --default --site
gitsocial push
Anyone can then clone it with gitsocial clone s3://s3.example.com/mybucket/myrepo, or with git clone from the public URL of the bucket.
| Document | Description |
|---|---|
| GitMsg Protocol | Core message format, headers, refs, versioning |
| S3 Remote | Buckets as git remotes, clone, push, thin fork buckets |
| Static Site | Repository website served from the bucket: timeline, issues, pull requests, releases, code |
| Identity Verification | Attestation sources, commands, caching |
| Notifications | Notification types, scopes, and triggers |
| Settings | User preferences, keys, personal sync across machines |
| Document | Description | Spec |
|---|---|---|
| Social | Posts, comments, lists, timeline, followers | GitSocial |
| PM | Issues, milestones, sprints, labels, boards | GitPM |
| Review | Pull requests, feedback, forks, version tracking, cross-forge scenarios | GitReview |
| Release | Releases, artifacts, checksums, signatures, SBOM | GitRelease |
| Memo | Tiered memos for knowledge as commits | — |
| Document | Description |
|---|---|
| CLI | Commands, flags, output formats |
| TUI | Per-view layouts, keybindings |
| JSON-RPC | Client integration over stdio |
| Agent Skill | AI-assisted workflows for Claude Code, Cursor, and other agents |
| Document | Description |
|---|---|
| Contributing | Fork, build, submit a pull request, report a bug |
| Architecture | Layers, packages, cache schema, TUI structure |
| Style | Prose, help text, errors, comments, commits |
| Testing | Test tiers, check stages, coverage, supported platforms |