Git-native collaboration platform
GitSocial stores issues, pull requests, comments and releases as commits in git, so they clone, fork and push along with the code.
It is a single open source Go binary that:
GitSocial.org runs this way.
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@latestGitSocial needs git 2.38 or later.
In any cloned repository, show the code, the commits and the tags in the browser:
gitsocial serve
To bring the issues, pull requests and releases from GitHub or GitLab, and the discussions from GitHub:
gitsocial import -n 20
-n caps the items per type, drop it for a full import, which can take a while on a large repository. A running gitsocial serve picks up the imported items as they arrive.
The TUI browses and creates the same items, and configures the repository (demo):
gitsocial tui
Any S3-compatible bucket works, whether AWS S3, Cloudflare R2, DigitalOcean Spaces or Hetzner Object Storage, and it serves as a git remote and a static site at the same time.
To mirror a GitHub or GitLab project, with its items, into a bucket:
gitsocial mirror https://github.com/owner/repo s3://s3.example.com/mybucket/repo
The first run asks for credentials, and each later run refreshes the mirror.
To publish your own repository, set the credentials once for the endpoint, then add the bucket as a remote and push:
gitsocial config credentials set s3.example.com
gitsocial remote add s3://s3.example.com/mybucket/myrepo --default --site
gitsocial push
A private bucket needs no further setup, and anyone with the credentials can clone it:
gitsocial clone s3://s3.example.com/mybucket/myrepo
For a public project, enable public access in the dashboard of the provider, and anyone can then git clone from the public URL of the bucket. To serve the HTML pages at your own domain, configure the domain in the same dashboard, then set the URL and push again:
gitsocial config site set url https://example.org/
gitsocial push
| 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 | none |
| 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 |