Skip to content

Repository files navigation

GitLurk Desktop

Windows-focused Git client — Pull Requests, CI monitoring, notifications, AI commit messages, and an embedded terminal. Built with Tauri 2, React, and TypeScript.

GitLurk Desktop main workspace

Version License Platform


Features

Git Operations

Stage, unstage, and discard files — per-file, per-hunk, or in bulk. Commit, pull, push, and fetch from a unified workspace.

  • Changes view with staged, unstaged, and untracked file lists
  • Diff viewer with syntax highlighting (unified and side-by-side)
  • Commit history with branch topology graph and per-commit diffs
  • Branch management — create, checkout, and visual branch graph
  • Stash panel — push, pop, and drop stashes
  • File tree browser — explore the repo from within the app

GitHub Integration

Connect your GitHub account to manage pull requests, notifications, and explore repositories without leaving the app.

  • Pull Requests — list open PRs for any repo with one click to open in browser
  • Notifications — desktop toasts and in-app notification panel with mark-as-read
  • Discover Hub — activity feed, repository search, trending repos, and your repos
  • Device Flow auth — secure OAuth sign-in via GitHub.com, tokens stored in Windows Credential Manager

CI/CD — GitHub Actions

Watch CI runs live from the app. Stream logs in real time, fork repos, and create releases — all powered by GitHub CLI.

  • Run list — view recent workflow runs with status and workflow name
  • Live log streaming — watch a run in real time with output streamed to a dialog
  • Fork & release — fork repos and create GitHub releases from the developer panel

AI Commit Messages

Generate conventional commit messages from your staged diffs using AI. Supports multiple providers.

  • OpenCode (free, included) — uses deepseek-v4-flash-free model
  • Kilo — bring your own API key and custom base URL
  • Test connection — verify your AI provider before committing

Embedded Terminal

Full pseudo-terminal (PTY) embedded in a resizable pane at the bottom of the workspace. Multi-session support with configurable shells.

  • Multi-session — spawn multiple terminal sessions, switch between tabs
  • Configurable shell — PowerShell 7, Windows PowerShell 5, CMD, or custom shell path
  • Auto-cwd — opens at the active repository root

UI & UX

A polished, responsive interface built for daily use.

  • Resizable panels — sidebar, file list, right rail, and terminal height all adjustable
  • Four themes — GitHub Dark, GitHub Light, Dim, and High Contrast with light/dark/system mode
  • Command palette — fuzzy-search for commands, repos, and branches (Ctrl+Shift+P)
  • Keyboard shortcuts — pull (Ctrl+Shift+G), commit focus (Ctrl+Shift+C), sidebar toggle (Ctrl+B), refresh (F5)
  • System tray — minimize to tray with right-click actions (pull, notifications, discover, settings)
  • Windows Explorer integration — "Open with GitLurk Desktop" context menu for folders
  • Browser extension — "Open with GitLurk Desktop" in GitHub’s Code → Local menu (packages/extension)

Open with GitLurk Desktop in GitHub Code Local menu

CLI Companion

The gitlurk CLI wraps common GitHub and Git workflows:

gitlurk                 # open current directory in GitLurk Desktop
gitlurk open <path>     # open a local repository
gitlurk clone <url>     # clone via the desktop app

# GitHub CLI shortcuts
gitlurk gh run list
gitlurk runs
gitlurk watch [run-id]
gitlurk fork [repo]
gitlurk release create <tag>

# Git config management
gitlurk git config list --global
gitlurk git config set user.email "you@example.com" --global

Full CLI reference →

Plugins

Extend GitLurk with plugins from the marketplace. Plugins run in sandboxed child processes with declared permissions.

  • Marketplace browser — discover and install plugins from the in-app catalog
  • Permissions model — git.read, ui.toast, http.fetch
  • JSON-RPC protocol — host communicates with plugins over stdin/stdout

Plugin specification →

Security

  • Path validation — all Git operations validate paths against .. traversal and system directories
  • IPC isolation — all Tauri invoke calls go through a single typed wrapper
  • Protocol allowlist — gitlurk:// protocol only accepts github.com hosts
  • Token storage — credentials stored in Windows Credential Manager, never exposed to the renderer
  • Plugin sandboxing — child processes with declared permissions, no filesystem access by default

Security model →


Getting Started

Prerequisites

  • Windows 10 or 11
  • Git — bundled portable Git is included as a fallback
  • GitHub CLI (optional) — for CI features and developer panel

Install

Download the latest installer from Releases:

Installer Format
GitLurk.Desktop.msi Windows MSI
GitLurk.Desktop-setup.exe NSIS installer

Or install the CLI companion:

npm i -g @involvex/gitlurk-desktop
gitlurk install-desktop

Quick Start

  1. Open a repo — click "Open repository" or drag a folder onto the window
  2. Stage changes — select files in the Changes view and click stage
  3. Review diffs — click any file to see the diff
  4. Commit — write a message or generate one with AI
  5. Push — push to the remote

GitHub Sign-In

  1. Click Sign In in the sidebar
  2. Enter the code at https://github.com/login/device
  3. Pull requests, notifications, and discover features unlock automatically

Development

# Prerequisites: Bun >=1.3.0, Rust toolchain
bun install
bun run --filter @gitlurk/shared build

# Frontend-only dev server
bun run dev

# Full desktop app (required for IPC)
bun run tauri:dev

Project Structure

packages/
├── app/                  # Tauri desktop application (React + Rust)
│   ├── src/              # React frontend
│   └── src-tauri/        # Rust backend
├── shared/               # Typed IPC contracts and protocol parser
├── git/                  # Hybrid Git service (system + bundled fallback)
├── gh/                   # GitHub CLI wrapper
├── cli/                  # CLI companion (gitlurk command)
├── plugin-sdk/           # Plugin API type definitions
├── extension/            # Chrome/Edge WebExtension bridge (see packages/extension/README.md)
└── plugins/              # Plugin packages

Code Quality

bun run lint              # ESLint
bun run format:check      # Prettier check
bun run typecheck         # TypeScript type checking
bun test                  # Run all tests

Architecture docs →


License

MIT © GitLurk

About

Windows-focused Git client built with Tauri 2, React, TypeScript, and Bun.

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages