1 # siGit Code
2
3 <p align="center">
4 <a href="https://crates.io/crates/sigit"><img src="https://img.shields.io/crates/v/sigit?style=flat-square&labelColor=17211D&color=235843" alt="Crates.io"></a>
5 <a href="https://pypi.org/project/sigit-code/"><img src="https://img.shields.io/pypi/v/sigit-code?style=flat-square&labelColor=17211D&color=235843" alt="PyPI"></a>
6 <a href="https://www.npmjs.com/package/@getsigit/sigit"><img src="https://img.shields.io/npm/v/@getsigit/sigit?style=flat-square&labelColor=17211D&color=235843" alt="npm"></a>
7 <a href="https://smbcloud.xyz"><img src="https://img.shields.io/badge/smbcloud.xyz-235843?style=flat-square&labelColor=17211D" alt="Website"></a>
8 <a href="https://github.com/getsigit/sigit/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-235843?style=flat-square&labelColor=17211D" alt="License"></a>
9 </p>
10
11 siGit Code is the local agent runtime for **siGit Factory**. It runs on your machine by default,
12 with optional cloud inference and remote automation when you choose them.
13
14 Its home is [code.sigit.si](https://code.sigit.si). You can run it yourself, as below, or use the hosted version (siGit Code Cloud) there if you would rather not run a model locally. [sigit.si](https://sigit.si) is Git hosting built for AI workflows.
15
16 It works in any codebase. In smbCloud repos it is more useful out of the box because it already understands the Rust workspace layout, deploy flows, auth boundaries, and GresIQ.
17
18 You can use it in two ways:
19
20 - **ACP mode:** Zed or another ACP-compatible editor starts it over stdio with the `--acp` argument
21 - **Terminal mode:** run `sigit` for the interactive chat UI
22
23 Every ACP client must pass `--acp`. It takes no other arguments, and it is what
24 tells the binary to speak the Agent Client Protocol instead of opening the
25 terminal UI.
26
27 | Platform | ACP mode | Terminal mode |
28 |----------|----------|---------------|
29 | macOS | ✓ | ✓ |
30 | Linux | ✓ | ✓ |
31 | Windows | ✓ | not yet |
32
33 ## Install
34
35 ```sh
36 cargo install sigit
37 ```
38
39 | Method | Command |
40 |--------|---------|
41 | Homebrew | `brew tap getsigit/tap && brew trust --tap getsigit/tap && brew install sigit` |
42 | pip | `pip install sigit-code` |
43 | uv | `uvx --from sigit-code sigit` |
44 | npm | `npm install -g @getsigit/sigit` |
45 | NuGet | `dotnet tool install --global SiGit.Code` |
46 | winget | `winget install smbCloud.siGitCode` |
47 | Scoop | `scoop bucket add getsigit https://github.com/getsigit/scoop-bucket && scoop install sigit` |
48 | AUR | `yay -S sigit-bin` |
49 | Debian/Ubuntu | download the `.deb` from [releases](https://github.com/getsigit/sigit/releases), then `sudo dpkg -i sigit_*.deb` |
50 | Fedora/RHEL | download the `.rpm` from [releases](https://github.com/getsigit/sigit/releases), then `sudo rpm -i sigit-*.rpm` |
51
52 ## First run
53
54 The first launch downloads a GGUF model from Hugging Face. Expect roughly 1 to 2 GB, depending on the model. After that, loads come from disk and are much faster.
55
56 On macOS, siGit Code shares its model cache with the desktop app through an App Group container. If the desktop app already downloaded the model, the CLI reuses it.
57
58 ## Zed setup
59
60 Add this to `~/.config/zed/settings.json`:
61
62 ```json
63 {
64 "agent_servers": {
65 "siGit Code": {
66 "type": "custom",
67 "command": "/absolute/path/to/sigit",
68 "args": ["--acp"]
69 }
70 }
71 }
72 ```
73
74 Use the full absolute path. `~` does not expand here.
75
76 ## Xcode custom agent
77
78 In Xcode, open **Settings > Intelligence > Agents**, add a custom agent, and set:
79
80 - **Executable:** the absolute path to `sigit`
81 - **Arguments:** `--acp`
82
83 In Xcode the `--acp` mode also loads the selected on-device model on the first
84 prompt, so you do not need to send `/load` from the Xcode chat.
85
86 To let siGit use Xcode's build, test, and project tools, enable **Allow external
87 agents to use Xcode tools** in Xcode's Intelligence settings, keep the project
88 open, and add this to `~/.config/sigit/mcp.toml`:
89
90 ```toml
91 [[server]]
92 name = "xcode"
93 command = "xcrun"
94 args = ["mcpbridge"]
95 ```
96
97 ## VS Code
98
99 ### With siGit Code Extension
100
101 Install from the [Visual Studio Code Marketplace](https://marketplace.visualstudio.com/items?itemName=getsigit.sigit-code).
102
103 ```jsonc
104 {
105 "sigit.agents": {
106 "sigit": {
107 "name": "siGit (on-device)",
108 "command": "sigit",
109 "args": ["--acp"],
110 "env": {}
111 },
112 },
113 "sigit.agent.default": "sigit"
114 }
115 ```
116
117 ### With ACP Client
118
119 Install [ACP Client](https://marketplace.visualstudio.com/items?itemName=formulahendry.acp-client), then add:
120
121 ```json
122 {
123 "acp.agents": {
124 "siGit Code": {
125 "command": "sigit",
126 "args": ["--acp"],
127 "env": {}
128 }
129 }
130 }
131 ```
132
133 ## Terminal mode
134
135 Run `sigit` in a terminal and you get the same model and system prompt as the editor integration, just in a full-screen chat UI.
136
137 Terminal mode currently needs Unix terminal behavior, so it works on macOS and Linux only.
138
139 ## Headless and CI mode
140
141 Use `sigit run` to execute the same agent from scripts, CI, or another siGit Factory client:
142
143 ```sh
144 sigit run "Review this repository and run the focused tests" --cwd .
145 ```
146
147 Every run receives a durable session ID. The ID is printed to stderr in text mode and included
148 in every event in JSONL mode. Resume the same conversation from a later command—or import it in
149 an ACP client—by passing that ID:
150
151 ```sh
152 sigit run "Continue with the next issue" --resume <session-id>
153 ```
154
155 For automation, JSONL output provides session, assistant-delta, tool-call, tool-result, result,
156 and error events on stdout. Logs remain on stderr.
157
158 ```sh
159 sigit run "Run the checks" --output jsonl --allow-tool run_command
160 ```
161
162 Mutating tools still follow siGit's permission policy. Because a headless run cannot answer an
163 interactive permission prompt, approve only the tools the run needs with repeatable
164 `--allow-tool` flags. The legacy `sigit -p "<prompt>"` form remains supported. See the
165 [headless execution reference](docs/headless.md) for the event contract and exit codes.
166
167 ## Platform support
168
169 | Platform | Architecture |
170 |----------|-------------|
171 | macOS | arm64, x64 |
172 | Linux (glibc) | arm64, x64 |
173 | Windows | arm64, x64 |
174
175 ## License
176
177 [Apache 2.0](https://github.com/getsigit/sigit/blob/main/LICENSE)
178
179 ## Distribution
180
181 [Splitfire AB](https://5mb.app).
182
183 ## Copyright
184
185 © 2026 PT Sigit Mitra Bangun ([siGit Code & Deploy](https://sigit.si)).