Diffinery

codician/diffinerypublic

Open-source, agent-first GitHub and GitHub Actions alternative that runs on your own Cloudflare account: git hosting, pull requests, code review and drop-in GitHub Actions YAML on Workers, Durable Objects, R2 and Containers.

66 lines · 3.8 KBRaw History
1# Diffinery for VS Code, Cursor and Windsurf
2
3Work with [Diffinery](https://diffinery.com) repositories from VS Code and the editors built on it (Cursor,
4Windsurf, VSCodium and others), the way you do with GitHub's.
5
6- **Clone from Diffinery.** Run **Git: Clone** (or **Clone Repository** on the welcome page) and pick
7 **Clone from Diffinery**. You see your repositories and your organizations', most recently pushed first;
8 type to search everything you can read, or paste `owner/name`.
9- **Sign in with your passkey.** The first time, choose your Diffinery (diffinery.com or your own server), the
10 editor opens it in your browser, you approve the connection, and you're back in the editor. Diffinery shows up
11 in the Accounts menu. Nothing to copy.
12- **Push and pull without passwords.** Git uses your signed-in account for diffinery.com. The extension renews
13 its token before it expires and keeps the copy Git saved in your keychain current.
14- **Publish to Diffinery.** Publishing a local repository that has no remote offers **Publish to Diffinery**,
15 under your account or one of your organizations, private or public.
16
17## Install
18
19The extension comes from diffinery.com and keeps itself up to date from there. Install it with your editor's
20command line, for example:
21
22```sh
23curl -fsSLo /tmp/diffinery.vsix https://diffinery.com/-/vscode/diffinery.vsix
24code --install-extension /tmp/diffinery.vsix # cursor, windsurf or codium for those editors
25```
26
27Or download [diffinery.vsix](https://diffinery.com/-/vscode/diffinery.vsix) and choose **Extensions → … →
28Install from VSIX…** in the editor.
29
30The full guide, including JetBrains IDEs and the "Open in VS Code / Cursor" buttons on every repository, is at
31[diffinery.com/docs/repositories/clone-in-your-editor](https://diffinery.com/docs/repositories/clone-in-your-editor).
32
33## Self-hosted Diffinery
34
35The extension works with any Diffinery, not only diffinery.com:
36
37- **The first time you sign in** (from **Clone from Diffinery**, the Accounts menu or **Diffinery: Sign In**), the
38 extension asks which Diffinery you use. Choose **Use another Diffinery server…** and enter its address, such as
39 `git.example.com`. The extension checks that a Diffinery answers there and saves it in `diffinery.serverUrl`.
40- **Diffinery: Use Another Server…** changes the server at any time. Each server keeps its own sign-in, so you can
41 switch back without signing in again.
42- **Installed from your server** with `curl -fsSL https://git.example.com/install-editor | bash` (or its
43 `install-editor.ps1`), the extension asks on its next start whether to use that server: choose
44 **Use git.example.com**. The installer leaves the address in `~/.config/diffinery/editor-server` for this; it
45 doesn't edit the editor's settings.
46
47The extension then updates itself from your server too.
48
49## Commands
50
51| Command | What it does |
52|---|---|
53| Diffinery: Clone Repository | Opens the Diffinery repository picker directly. |
54| Diffinery: Sign In | Signs in through your browser. |
55| Diffinery: Sign In with an Access Token | Uses a token from Settings → Access tokens instead (agents, browser-based editors). |
56| Diffinery: Use Another Server… | Switches to a self-hosted Diffinery (or back to diffinery.com). |
57| Diffinery: Sign Out | Signs out and disconnects the editor from your account. |
58| Diffinery: Check for Extension Updates | Installs a newer build from the server, if there is one. |
59
60## Settings
61
62| Setting | Default | |
63|---|---|---|
64| `diffinery.serverUrl` | `https://diffinery.com` | The Diffinery to use: set it to your server's address for a self-hosted Diffinery. |
65| `diffinery.gitAuthentication` | `true` | Answer Git's password prompts for the server with your signed-in account. |
66| `diffinery.checkForUpdates` | `true` | Check the server once a day for a newer build. |