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
- "Check if RemNote bridge is connected."
- "Search my RemNote for sprint notes."
- "Find notes tagged weekly-review in RemNote."
- "Read this RemNote by ID:
<rem-id>."
- "Map the top-level structure of my whole RemNote knowledge base."
- "Create a RemNote note titled X with this content." (requires
confirm write)
- "Append this to my journal in RemNote." (requires
confirm write)
Preconditions (required)
- RemNote Automation Bridge plugin is installed in RemNote.
- 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
remnote-cli is installed on the same machine where OpenClaw runs.
- Preferred install:
npm install -g remnote-cli
- RemNote is open in browser/app (
https://www.remnote.com/).
remnote-cli daemon is running (remnote-cli daemon start).
- The plugin panel is open in RemNote right sidebar and shows connected status.
If any precondition is missing, stop and fix setup first.
Read-First Safety Policy
- Default to read-only flows:
status, search, search-tag, read, daemon status.
- Do not run mutating commands by default.
- For writes (
create, update, journal), require the exact phrase confirm write from the user in the same turn.
- If
confirm write is not present, ask for confirmation and do not execute writes.
Command Invocation Rule (critical)
- Run exactly one
remnote-cli command per execution.
- Invoke
remnote-cli directly; do not chain shell commands.
- Do not use
&&, |, ;, subshells ((...)), command substitution ($()), xargs, or echo pipelines.
- WRONG:
remnote-cli daemon status --text && echo '---' && remnote-cli status --text
- RIGHT:
remnote-cli daemon status --text
- RIGHT:
remnote-cli status --text
- Reason: command chaining can trigger exec approvals and break automation flow.
Compatibility Check (mandatory before real work)
- Check daemon and bridge connectivity:
remnote-cli daemon status --text
remnote-cli status --text
- Confirm plugin panel is open in right sidebar and connected.
- Read versions from
remnote-cli status --text:
- active plugin version
- CLI version
version_warning (if present)
- Enforce version rule: bridge plugin and
remnote-cli must be the same 0.x minor line (prefer exact match).
- If mismatch:
- Install matching CLI version:
- Exact:
npm install -g remnote-cli@<plugin-version>
- Or same minor line (
0.<minor>.x) 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 start
remnote-cli daemon status --text
remnote-cli status --text
Read-Only Operations (default)
- Search notes:
remnote-cli search "query"
- Search by tag:
remnote-cli search-tag "tag"
- Read note by Rem ID:
remnote-cli read <rem-id>
- Optional text mode: add
--text
Output Mode and Traversal Strategy
- Use JSON output (default) for navigation, multi-step retrieval, and any flow that needs IDs for follow-up reads.
- Use
--text only for plain human summarization of exactly one note when no further navigation is needed.
- For structure traversal, start with shallow reads and high child limit:
remnote-cli read <rem-id> --depth 1 --child-limit 500
--include-content modes
--include-content markdown:
- Returns readable rendered child content.
- Best for summarization/presentation.
- Markdown content does not provide child IDs required for further navigation.
--include-content structured:
- Returns hierarchical
contentStructured data including child rem IDs.
- Best for navigation and deterministic ID-first traversal.
Mutating Operations (only after confirm write)
- Create:
remnote-cli create "Title" --content "Body" --text
- Update:
remnote-cli update <rem-id> --title "New Title" --append "More text" --text
- Journal:
remnote-cli journal "Entry text" --text
Failure Handling
- Daemon unreachable (exit code
2): start daemon and retry.
- Bridge not connected: open RemNote, open right sidebar plugin panel, verify connected state, retry
status.
- Version mismatch warning: align
remnote-cli version to plugin 0.x minor line, then restart daemon.
Operational Notes
- JSON output is default and preferred for automation.
--text is useful for quick human checks.
- Reference command docs when unsure:
https://github.com/robert7/remnote-cli/blob/main/docs/guides/command-reference.md
1---2name: remnote3description: Read/search RemNote via `remnote-cli` by default; require `confirm write` before create/update/journal.4---5
6# RemNote via remnote-cli
7
8Use this skill when a user wants to read or manage RemNote content from the command line with `remnote-cli`.
9
10If the user needs navigation across the whole knowledge base (for example: "where does this topic live in my notes?",
11"start from top-level note tree", "map main note groups"), prefer `remnote-kb-navigation` when it is available and
12customized for the current user, then return to this skill for general command policy and write gating. If
13`remnote-kb-navigation` is not available (or still template/unconfigured), continue with this skill alone and ask for
14skill customization when needed.
15
16## Example Conversation Triggers
17
18- "Check if RemNote bridge is connected."
19- "Search my RemNote for sprint notes."
20- "Find notes tagged weekly-review in RemNote."
21- "Read this RemNote by ID: `<rem-id>`."
22- "Map the top-level structure of my whole RemNote knowledge base."
23- "Create a RemNote note titled X with this content." (requires `confirm write`)
24- "Append this to my journal in RemNote." (requires `confirm write`)
25
26## Preconditions (required)
27
281. RemNote Automation Bridge plugin is installed in RemNote.
292. Plugin install path is one of:
30 - Marketplace install guide:
31 `https://github.com/robert7/remnote-mcp-bridge/blob/main/docs/guides/install-plugin-via-marketplace-beginner.md`
32 - Local dev plugin guide:
33 `https://github.com/robert7/remnote-mcp-bridge/blob/main/docs/guides/development-run-plugin-locally.md`
343. `remnote-cli` is installed on the same machine where OpenClaw runs.
35 - Preferred install: `npm install -g remnote-cli`
364. RemNote is open in browser/app (`https://www.remnote.com/`).
375. `remnote-cli` daemon is running (`remnote-cli daemon start`).
386. The plugin panel is open in RemNote right sidebar and shows connected status.
39
40If any precondition is missing, stop and fix setup first.
41
42## Read-First Safety Policy
43
44- Default to read-only flows: `status`, `search`, `search-tag`, `read`, `daemon status`.
45- Do not run mutating commands by default.
46- For writes (`create`, `update`, `journal`), require the exact phrase `confirm write` from the user in the same turn.
47- If `confirm write` is not present, ask for confirmation and do not execute writes.
48
49## Command Invocation Rule (critical)
50
51- Run exactly one `remnote-cli` command per execution.
52- Invoke `remnote-cli` directly; do not chain shell commands.
53- Do not use `&&`, `|`, `;`, subshells (`(...)`), command substitution (`$()`), `xargs`, or `echo` pipelines.
54- WRONG: `remnote-cli daemon status --text && echo '---' && remnote-cli status --text`
55- RIGHT: `remnote-cli daemon status --text`
56- RIGHT: `remnote-cli status --text`
57- Reason: command chaining can trigger exec approvals and break automation flow.
58
59## Compatibility Check (mandatory before real work)
60
611. Check daemon and bridge connectivity:
62 - `remnote-cli daemon status --text`
63 - `remnote-cli status --text`
642. Confirm plugin panel is open in right sidebar and connected.
653. Read versions from `remnote-cli status --text`:
66 - active plugin version
67 - CLI version
68 - `version_warning` (if present)
694. Enforce version rule: bridge plugin and `remnote-cli` must be the same `0.x` minor line (prefer exact match).
705. If mismatch:
71 - Install matching CLI version:
72 - Exact: `npm install -g remnote-cli@<plugin-version>`
73 - Or same minor line (`0.<minor>.x`) when exact is unavailable.
74 - Re-run:
75 - `remnote-cli --version`
76 - `remnote-cli daemon restart` is not available, so run:
77 - `remnote-cli daemon stop`
78 - `remnote-cli daemon start`
79 - `remnote-cli status --text`
80
81## Core Commands
82
83### Health and Connectivity
84
85- `remnote-cli daemon start`
86- `remnote-cli daemon status --text`
87- `remnote-cli status --text`
88
89### Read-Only Operations (default)
90
91- Search notes: `remnote-cli search "query"`
92- Search by tag: `remnote-cli search-tag "tag"`
93- Read note by Rem ID: `remnote-cli read <rem-id>`
94- Optional text mode: add `--text`
95
96## Output Mode and Traversal Strategy
97
98- Use JSON output (default) for navigation, multi-step retrieval, and any flow that needs IDs for follow-up reads.
99- Use `--text` only for plain human summarization of exactly one note when no further navigation is needed.
100- For structure traversal, start with shallow reads and high child limit:
101 - `remnote-cli read <rem-id> --depth 1 --child-limit 500`
102
103### `--include-content` modes
104
105- `--include-content markdown`:
106 - Returns readable rendered child content.
107 - Best for summarization/presentation.
108 - Markdown content does not provide child IDs required for further navigation.
109- `--include-content structured`:
110 - Returns hierarchical `contentStructured` data including child rem IDs.
111 - Best for navigation and deterministic ID-first traversal.
112
113### Mutating Operations (only after `confirm write`)
114
115- Create: `remnote-cli create "Title" --content "Body" --text`
116- Update: `remnote-cli update <rem-id> --title "New Title" --append "More text" --text`
117- Journal: `remnote-cli journal "Entry text" --text`
118
119## Failure Handling
120
121- Daemon unreachable (exit code `2`): start daemon and retry.
122- Bridge not connected: open RemNote, open right sidebar plugin panel, verify connected state, retry `status`.
123- Version mismatch warning: align `remnote-cli` version to plugin `0.x` minor line, then restart daemon.
124
125## Operational Notes
126
127- JSON output is default and preferred for automation.
128- `--text` is useful for quick human checks.
129- Reference command docs when unsure:
130 `https://github.com/robert7/remnote-cli/blob/main/docs/guides/command-reference.md`