siGit Code: on-device AI coding agent
Your code never has to leave your machine. siGit Code is a local-first AI
coding agent for VS Code. It runs the on-device sigit
agent, a quantized (GGUF) model that runs entirely on your hardware and works
offline, and brings it into the editor as a chat interface.
The default agent needs no API keys and makes no cloud round-trips. The model lives on your device, and so does your code.
siGit Code also speaks the open Agent Client Protocol (ACP), so it can drive other ACP-compatible agents over stdio. The on-device agent is still the point.
siGit Code's home is code.sigit.si, where you can also find the hosted version (siGit Code Cloud). sigit.si is Git hosting built for AI workflows.
Why local-first
- Your prompts and file contents stay on your machine.
- It works offline, including on a plane or behind an air gap.
- No per-token billing, so you can run it as much as your hardware allows.
- You choose the model and the weights, and they do not change underneath you.
ACP and multi-agent support are there for when you need a hosted agent. They are not the headline.
Requirements
- VS Code
^1.90.0 - The
sigitbinary on yourPATH. Install it from github.com/getsigit/sigit.
siGit Code only spawns the
sigitbinary over ACP, so it has no build-time dependency on the agent. Install the agent separately.
Getting started
- Install the
sigitagent (see github.com/getsigit/sigit) and confirmsigitruns from your terminal. - Install this extension from the VS Code Marketplace.
- Click the siGit Code icon in the Activity Bar to open the chat view.
- Type a prompt and press Enter. The extension spawns the agent, opens a session in your workspace folder, and streams the response.
Commands (Command Palette):
| Command | Description |
|---|---|
siGit: Open Chat |
Reveal the chat view. |
siGit: New Session |
Start a fresh session with the active agent. |
siGit: Select Agent |
Pick a configured agent (or browse the registry) and switch to it. |
siGit: Restart Agent |
Restart the active agent process. |
siGit: Browse Agent Registry |
Fetch the ACP registry, install an agent, and optionally use or default to it. |
siGit: Refresh Agent Registry |
Force a fresh fetch of the registry catalog. |
siGit: Remove Agent |
Unregister an installed agent from sigit.agents. |
The chat view's title bar also surfaces New Session and Select Agent inline,
with the registry commands (Browse / Refresh / Remove) and Restart Agent in the
⋯ overflow menu.
Configuration
| Setting | Type | Default | Description |
|---|---|---|---|
sigit.agent.default |
string | "sigit" |
Key of the agent used by default, looked up in sigit.agents. |
sigit.agents |
object | on-device sigit |
Registry of ACP agents ({ name, command, args, env }). |
sigit.permission.mode |
enum | "prompt" |
prompt, allow, or deny for agent-requested actions. |
Add another ACP agent
The default registry contains only the on-device agent. To add another
ACP-compatible agent, extend sigit.agents in your settings.json:
{
"sigit.agents": {
"sigit": {
"name": "siGit (on-device)",
"command": "sigit",
"args": [],
"env": {}
},
"claude-code": {
"name": "Claude Code (ACP)",
"command": "claude-code-acp",
"args": [],
"env": {}
},
"gemini": {
"name": "Gemini CLI (ACP)",
"command": "gemini",
"args": ["--experimental-acp"],
"env": {}
}
},
"sigit.agent.default": "sigit"
}
Then run siGit: Select Agent to switch between them.
Development
This project uses pnpm.
pnpm install
pnpm run watch # esbuild in watch mode
# Press F5 to launch the Extension Development Host
Other scripts:
pnpm run compile # tsc --noEmit type check
pnpm run lint # eslint
pnpm run build # production bundle (esbuild)
pnpm run test:smoke # ACP round-trip against a mock agent
pnpm run package # vsce package (.vsix)
Releasing
Publishing is automated by .github/workflows/publish.yml.
It runs the test suite, packages one .vsix, and publishes that same file to the
VS Code Marketplace (vsce) and Open VSX (ovsx).
One-time setup, stored as repository secrets:
VSCE_PAT: an Azure DevOps personal access token for thegetsigitMarketplace publisher (Marketplace > Manage scope).OVSX_PAT: an access token for thegetsigitnamespace on open-vsx.org. The workflow creates the namespace on first publish if it does not exist.
To cut a release:
- Bump
versioninpackage.jsonand add aCHANGELOG.mdentry. - Push to
main, then create a GitHub Release whose tag isv<version>(for examplev1.0.1). The workflow checks the tag againstpackage.jsonand fails on a mismatch. - The release publishes to both registries and attaches the
.vsixto the GitHub Release.
To test packaging without publishing, run the workflow manually from the Actions
tab with publish left unchecked. It uploads the .vsix as a build artifact.
License
Copyright
© 2026 Splitfire AB (siGit Code & Deploy).