ZIT-Suite is a free, open-source GitHub desktop client and repository manager for Linux and Windows.
Manage hundreds of repositories at once, triage issues and pull requests across all of them, run
bulk actions with a real dry run, edit files, ship releases, watch CI and keep your projects in sync with
built-in Git — no terminal, no installed git needed.
⬇ Official downloads only at zsync.eu/zit-suite
Features · Screenshots · Install · Safety · Build from source · Architecture · FAQ · Changelog · Roadmap
GitHub's website is built around one repository at a time. The moment you own 30, 100 or 200 repositories, simple chores become afternoons: archiving dead projects, finding every failing workflow, rotating a secret everywhere, adding a license, cleaning up merged branches, answering issues spread over a dozen repos.
ZIT-Suite turns those chores into a few clicks:
| ⚡ Bulk everything Archive, delete, change visibility, rename, transfer, label, protect, add topics or set secrets on many repos at once — always through a queue with a real dry run. |
🗂 Cross-repo views One inbox for issues, one for pull requests, one CI board, one release board, one security overview — across every repository you own. |
🏠 Git without the terminal Home turns any folder into a project: save versions, upload, get latest, branches, diffs, park changes, undo — with built-in libgit2. |
| 🔐 Safe by design Tokens in the OS keychain, typed confirmation for destructive actions, a grace countdown, pushes never forced, secrets sealed on-device. |
📊 Insight, not noise Health scores, tidy checks with one-click fixes, custom rules, traffic history beyond GitHub's 14 days, contributor stats and a code audit. |
🎨 A real workbench A distinctive blueprint design, light + dark, accent colors, command palette, keyboard-first, English + German, Linux + Windows. |
ZIT-Suite is organized in three pillars — BUILD, MANAGE and SHIP — plus the system tools (Queue, Settings). Every tab is a self-contained module; everything bulk or destructive goes through the queue.
- Workspaces: any folder on your computer becomes a project card with a one-line status (unsaved changes, not uploaded, new on GitHub, all good)
- One-click setup for a plain folder:
git init, a suggested.gitignore, a new private GitHub repo, first version and upload - Save versions (commit) with a message that follows your selection, Save & upload (push), discard per file, secret-file warnings with a one-click "Don't share"
- Per-file diff view, undo last save or "Undo from here" for several versions at once (while they're only on your computer — your files stay, the next save is one clean commit), park my changes (stash) and bring them back
- Get latest (fast-forward or clean merge) with a conflict helper — pick mine or theirs per file
- Push target + reference repo: compare your copy with the original you forked — new on GitHub, not uploaded yet, only in your copy — and bring upstream changes in
- Watching (1 s – 5 min) and automation: save every N minutes or after N quiet minutes, optional auto-upload, message templates
- Files & sharing: tick what goes to GitHub, "usually not shared" suggestions (dependencies, builds, secrets, OS junk), raw
.gitignoreeditor - Branches: create, safe switch, upload, and start a pull request from the branch menu
- History with "uploaded" marks, commits signed with your GitHub noreply identity, pushes never forced
- About, Releases and Actions tabs per project, clone any repo into a workspace, open in VS Code / your terminal
- Runs in the background from the system tray so automation keeps going with the window closed
- Pick a repository, a branch and a folder on your computer (optionally into a subfolder of the repo) — no workspace, no history to manage
- Every file is compared with GitHub and marked new, changed or same; new and changed files are ticked for you
- Tick or untick single files or whole folders in a tree · New & changed / All / None · Show unchanged
- Commit message (suggested from your selection) + optional description → one commit, with a progress bar
.gitignore,node_modules,targetand.gitare skipped · executable files keep their bit · empty repositories get one first commit- Recent repository + folder pairs are one click away
- Browse any repo and branch, CodeMirror 6 editor with syntax highlighting, search, tabs and a focus mode
- Add, rename, move and delete files — all saved as one atomic commit (Git Data API), or to a new branch + pull request
- Upload files or whole folders (respects
.gitignore, skipsnode_modules/target), image previews, Markdown preview - File modes kept (executable bit survives), refuses to overwrite when the branch moved meanwhile
- Staged changes remembered across restarts, review pane with line diff, file history, revert, blame view
- One request per 100 branches: last commit, open PR, protection, ahead / behind the default branch
- Filters: stale, merged, in a PR, protected · clean up merged branches · real rename · set default
- Branch protection with required status checks · rulesets editor (deletion, force pushes, linear history, signed commits, PR reviews and approvals, status checks)
- Bulk: create a branch or protect the default branch on many repositories at once
- Reads
package.json,Cargo.toml(incl. workspaces),requirements*.txt,pyproject.toml(PEP 621, Poetry),go.mod,pom.xml— anywhere in a monorepo - Detects the real tool: pnpm, yarn, bun, npm, deno, pip, poetry, uv, pdm, pipenv, hatch, cargo, go, maven, gradle
- Latest versions from npm, crates.io, PyPI, the Go proxy and Maven Central · outdated (patch / minor / major) · version conflicts across repos
- Bump a version across repos in one go — one PR or commit per repository, formatting kept
- All repositories with full pagination and an ETag cache (re-syncs cost almost nothing against the rate limit)
- Health score and lifecycle (active, dormant, dead, empty, archived), filters, saved views, local tags, table + grid
- Bulk actions: archive / unarchive, private / public, delete, description, topics, clone to this computer
- Cleanup presets (Spring clean, Portfolio, Minimal), create repository (README,
.gitignore, license or template), exports
- One list across all your repos, an organization or one repo · query builder ⇄ raw GitHub search syntax
- Views (assigned, mentioned, created, stale…) and saved views · keyboard triage (
J/K,X,E,L,A,M) - Full detail: Markdown, comments, timeline events, reactions, sub-issues, pin, transfer, lock
- Issue templates (Markdown and YAML issue forms) in the create dialog
- Bulk triage through the queue: close, reopen, label, assign, milestone, lock
- Labels manager with "sync labels from one repo to many" · Milestones manager · CSV / JSON export
- Cross-repo PR inbox with CI status, review decision and mergeability per row
- Views: review requested, mine, failing checks, ready to merge, drafts · create PRs with live compare
- Diff viewer with inline review comments (multi-line ranges), suggested changes with one-click Apply, batch reviews
- Merge (merge / squash / rebase), auto-merge, update branch, draft ⇄ ready — in bulk through the queue
- Access scan across all your repos: People, Repositories and a Matrix view (people × repos)
- Invite, change role, revoke everywhere, copy access to other repos, compare and align two repos' access
- Hooks grouped by receiving URL across all repos, with delivery health (delivering / failing / paused)
- Add to more repos, edit everywhere, pause, remove, ping — in bulk · ~55 event types
- Deliveries with request / response, redeliver, failed-delivery report · test push · HMAC signature verifier
- Secrets, variables and environments grouped by name across every repo, with rotation age and drift
- Set or rotate a secret on many repos at once — sealed on your device (libsodium-compatible), never written to disk
- Environment protection (wait timer, reviewers, deployment branches) · usage finder (which workflows use a secret)
- Dependabot, code scanning and secret scanning alerts across all repos, worst first, with CVSS and advisories
- Fix plan: one upgrade per package that clears all its alerts
- Posture grid with grades (A–F): Dependabot alerts, security updates, secret scanning, push protection, private reporting, CodeQL
- Apply a baseline to every repo · Dependabot version-update config generated per repo (one PR each)
- Grouped by why (review requested, mention, assigned, security alert…) · open / merged / closed state on every row
- Mark read / done / mute in bulk, saved views, account / organization filter, optional desktop alerts
- Watching manager: see your loudest repos and unwatch many at once
- Gists: create (secret by default), edit in place, revisions, comments, star
- Stars: everything you starred, star lists, bulk unstar, export as an awesome list
- Search repos, code, issues & PRs, commits and people · qualifier chips · code results grouped per repo · saved searches
- Overview: KPIs, languages, lifecycle mix, created per year, pushes per month, most starred, biggest
- Checks: tidy score, stale / empty / untouched forks / missing license or topics / "master" branch / near-duplicate names, all with bulk fixes — plus your own custom rules
- Traffic: views, unique visitors, clones and referrers — with a local history beyond GitHub's 14 days (90 days / 1 year)
- People: contributor stats with weekly activity
- Lines of code, files, size, commits, lines added / removed over the whole history, people
- Language breakdown, monthly activity, a
tree-style file tree with sizes and line counts (export as.txt/.json) - Most changed files, compare with an earlier audit, and audit a local folder straight from disk
- Cross-repo CI board: failing first, success rate, latest run per workflow, live while running
- Run sheet with jobs, steps and logs (opened at the first error, searchable) · re-run, re-run failed, cancel, artifacts
- Run workflows by hand with
workflow_dispatchinputs read from the YAML · enable / disable - Workflow editor with templates and live YAML checks · add a workflow to many repos at once
- Release board: latest release, downloads, drafts and commits waiting since the last release
- Next version suggested from conventional commits · generated notes · asset upload with progress
- Bulk release across repos · scheduled / recurring releases
- Hourly, daily, weekly or monthly schedules on a saved view, a cleanup preset, a tag or picked repos
- Every run dry-runs first and only touches repos where something would change · ask me first or automatic
- Missed runs are caught up once at the next start · runs from the tray with the window closed
- Bulk rename by rules (prefix, suffix, find & replace with regex, case) with a validated plan
- Transfer to a user or organization, optionally renamed — with typed confirmation and checks at the destination
- Queue: persistent operations queue with real dry run, grace countdown, pause / resume / cancel / skip / retry, desktop notifications
- Command palette (
Ctrl+K), shortcut sheet (?),Ctrl+1…9to jump between tabs, vim-styleJ/K - Multi-account with an organization switcher, sign in with a personal access token or the OAuth device flow
- Tray icon and start at login · light / dark / system theme · accent colors · English + German
- Modules can be switched off in Settings and disappear from the whole app
Managing 200 repositories means one wrong click could hurt. ZIT-Suite is built so it can't:
| 🔑 Token in your OS keychain | Secret Service / KWallet on Linux, Credential Manager on Windows. Never in a JSON file, never sent to the UI. |
| 🧪 Real dry run | Before anything bulk runs, every repo is checked: ready, no change or blocked — and why. |
| ⏱ Queue + grace period | Actions wait in a persistent queue with a countdown; pause, cancel or skip at any time. Survives restarts. |
| ✍️ Typed confirmation | Deleting or transferring requires typing the name. |
| 🚫 No force pushes | Home never force-pushes; conflicts abort untouched unless you pick a side. |
| 🔒 Secrets sealed on-device | Actions secrets are encrypted locally with each repo's public key and never written to disk. |
| 🛡 Locked-down app | Strict Content-Security-Policy, minimal Tauri capabilities, no telemetry. |
Version 0.2.0 — Linux and Windows.
Important
Precompiled installers are only available on the official website: zsync.eu/zit-suite. This GitHub repository contains the source code only — there are no prebuilt binaries in GitHub Releases. Building it yourself from source is welcome (see Build from source); for ready-to-install files, use the website. Builds from anywhere else are not official.
-
Download the installer for your system from the ZIT-Suite homepage:
System File Install Windows 10 / 11 (64-bit) ZIT-Suite_0.2.0_x64-setup.exerun the installer Debian, Ubuntu, Linux Mint, Pop!_OS ZIT-Suite_0.2.0_amd64.debsudo apt install ./ZIT-Suite_0.2.0_amd64.debFedora, openSUSE, RHEL ZIT-Suite-0.2.0-1.x86_64.rpmsudo dnf install ./ZIT-Suite-0.2.0-1.x86_64.rpm…or build it yourself from source — the only alternative to the website.
-
Start ZIT-Suite and sign in with a GitHub personal access token (classic) or the device flow.
Token scopes ZIT-Suite asks for (it tells you exactly which features a missing scope affects):
repo · delete_repo · workflow · read:org · read:user · notifications · gist · admin:repo_hook
You don't need a prebuilt file to use ZIT-Suite — this repository has everything to build it yourself. (Ready-made installers come only from zsync.eu/zit-suite.)
Requirements: Rust (stable), Node.js 20+, pnpm 9+,
and the Tauri 2 prerequisites for your OS
(Linux: webkit2gtk-4.1, libayatana-appindicator for the tray, librsvg; Windows: WebView2 + MSVC build tools).
git clone https://github.com/TheHolyOneZ/ZIT-Suite.git
cd ZIT-Suite
pnpm install
pnpm tauri dev # run the app in development (also regenerates src/bindings.ts)
pnpm tauri build # build installers into src-tauri/target/release/bundleOptional: bake a default OAuth client ID for the device-flow sign-in into the build:
ZIT_GITHUB_CLIENT_ID=your_client_id pnpm tauri buildChecks (the same ones CI runs on Linux and Windows):
pnpm check # typecheck + lint + i18n parity + tests
cd src-tauri && cargo test && cargo clippy --all-targets -- -D warnings| Layer | Technology |
|---|---|
| Desktop shell | Tauri 2 (Rust) — tray, autostart, single instance, window state, notifications |
| Backend | Rust: reqwest (rustls) GitHub REST + GraphQL client with pagination, ETag cache and rate-limit tracking · git2 (libgit2) · keyring · crypto_box · tokio |
| IPC | tauri-specta — typed TypeScript bindings generated from Rust, errors as translatable codes |
| Frontend | React 19, TypeScript (strict), Vite, Tailwind CSS 4, TanStack Query, Zustand, CodeMirror 6, Framer Motion |
| i18n | i18next — JSON per module, typed keys, parity check in CI |
| Tests | Vitest + cargo test, clippy with -D warnings, CI on ubuntu-latest and windows-latest |
Modular by design — every tab is a folder in src/modules/<id>/ whose index.ts default-exports
defineModule({...}). The pillar bar, command palette, shortcuts, status bar and Settings page are all derived
from that registry: adding a tab means adding a folder. The Rust side mirrors it with one github/<area>.rs and
one commands/<area>.rs per area.
Adding a language means adding JSON files: src/locales/<lng>/*.json for the shell and
src/modules/<id>/locales/<lng>.json per module — pnpm i18n:check reports anything missing.
Platforms — OS-specific code lives in src-tauri/src/platform.rs and src/core/platform.ts only.
src/
app/ shell: title block, pillar bar, command palette, sheets
core/ module registry, i18n, theme, IPC, keyboard, stores
ui/ design-system primitives
modules/ one folder per tab (home, repos, issues, pulls, actions, releases, …)
src-tauri/src/
github/ GitHub API per area commands/ IPC commands per area
queue/ queue engine + dry run workspace/ built-in Git (Home)
auth/ keychain, device flow platform.rs OS-specific code
Is ZIT-Suite free?
Yes. ZIT-Suite is free and open source under the GNU General Public License v3.0.
Where do I get the installer? Why are there no GitHub Releases?
Precompiled installers (.exe, .deb, .rpm) are published only on the official website,
zsync.eu/zit-suite. GitHub hosts the source code — you're free to build it
yourself from there. Installers offered anywhere else are not official.
Do I need Git installed?
No. Home uses libgit2 built into the app — cloning, committing, pushing, pulling, branches, stashes and merges
all work without a git executable.
Does it work on Windows and Linux? What about macOS?
Linux and Windows are supported and tested in CI. The code is cross-platform (Tauri), so macOS builds are possible but not officially tested yet.
Where is my GitHub token stored?
In your operating system's keychain (Secret Service / KWallet on Linux, Windows Credential Manager). It never leaves the Rust backend and is never written to a file.
Can it accidentally delete my repositories?
Every destructive action goes through the queue: a dry run shows what will happen per repository, deleting and transferring need the name typed out, and a grace countdown lets you cancel. Nothing runs behind your back.
How does it handle GitHub's rate limit?
Lists are cached with ETags and conditional requests (answers that didn't change don't count), GraphQL is used where one request can replace hundreds, and the remaining budget is always visible in the status bar.
How is this related to ZRepoManager?
ZIT-Suite is the ground-up rebuild of ZRepoManager: every old feature is back, stubbed features now really work, and it adds Home, Insights, Security, Actions, Releases, Search, Inbox, Code Audit and much more. See the Roadmap for the full list.
Issues and pull requests are welcome. Please run pnpm check and cargo test before opening a PR, keep all UI
text in the locale JSON files (English + German), and route anything bulk or destructive through the queue.
The Roadmap lists what each tab does and what's still open.
| 🌐 Homepage & downloads | zsync.eu/zit-suite |
| 💻 Source code | github.com/TheHolyOneZ/ZIT-Suite |
| 👤 Author | TheHolyOneZ |
| 🧩 More projects | zsync.eu |
| 🎮 Game mods | zlogic.eu |
GPL-3.0 © TheHolyOneZ — see LICENSE.

















