Installation

curl (macOS / Linux)

The recommended install. Detects your OS and architecture, downloads the matching release archive, and verifies its checksum before installing.

shell
curl -fsSL https://github.com/maquina-app/recuerd0-cli/releases/latest/download/install.sh | sh
The installer verifies the download against the release checksums.txt (sha256) and installs to /usr/local/bin, falling back to $HOME/.local/bin if that isn't writable.

Homebrew (macOS)

shell
brew install maquina-app/tap/recuerd0

Debian / Ubuntu

shell
# Download the .deb for your arch (amd64 or arm64) from the latest release: # https://github.com/maquina-app/recuerd0-cli/releases/latest sudo dpkg -i recuerd0_*_linux_amd64.deb

Fedora / RHEL

shell
# Download the .rpm for your arch (amd64 or arm64) from the latest release: # https://github.com/maquina-app/recuerd0-cli/releases/latest sudo rpm -i recuerd0_*_linux_amd64.rpm

Windows

powershell
# Download recuerd0-windows-amd64.zip (or -arm64) from the latest release: # https://github.com/maquina-app/recuerd0-cli/releases/latest # Unzip it and add recuerd0.exe to your PATH.

Go install

shell
go install github.com/maquina/recuerd0-cli/cmd/recuerd0@latest

From source

shell
git clone https://github.com/maquina-app/recuerd0-cli.git cd recuerd0-cli make build ./bin/recuerd0 --help

Quick Start

Four commands to go from install to search.

shell
# 1. Add your account recuerd0 account add personal --api-url https://your-server.com --token YOUR_TOKEN # 2. List workspaces recuerd0 workspace list # 3. Create a memory recuerd0 memory create --workspace 1 --title "Auth patterns" --content "# Auth\nUse Bearer tokens..." # 4. Search across everything recuerd0 search "authentication"

Configuration

Multi-account setup with local overrides per project.

Global config

Stored at ~/.config/recuerd0/config.yaml. Manages multiple accounts.

~/.config/recuerd0/config.yaml
default_account: personal accounts: personal: api_url: https://recuerd0.example.com token: r0_live_abc123... work: api_url: https://memory.company.io token: r0_live_def456...

Project-local config

Place a .recuerd0.yaml in any project root to set defaults for that directory.

.recuerd0.yaml
account: work workspace: 3

Resolution order

Higher priority wins.

PrioritySourceExample
1 (highest)CLI flags--account work
2Environment variablesRECUERD0_TOKEN=...
3Project-local config.recuerd0.yaml
4 (lowest)Global config~/.config/recuerd0/config.yaml

Commands

account

Manage server connections.

usage
recuerd0 account add <name> --api-url <url> --token <token> recuerd0 account list recuerd0 account remove <name> recuerd0 account default <name>
SubcommandDescription
addRegister a new account with API URL and token
listShow all configured accounts
removeDelete an account from config
defaultSet the default account

workspace

List and manage workspaces.

usage
recuerd0 workspace list recuerd0 workspace show <id> recuerd0 workspace create --name <name> [--description <desc>] recuerd0 workspace update <id> --name <name> recuerd0 workspace archive <id> recuerd0 workspace unarchive <id>
SubcommandDescription
listList all active workspaces
showShow workspace details and memory count
createCreate a new workspace
updateUpdate workspace name or description
archiveArchive a workspace (read-only)
unarchiveRestore an archived workspace

memory

Create, read, update, and delete memories.

usage
recuerd0 memory list --workspace <id> [--category CAT] recuerd0 memory show --workspace <id> <memory_id> recuerd0 memory create --workspace <id> --title <title> --content <body|-> [--category CAT] recuerd0 memory update --workspace <id> <memory_id> [--title <title>] [--content <body|->] [--category CAT] recuerd0 memory delete --workspace <id> <memory_id> recuerd0 memory link list <memory_id> [--workspace <id>] recuerd0 memory link add <memory_id> --to <other_memory_id> [--workspace <id>] recuerd0 memory link remove <memory_id> --to <other_memory_id> [--workspace <id>]
Use --content - to read from stdin. Pipe markdown files directly: cat notes.md | recuerd0 memory create --workspace 1 --title "Notes" --content -
FlagDescription
--workspaceTarget workspace ID (required, or set in .recuerd0.yaml)
--titleMemory title
--contentMarkdown body, or - for stdin
--tagsComma-separated tags: --tags "auth,rails,patterns"
--sourceSource identifier (e.g. cli, claude-code)
--categoryOne of decision, discovery, preference, general (defaults to general). See Categories.

memory read

Read just what you need from large memories — head, tail, an explicit line range, or grep matches with surrounding context. Avoids loading the full body when you only care about a slice.

usage
recuerd0 memory read head <memory_id> --lines 20 [--workspace <id>] recuerd0 memory read tail <memory_id> --lines 20 [--workspace <id>] recuerd0 memory read lines <memory_id> --start 40 --end 55 [--workspace <id>] recuerd0 memory read grep <memory_id> "TODO" --context 2 [--workspace <id>]
SubcommandDescription
headFirst --lines N lines of the memory body
tailLast --lines N lines, computed from total_lines
linesExplicit range from --start to --end (1-based, inclusive)
grepFind a pattern and print each match with --context, --before, or --after lines
Pair memory read grep with memory read lines: grep first to find the line number, then fetch a window of context around it. This is much cheaper than memory show for long transcripts and docs.

Categories

Every memory carries exactly one category from a locked four-value enum. Category defaults to general and is used by --category on create, update, list, search, and version create to filter or assign. Versions inherit the parent memory's category unless overridden.

ValueLabelPurpose
decisionDecisionArchitecture choices, library picks, tradeoffs with stated reasoning
discoveryDiscoveryNon-obvious findings — gotchas, root causes, patterns, library quirks
preferencePreferenceUser-stated rules ("always X", "never Y")
generalGeneralCatch-all and default
examples
recuerd0 memory create --workspace 1 --title "Postgres over SQLite for Orion" \ --content "Concurrent writes + 10GB+ dataset." --category decision recuerd0 memory list --workspace 1 --category decision

version

Create new versions of existing memories.

usage
recuerd0 version create --workspace <id> <memory_id> --content <body|-> [--category CAT] recuerd0 version list --workspace <id> <memory_id> recuerd0 version show --workspace <id> <version_id>
SubcommandDescription
createBranch a new version from a memory. Omitted fields inherit from parent.
listList all versions of a memory
showShow a specific version with content

Output Format

All commands output JSON by default. Use --pretty for formatted output.

search output
{ "query": "authentication", "total_results": 2, "results": [ { "id": 12, "title": "Auth Patterns", "workspace": { "id": 1, "name": "Rails Project" }, "snippet": "Bearer token authentication with..." } ] }

Error output

error
{ "error": { "code": "NOT_FOUND", "message": "Resource not found", "status": 404 } }

Global Flags

Available on all commands.

FlagEnv VariableDescription
--accountRECUERD0_ACCOUNTAccount name to use
--tokenRECUERD0_TOKENAPI token (overrides config)
--api-urlRECUERD0_API_URLServer URL (overrides config)
--workspaceRECUERD0_WORKSPACEDefault workspace ID
--verboseShow HTTP request/response details
--prettyPretty-print JSON output

Exit Codes

CodeMeaning
0Success
1General error
2Invalid arguments or usage
3Configuration error (missing account, bad config file)
4Authentication failed (401)
5Permission denied (403)
6Resource not found (404)
7Validation error (422)
8Rate limited (429)