TGit is a Git command-line interface (CLI) wrapper designed to track development activity and send it to a real-time dashboard. It enhances team collaboration by providing insights into code changes while maintaining privacy through tenant isolation for multi-company environments.
Key Features:
Transparent wrapping of all Git commands, ensuring seamless integration with existing workflows.
Real-time tracking of commits, pushes, status checks, and other activities.
A web-based dashboard that visualizes developer activity across teams.
Tenant isolation to ensure privacy in multi-company setups.
Scalability powered by Azure Cosmos DB.
Audience & Benefit:
Ideal for development teams and organizations seeking to monitor code changes and improve workflow efficiency. TGit provides actionable insights into team activity, enabling better collaboration and decision-making without compromising privacy.
TGit can be installed via winget, making it easy to integrate into your existing Git environment.
README
TGit - Git Wrapper with Activity Tracking
TGit is a CLI tool that wraps Git commands, passing them through to Git while sending activity tracking data to an API. It includes a real-time web dashboard to visualize team activity, with tenant isolation for multi-team support.
Who Benefits from TGit
Single user on a single machine with multiple repositories
If you regularly switch between repos, TGit helps you stay tidy by showing repo state and recent activity.
This makes it easier to decide what to commit, what to clean up, and when to remove temporary/test branches.
Single user across multiple machines
TGit provides the same visibility across your devices (for example, laptop and desktop).
Before changing files, you can see where work already happened, reducing duplicate work and merge conflicts.
Teams in a company (including managers)
Developers can share a tenant and see who is working on what in real time.
Managers get a live, lightweight view of current team activity across repositories.
Project Structure
TGit/
├── cli/ # CLI application
│ ├── Program.cs # CLI wrapper entrypoint
│ └── TGit.csproj # .NET project file (CLI)
├── api/ # ASP.NET Core Web API
│ ├── Controllers/ # API endpoints
│ ├── Services/ # Storage services (JSON, Cosmos DB)
│ ├── Models/ # Data models
│ └── TGitApi.csproj
├── dashboard/ # Astro.js static web dashboard
│ ├── src/pages/ # Dashboard UI
│ └── package.json
├── winget/ # Winget package manifests
└── .github/workflows/ # CI/CD
├── release.yml # CLI release (tag-triggered)
├── azure-api-deploy.yml # API deploy to Azure App Service
└── dashboard.yml # Dashboard deploy to Azure Static Web App
tgit --config Show current configuration
tgit --config tenant Show current tenant ID
tgit --config tenant Set tenant ID for data isolation
tgit --clear Delete all tracking data for your tenant
tgit --help Show help message
tgit --version Show version information
Tenant Configuration
Each TGit installation gets a unique tenant ID on first run. All users sharing the same tenant ID can see each other's activity on the dashboard.
# Set a shared tenant for your team
tgit --config tenant mycompany
# View your current tenant
tgit --config tenant