| 1 | # Diffinery for VS Code, Cursor and Windsurf |
| 2 | |
| 3 | Work with [Diffinery](https://diffinery.com) repositories from VS Code and the editors built on it (Cursor, |
| 4 | Windsurf, 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, the editor opens diffinery.com in your browser, you approve |
| 10 | the connection, and you're back in the editor. Diffinery shows up in the Accounts menu. Nothing to copy. |
| 11 | - **Push and pull without passwords.** Git uses your signed-in account for diffinery.com. The extension renews |
| 12 | its token before it expires and keeps the copy Git saved in your keychain current. |
| 13 | - **Publish to Diffinery.** Publishing a local repository that has no remote offers **Publish to Diffinery**, |
| 14 | under your account or one of your organizations, private or public. |
| 15 | |
| 16 | ## Install |
| 17 | |
| 18 | The extension comes from diffinery.com and keeps itself up to date from there. Install it with your editor's |
| 19 | command line, for example: |
| 20 | |
| 21 | ```sh |
| 22 | curl -fsSLo /tmp/diffinery.vsix https://diffinery.com/-/vscode/diffinery.vsix |
| 23 | code --install-extension /tmp/diffinery.vsix # cursor, windsurf or codium for those editors |
| 24 | ``` |
| 25 | |
| 26 | Or download [diffinery.vsix](https://diffinery.com/-/vscode/diffinery.vsix) and choose **Extensions → … → |
| 27 | Install from VSIX…** in the editor. |
| 28 | |
| 29 | The full guide, including JetBrains IDEs and the "Open in VS Code / Cursor" buttons on every repository, is at |
| 30 | [diffinery.com/docs/repositories/clone-in-your-editor](https://diffinery.com/docs/repositories/clone-in-your-editor). |
| 31 | |
| 32 | ## Commands |
| 33 | |
| 34 | | Command | What it does | |
| 35 | |---|---| |
| 36 | | Diffinery: Clone Repository | Opens the Diffinery repository picker directly. | |
| 37 | | Diffinery: Sign In | Signs in through your browser. | |
| 38 | | Diffinery: Sign In with an Access Token | Uses a token from Settings → Access tokens instead (agents, browser-based editors). | |
| 39 | | Diffinery: Sign Out | Signs out and disconnects the editor from your account. | |
| 40 | | Diffinery: Check for Extension Updates | Installs a newer build from the server, if there is one. | |
| 41 | |
| 42 | ## Settings |
| 43 | |
| 44 | | Setting | Default | | |
| 45 | |---|---|---| |
| 46 | | `diffinery.serverUrl` | `https://diffinery.com` | Change only for a self-hosted Diffinery. | |
| 47 | | `diffinery.gitAuthentication` | `true` | Answer Git's password prompts for the server with your signed-in account. | |
| 48 | | `diffinery.checkForUpdates` | `true` | Check the server once a day for a newer build. | |