gitsocial

module
v0.11.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 19, 2026 License: MIT

README

GitSocial

Git-native cross-forge collaboration platform

GitMsg Protocol CI

Why GitSocialHow It WorksInstallationQuick StartDocumentation

GitSocial TUI

Why GitSocial

Git solved distributed collaboration for code. GitSocial extends it beyond code, making your data portable and independent.

How It Works

All collaboration data (posts, issues, PRs, etc.) is stored in your git repository as git commits with structured trailers on gitmsg/* branches, syncing via git fetch and git push. Activity from other repositories appears in your timeline when you add them to your lists.

Installation

macOS / Linux:

brew install gitsocial-org/tap/gitsocial
# or
curl -fsSL https://raw.githubusercontent.com/gitsocial-org/gitsocial/main/install.sh | sh

If macOS blocks the binary ("cannot verify developer"), run:

xattr -d com.apple.quarantine $(which gitsocial)

Windows:

scoop bucket add gitsocial https://github.com/gitsocial-org/scoop-bucket.git
scoop install gitsocial

Go:

go install github.com/gitsocial-org/gitsocial/cli/gitsocial@latest

Or download a binary from Releases.

Quick Start

Clone your project from GitHub, GitLab, or any host, then from your project directory:

gitsocial import         # imports issues, PRs, releases, discussions
gitsocial tui            # explore in the terminal

Documentation

Concepts

Document Description
GitMsg Protocol Core message format, headers, refs, versioning
Identity Verification Decentralized trust model, attestation sources, caching
Notifications Notification types, scopes, and triggers

Extensions

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

Clients

Document Description
Agent Skill AI-assisted workflows for Claude Code, Cursor, and other agents
TUI Per-view layout diagrams (see also keybindings)
CLI Commands, flags, output formats
JSON-RPC Client integration over stdio

Contributing

Platform issues and PRs are disabled on all mirrors. GitSocial uses its own tools for collaboration.

Getting Started

  1. Install GitSocial (see Installation)
  2. Fork the repository on any host (GitHub, GitLab, Codeberg, or self-hosted)
  3. Clone your fork: git clone https://your-host.com/you/gitsocial
  4. Read Architecture for system design, packages, and cache layout

Submitting Pull Requests

git checkout -b feature/my-change         # make changes, commit

gitsocial review pr create \
  --base main \
  --head feature/my-change \
  "Short description of change"

git push origin feature/my-change         # push your branch
gitsocial push                            # push PR metadata

After your first push, request fork registration in the Matrix room so maintainers can discover your PRs and issues.

See Review for the full cross-forge PR workflow.

Reporting Bugs & Requesting Features

gitsocial pm issue create "Bug: description"
gitsocial push

For quick questions or discussion, use the Matrix room.

License

MIT

Directories

Path Synopsis
cli
gitsocial command
config.go - CLI commands for managing extension configuration
config.go - CLI commands for managing extension configuration
library module
core/cache
analytics.go - Analytics queries for commit activity, repositories, and contributors
analytics.go - Analytics queries for commit activity, repositories, and contributors
core/fetch
fetch.go - Generic repository fetch orchestration
fetch.go - Generic repository fetch orchestration
core/git
diff.go - Git diff operations and unified diff parser
diff.go - Git diff operations and unified diff parser
core/gitmsg
config.go - Extension configuration stored in git refs
config.go - Extension configuration stored in git refs
core/gitmsg/divergence
Package divergence provides a notification source for diverged gitmsg/<ext> branches.
Package divergence provides a notification source for diverged gitmsg/<ext> branches.
core/identity
background.go - Background resolution of verified bindings during fetch
background.go - Background resolution of verified bindings during fetch
core/identity/forge
forge.go - Forge adapter interface for identity verification
forge.go - Forge adapter interface for identity verification
core/log
log.go - Structured logging with configurable levels and output modes
log.go - Structured logging with configurable levels and output modes
core/notifications
mentions.go - Mention extraction from commit messages and CommitProcessor
mentions.go - Mention extraction from commit messages and CommitProcessor
core/protocol
hash.go - Hash generation for message content and refs
hash.go - Hash generation for message content and refs
core/result
result.go - Generic Result[T] pattern for extension APIs
result.go - Generic Result[T] pattern for extension APIs
core/search
format.go - Text formatting for search results
format.go - Text formatting for search results
core/settings
backend.go - Backend interface + Manager facade for scope-routed reads/writes.
backend.go - Backend interface + Manager facade for scope-routed reads/writes.
core/storage
forks.go - Isolated bare repos for cross-repository diffs
forks.go - Isolated bare repos for cross-repository diffs
extensions/pm
board.go - Board configuration and kanban view logic
board.go - Board configuration and kanban view logic
extensions/release
artifacts.go - Artifact storage on git refs
artifacts.go - Artifact storage on git refs
extensions/review
comment.go - PR comment integration with social extension
comment.go - PR comment integration with social extension
extensions/social
fetch.go - Social extension fetch wrappers over core/fetch
fetch.go - Social extension fetch wrappers over core/fetch
import
email_map.go - Parsing username=email mapping files for import overrides
email_map.go - Parsing username=email mapping files for import overrides
import/github
adapter.go - GitHub source adapter using gh CLI
adapter.go - GitHub source adapter using gh CLI
import/gitlab
adapter.go - GitLab source adapter using REST API v4
adapter.go - GitLab source adapter using REST API v4
rpc
handler.go - Method registry and dispatch for JSON-RPC server
handler.go - Method registry and dispatch for JSON-RPC server
tui
app.go - Main TUI application model, initialization, and event loop
app.go - Main TUI application model, initialization, and event loop
tui/test
assert.go - Render assertion helpers for TUI tests
assert.go - Render assertion helpers for TUI tests
tui/tuicore
bus.go - Message bus for decoupled extension message handling
bus.go - Message bus for decoupled extension message handling
tui/tuicore/diff
intraline.go - Word/char-level highlighting within paired removed/added lines.
intraline.go - Word/char-level highlighting within paired removed/added lines.
tui/tuikeydoc
components.go - Component bindings and domain ordering
components.go - Component bindings and domain ordering
tui/tuipm
form.go - Issue creation form using Huh
form.go - Issue creation form using Huh
tui/tuirelease
form_release.go - Release creation form using Huh
form_release.go - Release creation form using Huh
tui/tuireview
feedback_layer.go - Composable PR-feedback decoration for diff.DisplayPlan.
feedback_layer.go - Composable PR-feedback decoration for diff.DisplayPlan.
tui/tuisocial
util_adapters.go - Adapters bridging social types to tuicore interfaces
util_adapters.go - Adapters bridging social types to tuicore interfaces

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL