A native Git workspace for macOS.
Local repositories, SSH machines, worktrees, and AI commit messages in one calm workspace.
- Review and commit. Inspect text and image diffs, choose files, and write commits.
- Explore history. Browse commits, branches, tags, stashes, and the commit graph.
- Keep work organized. Use tabs, spaces, and worktrees to move between projects.
- Work over SSH. Browse repositories on macOS and Linux machines through the same workspace.
- Connect your accounts. Work with GitHub and GitLab repositories and pull or merge requests.
- Draft with AI. Generate commit messages with OpenCode, ChatGPT, or your installed Claude Code and Codex CLI.
- Make it yours. Choose themes and repository colors, icons, and artwork.
Built with TypeScript, React 19, Bun, and GPUIX. The desktop interface uses native rendering and macOS window materials.
ChatGPT offers CLI (the default, using Codex) and Login connection tiles. Existing connections retain their selected method.
For a custom endpoint, choose API in Settings → AI. Select OpenAI Chat
Completions, OpenAI Responses, or Claude Messages, then enter the base URL
(including any /v1 path), model ID, and optional native effort value. The app
appends the selected format's endpoint. Add auth headers such as Authorization
with a Bearer … value or x-api-key; their values are masked and saved only
in the OS credential store. Remove all headers for an unauthenticated endpoint.
Leaving effort blank uses the provider's default. Models and effort are manual
for custom endpoints, so a model-list API is not required.
For CLI commit messages, install and sign in to Claude Code (claude auth login)
or Codex (codex login), then add it in Settings → AI. Choose a model from
the dropdown, or select Use CLI default. Both agents report their available
models and per-model effort options. Effort initially selects Medium when
supported, otherwise the model's reported default. Provider default inherits
the agent's settings, as does Use CLI default. Unknown capabilities never
produce guessed effort options. Direct API accounts use their live model list
with capability metadata from the bundled Pi catalog where available.
Advanced contains custom model
entry and an optional executable path for installations outside the usual search paths.
Test agent sends a synthetic diff to verify the connection using your CLI account.
1git reuses the CLI's authentication without copying its credentials. Generation
uses the checked files and selected lines, with tools and hooks restricted, and
only updates the commit draft. CLI requests currently support up to 64 KiB of
selected changes; larger selections can use an API connection.
Run bun run --cwd apps/gpuix test:ai:process for subprocess regression tests.
bun run --cwd apps/gpuix test:ai:cli explicitly tests both installed agents
against their real providers and uses their signed-in accounts. Optional
GPUIX_CLAUDE_PATH, GPUIX_CODEX_PATH, and GPUIX_CODEX_MODEL variables select
test executables or a Codex model without changing the CLI configuration.
Custom API HTTP tests use the local API simulation
and GPUIX_AI_API_TEST_URL=http://localhost:PORT/ai-api/v1 bun run --cwd apps/gpuix test:ai:api.
Download the latest macOS beta →
Requires macOS 13 or later, an Apple Silicon Mac, and Git. Extract the
ZIP and move 1git.app to Applications. Bun, Rust, and Xcode are only needed to
build from source. Intel macOS and Linux machines can be used as SSH hosts; the
desktop download is currently Apple Silicon only.
If macOS blocks a trusted download, follow Apple's Open Anyway instructions. Default builds use local ad-hoc signing and are not Developer ID signed or notarized. See the FAQ for installation guidance.
The website's /download link follows the current signed update feed. Installed
release builds can check for updates through Sparkle. Release instructions
explain versioned downloads and GitHub release notes.
The native app is developed on an Apple Silicon Mac. Install:
- Bun, using the version in
package.json(1.4.2). - Git and full Xcode, selected with
xcode-select. - Rust and rustup. The pinned GPUIX sources select their Rust toolchain.
git clone https://github.com/1bye/1git.git
cd 1git
bun install --frozen-lockfile
bun run dev:appBun 1.4.2 is pinned for macOS packaging; 1.3.13 can produce compiled executables that fail strict signature validation.
The first launch builds the workspace dependencies and patched native addon. It downloads pinned GPUIX sources and can take several minutes. Later launches reuse that build. See native development and packaging for platform requirements and native diagnostics.
To build a local app bundle:
bun run package:macos
open apps/gpuix/build/macos/1git.appPackaging and releases require no Apple account, certificate, or notarization. Apple Silicon requires a local ad-hoc signature; packaging adds it automatically without an identity or private key. Sparkle update archives retain their separate Ed25519 signatures. Existing Keychain credentials may need access approval or reconnection after changing signing mode.
The website can be developed independently:
bun run dev:web
bun run build:webNo Cloudflare account, signing key, or hosting token is required for ordinary source builds, website previews, or portable tests.
| Command | Purpose |
|---|---|
bun run dev:app |
Start the native app and build its prerequisites |
bun run dev:web |
Start the Astro website |
bun run build |
Compile the apps and shared packages |
bun run check |
Run Oxlint and check Oxfmt formatting |
bun run fix |
Apply lint fixes and formatting |
bun run check-types |
Check app, package, and test types |
bun run test:portable |
Test packages, website, and release infrastructure without graphics access |
bun run test |
Run all default suites, including native UI tests |
bun run playground |
Create disposable repositories for trying Git workflows |
bun run package:macos |
Build a macOS app bundle and ZIP |
Native UI tests require macOS graphics access. Build the patched addon first with
bun run --cwd apps/gpuix build:native. CI runs lint, formatting, types, builds,
and the portable suites; native UI and signing checks run on a configured Mac.
The playground uses temporary repositories and a local remote; it needs no GitHub
account or network. Open the printed 02-compare path in the app and follow the
generated START-HERE.md for commits, branches, stashes, worktrees, and conflicts.
Each run preserves earlier playgrounds. Close their tabs and delete the generated
folder when finished; keep real work elsewhere.
apps/
gpuix/ Native macOS app, native patches, SSH helper, packaging
web/ Astro website at git.1bye.dev
releases/ Cloudflare downloads and signed update publishing
packages/
analytics/ Anonymous analytics policy and transport
config/ Shared TypeScript configuration
design-tokens/ Shared visual scales and native theme values
git/ Structured Git operations
gpuix-stylesheet/ Typed native styles
gpuix-ui/ Native React components and component playground
hosting/ GitHub and GitLab APIs
The workspace packages remain private to prevent accidental npm publication.
Source builds and contributions are covered by the repository's MIT license.
Git credentials use configured credential helpers and SSH agents. Saved app account secrets use macOS Keychain. Remote Git operations use credentials on the SSH host. AI features send selected context to the provider you configure.
Production app and website builds collect a limited set of anonymous usage events by default. Disable them in Settings → Privacy or the website's Anonymous analytics control. Development and preview builds stay offline. See the analytics policy for the exact events and limits.
Please follow the security policy for vulnerabilities, and use GitHub Issues for bugs and feature requests.
Contributions are welcome. Start with CONTRIBUTING.md for setup, checks, and pull requests. Maintainers can use the public launch checklist and release guide.
1git is available under the MIT license. Bundled libraries, fonts, icons, and other third-party assets retain their own licenses; see third-party notices.
