Skip to content

Commands

Command What it does
context "<question>" Best entry point for a user question. Drops filler words and follows routes.
find "<keywords>" Keyword search over title, aliases, key fact, path and text.
read <path> Read a note, a line range (--start, --end) or a section (--section).
write <path> --expected new|<rev> Write one file from Markdown on stdin. --append appends. --message TEXT sets the commit subject.
ingest --input - Write a JSON package of several files atomically. --message TEXT sets the commit subject.
check [paths] Validate frontmatter and links.
sync Commit note changes; in a synced brain also rebase onto the remote and push.
init [path] Create a new brain; --remote URL makes it synced.
install Install the Git pre-commit hook and the Claude Code and Codex hooks.
meta migrate|generate|report|index|agents Maintain frontmatter and indexes; print rendered AGENTS.md.
links Build the links map (extra).
curator Run the curation scan or print its weekly LLM prompt (extra).
import-memory Mirror Claude Code and Codex memory of the listed projects into the brain (extra).

What gets committed. write, ingest, sync and the agent hooks commit only what rcllr manages: the note folders (topics/, notes/, bookmarks/), sources/, archive/, INDEX.md, .sensitive-paths, the links map (links.output), the curator reports (curator.report_dir) and the routes and entities files (context.routes_file, links.entities_file). Everything else, such as rcllr.toml, AGENTS.md, CLAUDE.md, .claude/, .codex/ or your scripts, stays uncommitted for you to commit by hand, and an uncommitted change there never blocks a write. repo.sync_exclude keeps further paths inside those folders out. The commit subject is repo.commit_message; write and ingest take --message "Add pnpm build fix" (one line, at most 200 characters) for a subject of their own.

Read commands share --scope, --topic, --allow-sensitive, --json and --max-chars. Every command accepts --root PATH and --serious. rcllr <command> --help shows the purpose and examples first, then the options grouped as Access, Output and the command's own options. rcllr --version prints the version.

Every hit starts with a header line: path | rev=<12 chars> | updated | status | scope. Pass that rev as --expected when you change the file.

Exit codes: 0 ok, 2 rejected call (nothing changed; the message says what to fix), 3 saved but the Git sync failed (run rcllr sync again). When the remote refuses the login, the message says so; with --json, syncError holds the message key, for example git_auth.