A local home for public Git repositories

Your public Git repositories, close at hand.

Mirror, browse, check, and export public repositories from one local dashboard. GitCube keeps the work moving in the background while your collection stays on your machine.

C++20 · SQLite · Linux/POSIX · No Node.js

An illustrative view of your collection
GitCube Repositories Jobs
YOUR COLLECTION

Repositories

+ Add repository
example / design-systemMirrored locally · main
Ready
example / command-lineFetching updates
Fetching
example / handbookMirrored locally · main
Ready

Bare mirrors, no worktrees

Persistent background jobs

Everything runs locally

WHAT GITCUBE DOES

A dependable place for your repository collection.

Add public repositories once, then keep track of their mirrors, history, and health in one browser tab.

01 / MIRROR

Keep copies current

Clone a public repository or import a GitHub account. A persistent SQLite job queue handles cloning, fetching, and retries with configurable workers.

Mirroring details
02 / EXPLORE

Browse without checkout

Open branches, tags, files, commits, and diffs straight from the bare mirror. Read Markdown and find a repository with search and filters.

Browsing details
03 / PRESERVE

Check and export

Run remote and local health checks, follow job history, and download either a branch or tag as files or the whole re-clonable mirror as a ZIP.

Export details

MORE THAN A FOLDER OF CLONES

A collection you can actually work with.

A mirror is useful only if you know what is in it, whether it is current, and how to get something out. GitCube keeps those answers together.

01 / FIND

See the whole collection

Search by owner, name, host, or description. Narrow the list by state, GitHub account, Git tag, or your own 0–3 importance rating. The dashboard shows 25 repositories per page and refreshes visible status badges and job counts without reloading.

Explore the dashboard
02 / UNDERSTAND

Know what happened

Local availability, the current operation, health, and GitHub metadata have separate states. A metadata rate limit does not turn a healthy local mirror into a failed repository. The job history records attempts, timestamps, messages, and failure output.

Explore jobs and health
03 / USE

Read it or take it away

Browse file trees, commits, diffs, and Markdown directly from a bare mirror. Download a selected branch or tag as a files-only ZIP, or download the whole mirror with its Git objects and history so it can be cloned again.

Compare exports

BUILT FOR THE LONG RUN

Background work survives a restart.

GitCube stores jobs in SQLite before workers claim them. If the process stops during a clone or fetch, interrupted work is returned to the queue on the next start. Partial clones are staged outside the final mirror directory and cleaned up after a hard crash.

GitHub API limits are handled separately: affected metadata jobs wait for the reset while local cloning and browsing remain available.

How recovery works
01QueuedRecorded in SQLite
02RunningClaimed by a worker
03ReadyMirror available locally

Interrupted work returns to the queue after restart.

THE WORKFLOW

From a URL to a local mirror.

GitCube serves a browser interface on your computer and does the Git work in the background.

  1. 01

    Add public URLs

    Paste one or more HTTP(S) repository URLs, or a GitHub account URL for a public bulk import.

  2. 02

    Let the queue work

    Clones, fetches, health checks, and GitHub metadata updates run as persistent jobs.

  3. 03

    Browse and export

    Inspect the mirror in your browser or download the files and history you need.

QUICK START

Running locally in a few commands.

Install the build tools on Debian 13, then build, test, and start GitCube from the project directory. Open the local dashboard at 127.0.0.1:9999.

Installation and first steps
Terminal
# Dependencies (Debian 13)
sudo apt install build-essential cmake git curl zip libsqlite3-dev

# Build and run
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel 2
ctest --test-dir build --output-on-failure
./build/gitcube

BUILT FOR LOCAL USE

Simple by design.

GitCube is a single-user localhost application for public HTTP(S) repositories. This version targets Linux/POSIX and does not support private repositories or SSH URLs.

Read the current limits