| 1 | # siGit Code: on-device AI coding agent |
| 2 | |
| 3 | [](https://marketplace.visualstudio.com/items?itemName=getsigit.sigit-code) |
| 4 | [](https://open-vsx.org/extension/getsigit/sigit-code) |
| 5 | |
| 6 | Your code never has to leave your machine. siGit Code is a local-first AI |
| 7 | coding agent for VS Code. It runs the on-device [`sigit`](https://github.com/getsigit/sigit) |
| 8 | agent, a quantized (GGUF) model that runs entirely on your hardware and works |
| 9 | offline, and brings it into the editor as a chat interface. |
| 10 | |
| 11 | The default agent needs no API keys and makes no cloud round-trips. The model |
| 12 | lives on your device, and so does your code. |
| 13 | |
| 14 | siGit Code also speaks the open [Agent Client |
| 15 | Protocol](https://agentclientprotocol.com) (ACP), so it can drive other |
| 16 | ACP-compatible agents over stdio. The on-device agent is still the point. |
| 17 | |
| 18 | siGit Code's home is [code.sigit.si](https://code.sigit.si), where you can also |
| 19 | find the hosted version (siGit Code Cloud). [sigit.si](https://sigit.si) is Git |
| 20 | hosting built for AI workflows. |
| 21 | |
| 22 | ## Why local-first |
| 23 | |
| 24 | - Your prompts and file contents stay on your machine. |
| 25 | - It works offline, including on a plane or behind an air gap. |
| 26 | - No per-token billing, so you can run it as much as your hardware allows. |
| 27 | - You choose the model and the weights, and they do not change underneath you. |
| 28 | |
| 29 | ACP and multi-agent support are there for when you need a hosted agent. They are |
| 30 | not the headline. |
| 31 | |
| 32 | ## Requirements |
| 33 | |
| 34 | - VS Code `^1.90.0` |
| 35 | - The `sigit` binary on your `PATH`. |
| 36 | Install it from [github.com/getsigit/sigit](https://github.com/getsigit/sigit). |
| 37 | |
| 38 | > siGit Code only *spawns* the `sigit` binary over ACP, so it has no build-time |
| 39 | > dependency on the agent. Install the agent separately. |
| 40 | |
| 41 | ## Getting started |
| 42 | |
| 43 | 1. Install the `sigit` agent (see [github.com/getsigit/sigit](https://github.com/getsigit/sigit)) and |
| 44 | confirm `sigit` runs from your terminal. |
| 45 | 2. Install this extension from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=getsigit.sigit-code). |
| 46 | 3. Click the **siGit Code** icon in the Activity Bar to open the chat view. |
| 47 | 4. Type a prompt and press **Enter**. The extension spawns the agent, opens a |
| 48 | session in your workspace folder, and streams the response. |
| 49 | |
| 50 | Commands (Command Palette): |
| 51 | |
| 52 | | Command | Description | |
| 53 | | --- | --- | |
| 54 | | `siGit: Open Chat` | Reveal the chat view. | |
| 55 | | `siGit: New Session` | Start a fresh session with the active agent. | |
| 56 | | `siGit: Select Agent` | Pick a configured agent (or browse the registry) and switch to it. | |
| 57 | | `siGit: Restart Agent` | Restart the active agent process. | |
| 58 | | `siGit: Browse Agent Registry` | Fetch the ACP registry, install an agent, and optionally use or default to it. | |
| 59 | | `siGit: Refresh Agent Registry` | Force a fresh fetch of the registry catalog. | |
| 60 | | `siGit: Remove Agent` | Unregister an installed agent from `sigit.agents`. | |
| 61 | |
| 62 | The chat view's title bar also surfaces **New Session** and **Select Agent** inline, |
| 63 | with the registry commands (Browse / Refresh / Remove) and **Restart Agent** in the |
| 64 | `⋯` overflow menu. |
| 65 | |
| 66 | ## Configuration |
| 67 | |
| 68 | | Setting | Type | Default | Description | |
| 69 | | --- | --- | --- | --- | |
| 70 | | `sigit.agent.default` | string | `"sigit"` | Key of the agent used by default, looked up in `sigit.agents`. | |
| 71 | | `sigit.agents` | object | on-device `sigit` | Registry of ACP agents (`{ name, command, args, env }`). | |
| 72 | | `sigit.permission.mode` | enum | `"prompt"` | `prompt`, `allow`, or `deny` for agent-requested actions. | |
| 73 | |
| 74 | ### Add another ACP agent |
| 75 | |
| 76 | The default registry contains only the on-device agent. To add another |
| 77 | ACP-compatible agent, extend `sigit.agents` in your `settings.json`: |
| 78 | |
| 79 | ```jsonc |
| 80 | { |
| 81 | "sigit.agents": { |
| 82 | "sigit": { |
| 83 | "name": "siGit (on-device)", |
| 84 | "command": "sigit", |
| 85 | "args": [], |
| 86 | "env": {} |
| 87 | }, |
| 88 | "claude-code": { |
| 89 | "name": "Claude Code (ACP)", |
| 90 | "command": "claude-code-acp", |
| 91 | "args": [], |
| 92 | "env": {} |
| 93 | }, |
| 94 | "gemini": { |
| 95 | "name": "Gemini CLI (ACP)", |
| 96 | "command": "gemini", |
| 97 | "args": ["--experimental-acp"], |
| 98 | "env": {} |
| 99 | } |
| 100 | }, |
| 101 | "sigit.agent.default": "sigit" |
| 102 | } |
| 103 | ``` |
| 104 | |
| 105 | Then run **`siGit: Select Agent`** to switch between them. |
| 106 | |
| 107 | ## Development |
| 108 | |
| 109 | This project uses [pnpm](https://pnpm.io). |
| 110 | |
| 111 | ```bash |
| 112 | pnpm install |
| 113 | pnpm run watch # esbuild in watch mode |
| 114 | # Press F5 to launch the Extension Development Host |
| 115 | ``` |
| 116 | |
| 117 | Other scripts: |
| 118 | |
| 119 | ```bash |
| 120 | pnpm run compile # tsc --noEmit type check |
| 121 | pnpm run lint # eslint |
| 122 | pnpm run build # production bundle (esbuild) |
| 123 | pnpm run test:smoke # ACP round-trip against a mock agent |
| 124 | pnpm run package # vsce package (.vsix) |
| 125 | ``` |
| 126 | |
| 127 | ## Releasing |
| 128 | |
| 129 | Publishing is automated by [`.github/workflows/publish.yml`](.github/workflows/publish.yml). |
| 130 | It runs the test suite, packages one `.vsix`, and publishes that same file to the |
| 131 | VS Code Marketplace (`vsce`) and Open VSX (`ovsx`). |
| 132 | |
| 133 | One-time setup, stored as repository secrets: |
| 134 | |
| 135 | - `VSCE_PAT`: an Azure DevOps personal access token for the `getsigit` |
| 136 | Marketplace publisher (Marketplace > Manage scope). |
| 137 | - `OVSX_PAT`: an access token for the `getsigit` namespace on |
| 138 | [open-vsx.org](https://open-vsx.org). The workflow creates the namespace on |
| 139 | first publish if it does not exist. |
| 140 | |
| 141 | To cut a release: |
| 142 | |
| 143 | 1. Bump `version` in `package.json` and add a `CHANGELOG.md` entry. |
| 144 | 2. Push to `main`, then create a GitHub Release whose tag is `v<version>` (for |
| 145 | example `v1.0.1`). The workflow checks the tag against `package.json` and |
| 146 | fails on a mismatch. |
| 147 | 3. The release publishes to both registries and attaches the `.vsix` to the |
| 148 | GitHub Release. |
| 149 | |
| 150 | To test packaging without publishing, run the workflow manually from the Actions |
| 151 | tab with **publish** left unchecked. It uploads the `.vsix` as a build artifact. |
| 152 | |
| 153 | ## License |
| 154 | |
| 155 | [MIT](./LICENSE) |
| 156 | |
| 157 | ## Copyright |
| 158 | |
| 159 | © 2026 [Splitfire AB](https://5mb.app) ([siGit Code & Deploy](https://sigit.si)). |