Skip to content

Repository files navigation

SikaGit logo

SikaGit

A free, self-hosted Git GUI that runs in your browser.

Visual commit graph, inline diffs, hunk-level staging, and AI commit messages — served from Docker, on any OS including WSL. An open-source alternative to GitKraken, Sourcetree, and GitHub Desktop that lives on your own machine.

License GitHub stars Last commit PRs welcome Docker ready React 19 Node.js 22 TypeScript 5.9

Star · Quick Start · Screenshots


SikaGit is a self-hosted Git client with a full graphical interface that runs entirely in your browser and installs with a single docker compose up. It's for developers who want the clarity of a visual Git tool — commit graph, side-by-side diffs, partial staging — without a licensed desktop app, and who work across multiple repos, machines, or WSL. It exists because the polished Git GUIs are closed-source, paid, or OS-locked; SikaGit is open, free for personal use, and runs wherever Docker does.

Why SikaGit?

GitKraken Sourcetree GitHub Desktop SikaGit
Free & open-source ❌ Paid / closed ⚠️ Free / closed ⚠️ Free / partial Free & OSS
Self-hosted, runs in Docker
Runs in the browser (any OS incl. WSL)
Visual commit graph
Hunk-level staging ⚠️
AI commit messages 💲 Paid add-on BYO key

AI commit messages in SikaGit use your own Google Gemini API key. Competitor rows reflect their standard offerings at time of writing.

Features

Commit & diff

  • Visual commit graph — lane-based rendering with color-coded branches, merge curves, and uncommitted changes shown inline.
  • Inline diff viewer — syntax-highlighted diffs with image preview and binary detection so the viewer never freezes on video, audio, or archives.
  • Hunk-level staging — stage or discard individual hunks, not just whole files, straight from the diff.
  • Full staging control — staged/unstaged panels with folder grouping, bulk stage/discard, and one-click stage-all.

AI assist (bring your own Google Gemini key)

  • AI commit messages — generate a commit message from your staged diff.
  • Smart commit grouping — let AI split a messy working tree into coherent, separately-committable groups.
  • Save-for-later — AI-suggested branch name + message to park work-in-progress on a side branch.

Repos & branches

  • Multi-repo projects — group repositories under projects with a collapsible tree in the sidebar.
  • Branches, tags & merges — switch/checkout branches, inline branch/tag labels, merge with abort, delete branches.
  • Remote operations — push, pull (merge or rebase), fetch, set/test remote URLs, with automatic default-branch detection.
  • Author auto-detection — identity pulled from local, global, or host git config.

Runs anywhere

  • One-command Docker setupdocker compose up and open a browser tab.
  • WSL-friendly — handles Windows Subsystem for Linux paths transparently; host repos are mounted read-through.
  • Uses your existing keys — SSH keys from ~/.ssh and the gh credential helper are mounted for remote auth.
  • Live updates — status stays in sync over Socket.io.

Quick start

Prerequisites: Docker with Docker Compose.

git clone https://github.com/AhmedSayedSk/Sikagit.git
cd Sikagit
docker compose up --build

Then open http://localhost:3200 in your browser.

Production build
docker compose -f docker-compose.prod.yml up --build -d
Run without Docker (Node 22 + npm)
npm install
npm run dev

Screenshots

Coming soon. To add them, drop the image files at the paths below and uncomment each line.

>

Tech stack

Layer Tech
Frontend React 19 · Vite 6 · TailwindCSS 4 · Zustand 5 · Radix UI · Lucide / react-icons
Backend Node.js 22 · Express 4 · simple-git 3 · Socket.io 4
Database SQLite (better-sqlite3)
AI Google Gemini (gemini-2.5-pro, bring your own API key)
Infra Docker · Docker Compose · npm workspaces
Language TypeScript 5.9 (types shared across client & server)
Project structure
sikagit/
├── client/            React frontend (Vite)
│   └── src/
│       ├── components/  graph · diff · files · branches · log · operations · layout · ui
│       ├── lib/         API client, ANSI parser, file/repo icons
│       └── store/       Zustand state stores
├── server/            Express API server
│   └── src/
│       ├── routes/      git · repos · projects · browse · ai
│       └── services/    git, graph, db, path, ai services
├── shared/            Shared TypeScript types
├── data/              SQLite database (auto-created)
├── docker-compose.yml       # development
└── docker-compose.prod.yml  # production

Contributing

PRs are welcome. Read the Contributing Guide to get a dev environment running and to learn the workflow, then look for issues labelled good first issue to get started.


If SikaGit saves you time, please star it — it genuinely helps others find it.

License

SikaGit is released under the Sikasio Source Available License. Free for personal use; commercial use requires a license from Sikasio.

Built by Sikasio — a design & development studio from Cairo, Egypt.

About

SikaGit — A free, self-hosted Git GUI client that runs in Docker. Visual commit graph, inline diff viewer, hunk-level staging, built-in terminal, AI commit messages. Open-source alternative to GitKraken, Sourcetree, and GitHub Desktop.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages