Getting started
Install
Do it yourself
curl -fsSL https://raw.githubusercontent.com/Kordi-AI/doss/main/install.sh | sh
doss init # guided setup — just answer the questionsThe installer grabs a prebuilt binary for your OS/arch (macOS/Linux, amd64/arm64), falling back to a source build if you have Go. No prebuilt for your platform?
git clone https://github.com/Kordi-AI/doss && cd doss && ./install.shSet up the vault
Run in a terminal, doss init walks you through it:
New vault or attach to a cloud one
Create a fresh vault on this machine, or connect this device to an existing one.
Commit identity
The name and email your vault’s git commits are signed with — Doss asks rather than guessing.
Optional cloud backup
Back the vault up to a private GitHub repo. Doss uses gh or a token to
create the repo and install this device’s writable deploy key, then future sync
uses that device key. This enables sync and additional devices.
Second device? Run doss init --from you/my-doss. Every device then shares
one memory, kept aligned by doss sync.
Wire your agents
init automatically runs doss connect, which drops a small managed section into
each installed agent’s always-loaded global instruction file — ~/.claude/CLAUDE.md
(Claude Code), ~/.codex/AGENTS.md (Codex), ~/.gemini/GEMINI.md (Gemini CLI),
OpenClaw’s workspace AGENTS.md, Windsurf’s global rules. Any other agent works too:
doss connect --file PATH_TO_INSTRUCTION_FILEThe section is injected into every session of every project, so whichever agent sets Doss up, every other agent on the machine discovers it next session.
Verify anytime with doss doctor (--fix repairs). Undo with doss connect --remove.
The four habits
After setup, an agent only needs these (details in the generated ~/.doss/INSTRUCTION.md):
| When | Do |
|---|---|
| Learned something durable | Write a small file under self/ — the path is the topic |
| Need to recall | Just ls / grep / read files |
| Finished editing | doss check --changed (errors are precise; fix and rerun) |
| Wrapping up | doss sync (unvalidated content never syncs) |