Quickstart
Install ROSE, wire the hooks, and see the first lesson land.
Python 3.10+ and either claude or codex on your PATH.
No third-party dependencies.
uv tool install rose-memory rose install --scope user rose doctor
That is the whole install. rose install wires the hooks and ROSE
runs in every repo you open — you do not drive it, you work normally. Drop
--scope user to limit it to one project.
rose-memory because rose was taken
on PyPI. The command it installs, and the package you import, are both
rose. No uv? pipx install rose-memory. Just trying it?
uvx rose-memory doctor.
What you should see#
Nothing, at first — the store is empty and ROSE has nothing to say. Once it has learned something, a line appears above your prompt:
⋯ ROSE · 2 lessons · 512 tok — Retry policy, Cache TTLs ⋯ ROSE · 1 lesson · 118 tok — Retry policy · 1 refreshed, 2 already in context
It names what was loaded, because a count only proves ROSE fired — the titles are what let you notice it fired on the wrong lessons. The three states differ: a lesson injected in full, a one-line refresher for one going stale, and one skipped because it is still in your context. Only the first is a lesson arriving.
Expect the first capture within a few sessions of real work. ROSE learns from corrections, so a session where nothing went wrong teaches it nothing.
As a Claude Code plugin instead#
/plugin marketplace add yiheinchai/rose /plugin install rose@rose
Where your data lives#
Plain files: .rose/ in the project, ~/.rose/ for
lessons that apply everywhere. Nodes and episodes are worth committing;
sessions, telemetry and caches are machine-local. Everything passes through
redact.py before it touches disk — API keys, tokens, private keys,
card numbers — biased toward over-redaction, since a mangled lesson is
recoverable and a leaked key is not.
ROSE makes no network calls. Model calls go through whichever CLI you already have, under your existing credentials.