Skip to content
WeOpenPublic

About

A native Git workspace for macOS.

Topics

Resources

Contributing

Accessibility

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

49 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WeGit logo

WeGit

A native Git workspace for macOS.

Read changes clearly. Shape your commits. Keep your workflow close.

Public release Version 1.0.0 macOS 27 or later Swift 6 Git 2.46 or later MIT license

English · 简体中文

📦 Releases · 🐛 Report an issue · 📚 Documentation


👋 Meet WeGit

WeGit is a SwiftUI Git client built around the work you do every day: inspect a diff, stage the right changes, create a commit, browse history, manage branches, and sync with a remote.

It uses your existing Git installation, configuration, credential helpers, and SSH agent. Native windows, keyboard shortcuts, a menu bar panel, and light, dark, and custom themes keep the experience at home on macOS. The Git core has no third-party runtime dependencies.

WeGit 1.0.0 · Download · Website. Ad-hoc signed, not notarized by Apple. Accessibility acceptance is deferred; see the release notes and remaining validation limits.

✨ Features

What you can do
📂 Repositories Open or clone repositories, drop folders into the app, and switch between recent and favorite repositories.
🔍 Diffs Read unified or split diffs with syntax highlighting, word changes, hunk navigation, expandable context, and exact source-text selection and copying. Large diffs use paged disk snapshots.
🧩 Commits Stage or unstage files and hunks, discard changes with confirmation, amend a commit, and keep a draft for each repository.
🌿 Branches & history Browse a paginated commit graph, compare commit files, copy a SHA, create a branch from a commit, or check out a detached HEAD.
🔄 Remotes & conflicts Fetch, pull, and push to explicit targets; choose merge, rebase, or fast-forward-only pulls; continue or abort supported merge/rebase conflicts.
🛡️ Operation recovery Reject stale changes, coordinate repository operations, preserve drafts on failures, and verify an uncertain push result before retrying.
🎨 Appearance Use native light/dark themes or save a separate custom palette with 17 color roles, live preview, contrast hints, and JSON import/export.
⌨️ Native workflow Use keyboard navigation, repository search, a command palette, configurable panels, and a menu bar quick-access panel.
🌍 Languages Switch between English, Simplified Chinese, and the system language without restarting the app.

See the product specification, interface notes, and compatibility record for scope and evidence. Product capabilities and completed release acceptance are tracked separately.

Development branch, 2026-10-20: the v1.1 M0 baseline adds collapsible change groups, staging checkboxes, a folder display mode, a clickable change map for multi-hunk in-memory diffs, paired pane surfaces, and upstream commit counts on Pull/Push. These additions have been integrated into main and are not part of the published 1.0.0 download. See the usage and verification notes.

🖥️ Requirements

  • macOS 27 or later. Current builds and acceptance evidence cover Apple Silicon / arm64.
  • Git 2.46 or later. WeGit checks the required configuration-isolation and remote-address behavior at startup.
  • To build: Xcode 27, including the macOS 27 SDK. The verified local toolchain is Swift 6.4.
  • XcodeGen 2.43+ is optional for normal builds; it is needed to regenerate the project after changing project.yml. The generated Xcode project is included.

📦 Downloads & distribution

WeGit is distributed through GitHub Releases and the project website. It is not planned for the Mac App Store or TestFlight.

Download WeGit 1.0.0, including the ZIP, SHA-256 checksum and source manifest. The website links to these same versioned assets. See the installation, data and rollback notes.

There is currently no Apple Developer Program account for this project. Public packages use ad-hoc signing and are not notarized by Apple. Ad-hoc signing does not provide a verified developer identity, and macOS may block a downloaded build. For an app you have chosen to trust, consult Apple’s guidance on opening apps safely. Downloaded-package installation on a clean Mac is still pending validation.

🚀 Build & run

git clone https://github.com/WeOpen/WeGit.git
cd WeGit
scripts/build.sh Debug
open .build-app/Build/Products/Debug/WeGit.app

You can also open WeGit.xcodeproj in Xcode, select the WeGit scheme, and run it. Local ad-hoc builds do not require Developer ID credentials.

To create a local Release preview:

scripts/build.sh Release
scripts/package-release.sh --preview

The package script checks the app’s build-source receipt, embedded AskPass helper, license, signature integrity, and exclusion of test entry points. It writes a ZIP, checksum, and manifest to .build/releases/package-*. This command creates a local development package; it does not publish a GitHub Release.

⌨️ Handy shortcuts

Action Shortcut
Open a repository ⌘O
Changes / History / Branches ⌘1 / ⌘2 / ⌘3
Refresh ⌘R
Commit staged changes ⌘↩
Pull / Push target form ⌘⇧L / ⌘⇧U
Menu bar quick-access panel ⌘⇧M
Settings ⌘,

🌍 Choose Settings → General → Interface language to change the app language. Repository names, paths, branches, commit messages, code, and patches retain their original content.

🎨 Choose Settings → Appearance → Edit custom theme… to create a full custom scheme. Built-in Light and Dark remain unchanged.

🧪 Development & validation

# Core unit tests and integration tests using real temporary repositories
swift test

# Strict formatting, migration/localization checks, core tests, and Debug build
scripts/verify.sh

# Also run native UI, appearance/menu/theme checks, and accessibility audit
# Requires a working interactive macOS login session
scripts/verify.sh --ui

Historical verification before M0 passed 183 tests in 32 suites with both Apple Git 2.54.0 and an isolated Git 2.46.0 build. The 2026-10-18 record includes 278 theme checks (including 216 role/background contrast pairs), alongside earlier 18 appearance/icon behaviors, 27 native menu behaviors, and 6 restored-startup combinations. Dates and source boundaries remain in the development record; these results do not establish acceptance of the current development source.

The 2026-10-20 M0 checks passed 14 sync-count, 30 file-tree/staging, 13 map, 290 theme, 18 icon, and 27 menu checks, plus 30 Python policy tests. Localization covered 1015 string keys, 7 plural keys, and 1325 source literals. Core tests were compiled with swift build --build-tests; Debug and native UI tests were compiled with xcodebuild build-for-testing. No local XCTest ran, and the new SelectionScopeTests still needs hosted execution.

Hosted smoke 1/1, the full native functional suite 45/45 (zero failures/skips), and the reading matrix 144/144 passed at 2c2533c in run 39137123756. This is functional evidence on the recorded source, not same-commit full acceptance of the release. Accessibility acceptance is deferred; final-source performance, protected-Mac installation and real Beta feedback remain incomplete. See the release notes and current checklist for the retained limits.

Tests use isolated configuration files, temporary repositories, and separate preferences. Never run write tests against a repository you cannot afford to change.

🗺️ Scope & roadmap

V1.0 focuses on daily Git workflows and readable diffs. Stash and Tag management, an integrated conflict editor, interactive rebase, Blame, linked worktree/submodule management, and hosting-provider integrations remain outside the first release. The published V1.0 build does not support opening linked worktrees or bare repositories. Development for v1.2 has started with existing-worktree opening; validation and release remain pending.

The four required features in the v1.1 plan—Stash, Remote and Tag management, plus file history with targeted search—are implemented and integrated. Application source 835b8c4 passed 54/54 functional tests with zero failures/skips and retained 144 reading-matrix screenshots; the Beta 1 draft package is verified. Performance, protected-Mac installation, real Beta feedback and stable-release acceptance remain open. See the source-pinned Beta record.

The v1.2 requirements cover linked-worktree opening/management, the deferred single-commit Cherry-pick/Revert workflows, Blame, selected-line staging, the conflict editor, standalone/interactive Rebase, Submodule management and LFS status. Priorities and delivery batches are recommendations; implementation and release dates follow individual requirements.

The development branch now includes single-commit Cherry-pick/Revert previews and recovery. It checks the actual merge destinations, protects ignored content, preserves drafts, and keeps recovery available after a failed commit. Hosted acceptance is tracked separately in the development record.

The app can hand conflicts to an external editor and continue or abort supported operations. It does not yet include an integrated three-way merge editor. Homebrew Git core and isolated noninteractive OpenPGP checks have passed. GitLab, interactive Pinentry/hardware keys, additional credential-helper setups, and other untested environments remain explicitly pending in the compatibility matrix.

📚 Explore the project

Path Contents
WeGit/ SwiftUI app, state, native presentation, design system, and features
WeGitCore/ Git domain services, process runner, repository queue, snapshots, and watchers
WeGitAskPass/ Bundled authentication helper
WeGitTests/ · WeGitUITests/ Core/integration tests and native UI regression suites
branding/ Current logo/icon sources and retained earlier resources
docs/ Product, design, architecture, plans, and acceptance evidence; primarily in Chinese

🤝 Issue-driven development

Start with an Issue, define acceptance criteria, and deliver through a linked PR. See CONTRIBUTING and the GitHub workflow guide for labels, CI and gated draft releases.

💬 Feedback & contributions

Use GitHub Issues to report a problem with reproduction steps, the app/macOS/Git versions, and the expected and actual results. For changes, describe the workflow and validation evidence in your pull request.

🔒 Diagnostic summaries are exported only when you request them in Settings. They exclude code, diffs, commit messages, repository paths, and credentials. Review any additional screenshots or logs before sharing them.

📄 License

MIT © 2026 WeOpen.

About

A native Git workspace for macOS.

Topics

Resources

Contributing

Accessibility

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages