RemNote Notes
by @robert7
Search, read, and write RemNote notes and personal knowledge base content via `remnote-cli`. Use for note-taking, journaling, tags, tables, and knowledge-bas...
clawhub install remnoteπ About This Skill
name: remnote description: Search, read, and write RemNote notes and personal knowledge base content via
remnote-cli. Use for note-taking, journaling, tags, and knowledge-base navigation; require confirm write before create/update/journal.
homepage: https://github.com/robert7/remnote-cli
metadata:
{
"openclaw":
{
"emoji": "π",
"requires": { "bins": ["remnote-cli"] },
"install":
[
{
"id": "node",
"kind": "node",
"package": "remnote-cli",
"bins": ["remnote-cli"],
"label": "Install remnote-cli (npm)",
},
],
},
}
RemNote via remnote-cli
Use this skill when a user wants to read or manage RemNote content from the command line with remnote-cli.
If the user needs navigation across the whole knowledge base (for example: "where does this topic live in my notes?",
"start from top-level note tree", "map main note groups"), prefer remnote-kb-navigation when it is available and
customized for the current user, then return to this skill for general command policy and write gating. If
remnote-kb-navigation is not available (or still template/unconfigured), continue with this skill alone and ask for
skill customization when needed.
Example Conversation Triggers
."confirm write)confirm write)Preconditions (required)
1. RemNote Automation Bridge plugin is installed in RemNote.
2. Plugin install path is one of:
- Marketplace install guide:
https://github.com/robert7/remnote-mcp-bridge/blob/main/docs/guides/install-plugin-via-marketplace-beginner.md
- Local dev plugin guide:
https://github.com/robert7/remnote-mcp-bridge/blob/main/docs/guides/development-run-plugin-locally.md
3. remnote-cli is installed on the same machine where OpenClaw runs.
- Preferred install: npm install -g remnote-cli
4. RemNote is open in browser/app (https://www.remnote.com/).
5. remnote-cli daemon is running (remnote-cli daemon start).
6. The right-sidebar MCP panel is available for status inspection and manual reconnect when needed, but it is not
required to already be open before commands work.
If any precondition is missing, stop and fix setup first.
Read-First Safety Policy
status, search, search-tag, read, daemon status.create, update, journal), require the exact phrase confirm write from the user in the same turn.confirm write is not present, ask for confirmation and do not execute writes.Command Invocation Rule (critical)
remnote-cli command per execution.remnote-cli directly; do not chain shell commands.&&, |, ;, subshells ((...)), command substitution ($()), xargs, or echo pipelines.remnote-cli daemon status --text && echo '---' && remnote-cli status --textremnote-cli daemon status --textremnote-cli status --textWrite Payload Rule (allowlist-friendly)
--content-file for create / journal
- --append-file or --replace-file for update
--content / --append/positional journal [content]/positional create [title] are discouraged except for very short single-line text.- (stdin) is supported but discouraged by default in OpenClaw flows because command context can be less explicit.Compatibility Check (mandatory before real work)
1. Check daemon and bridge connectivity:
- remnote-cli daemon status --text
- remnote-cli status --text
2. Read versions from remnote-cli status --text:
- active plugin version
- CLI version
- version_warning (if present)
- write-policy flags: acceptWriteOperations, acceptReplaceOperation
3. RemNote-open-first / daemon-starts-later is supported:
- the bridge should retry in the background
- the sidebar panel is optional and mainly useful for monitoring, manual reconnect, and wake-up triggers
4. Enforce version rule: bridge plugin and remnote-cli must be the same 0.x minor line (prefer exact match).
5. If mismatch:
- Install matching CLI version:
- Exact: npm install -g remnote-cli@
- Or same minor line (0.) when exact is unavailable.
- Re-run:
- remnote-cli --version
- remnote-cli daemon restart is not available, so run:
- remnote-cli daemon stop
- remnote-cli daemon start
- remnote-cli status --text
Core Commands
Health and Connectivity
remnote-cli daemon startremnote-cli daemon status --textremnote-cli status --textremnote-cli --control-port 3110 status --text for non-default daemon control portsRead-Only Operations (default)
remnote-cli search "query"remnote-cli search-tag "tag"remnote-cli read --textOutput Mode and Traversal Strategy
--text only for plain human summarization of exactly one note when no further navigation is needed.2 means the daemon is unreachable or not running.remnote-cli read --depth 1 --child-limit 500
--depth, --child-limit, or --max-content-length only when the user actually needs more hierarchy or--include-content modes
--include-content markdown:--include-content structured:contentStructured data including child rem IDs.
- Best for navigation and deterministic ID-first traversal.Mutating Operations (only after confirm write)
remnote-cli create "Title" --content-file /tmp/body.md --textremnote-cli create "Title" --parent-id --tags project active --text
remnote-cli update --title "New Title" --append-file /tmp/append.md --text remnote-cli update --add-tags active --remove-tags draft --text
remnote-cli update --replace-file /tmp/replacement.md --text
- remnote-cli update --replace "" --text (clear all direct children)
remnote-cli journal "Finished task" --textremnote-cli journal --content-file /tmp/entry.md --textremnote-cli journal --content-file /tmp/entry.md --no-timestamp --text
acceptWriteOperations=true and acceptReplaceOperation=true from status.
- Treat replace as destructive and require the user to clearly request replace semantics.
- Quote text values with spaces or special characters, and use explicit empty-value syntax like --title="" to avoid
argument shifting.Failure Handling
When a bridge-backed operation fails (search, search-tag, read, create, update, journal, status), run
this sequence in order:
1. Check bridge status first:
- remnote-cli status --text
2. If status --text fails with exit code 2 or says the daemon is unreachable:
- run remnote-cli daemon status --text
- if the daemon is not running, run remnote-cli daemon start
- re-run remnote-cli status --text
3. If status --text shows version_warning:
- align the CLI version to the plugin 0.x minor line
- restart with separate commands because daemon restart does not exist:
- remnote-cli daemon stop
- remnote-cli daemon start
- re-run remnote-cli status --text
4. If the bridge is disconnected:
- use the browser tool to ensure https://www.remnote.com/ is open and reachable
- re-run remnote-cli status --text
- if needed, wait and retry for up to 30 seconds because the bridge may still be in burst retry or standby retry
5. If it is still disconnected:
- use the browser tool to open the right sidebar and click the MCP icon if present
- opening the panel is itself a wake-up trigger and may restart faster retries
6. Inspect the plugin panel state:
- Connected means retry the CLI command
- Connecting means a connection attempt is in progress; wait briefly, then re-run remnote-cli status --text
- Retrying means the burst retry window is active; wait briefly or use Reconnect Now
- Waiting for server means standby mode is active; use Reconnect Now or another wake-up trigger
7. If the MCP icon is missing, report that the plugin UI is not available in RemNote.
8. If the panel is visible but still not connected:
- capture the visible panel state, disconnect reason, and whether Reconnect Now helped
- report that context to the user before stopping
9. Only after the sequence above fails should you report the command failure as unresolved.
Operational Notes
--text is useful for quick human checks.https://github.com/robert7/remnote-cli/blob/main/docs/guides/command-reference.md