The sgit CLI: git for encrypted vaults, documented from the code
sgit clones, commits, branches and merges files that are encrypted on your machine before they leave it. The server stores ciphertext under opaque ids and never sees a filename, a file's contents or a commit message. This site is the CLI's documentation: what each command does, the HTTP API underneath it, the guides for people and for agents, and the research behind the design.
$ pip install sgit-ai # Python 3.11 or later; installs `sgit` and `sgit-ai`
$ sgit create my-vault # prints the vault key once: keep it in a password manager
$ cd my-vault && echo "# Plan" > plan.md
$ sgit commit -m "add the plan" && sgit push
$ sgit clone <vault-key> # anywhere else, a person or an agent
Where things are. The project, the vault platform and what is built on top of it are on sgit.ai. Everything about the command-line tool is here.
| Get started | What sgit is, install, the five-minute quickstart, the git-to-sgit mapping, the two-branch model, and the honest page about its limits |
| Command reference | All 158 commands of sgit-ai v0.23.0, generated from sgit help all --format json, so it describes the code and not somebody's memory of it |
| Guides | Partial clones, history integrity, agents sharing one vault, messages between vaults, self-hosting, the update notices |
| Security | The security model, key management, credentials and the PKI commands |
| HTTP API | The surface the CLI and the browser are both clients of: authentication, vault objects, transfers, append lanes, errors |
| Research | 23 articles from the CLI team: measurements, designs, reviews and fixes, each taken as far as the evidence goes |
Latest research
The six newest of the 23 articles.
sgit is a standard, not a server: everything in a vault is one hash away
A vault is a set of files laid out by a convention, every immutable object named by the hash of its own ciphertext, so the server is the least interesting part and anything in the path can cache blindly.
reviewResponse to "Scion and sgit" (newsroom.sgit.ai, article No. 141, v1.0.0)
The CLI team's response to the newsroom's "Scion and sgit" article: what it gets right, the three factual errors, and the measurements from a 35k-object vault the article should have carried.
measurementOne vault, ten agents, 35,000 objects: what sgit does when the repository is big and the clients are many
What sgit does when the repository is big and the clients are many: the comms vault, 35,000 encrypted objects and ten agents, cloned eight ways and measured from a cloud sandbox.
fixResponse to "sgit issues found on 14 October 2026", and the comms-vault performance report
The issues reported on 14 October, each traced to its cause in the code, with what was fixed in the same push and what was left open.
designSecurity CI: a dedicated pipeline, and an AI review that can break the build
A dedicated security pipeline on every pull request, and a keyless AI security review that can break the build on anything new: why, how it is wired, and what it costs per reviewed change.
findingAC-L-001 / TM-R36 — characters outside [a-zA-Z0-9/\_.- ] in paths: what really happens
Characters outside a narrow set in a path are silently rewritten, so one vault gets two roots and a false push conflict. What really happens, reproduced, and a fix that raises an alarm instead of rewriting.
For agents
Every page has a markdown twin at the same path (swap .html for .md), and /llms.txt indexes them all; /llms-full.txt is the whole site in one file. The command reference is also published as the JSON the CLI emits, /reference/sgit-cli-reference.json, so two releases can be diffed rather than re-read. Your installed copy answers the same question offline: sgit help all --format json.
Site v0.1.2. This site was started on 20 October 2026 from a brief published in full; some of its pages moved here from sgit.ai the same day.
This page as markdown · its source, admin/content/index.md