{
  "schemaVersion": "1.0",
  "item": {
    "slug": "remnote",
    "name": "RemNote",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/robert7/remnote",
    "canonicalUrl": "https://clawhub.ai/robert7/remnote",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/remnote",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=remnote",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "remnote",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-08T03:40:49.014Z",
      "expiresAt": "2026-05-15T03:40:49.014Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=remnote",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=remnote",
        "contentDisposition": "attachment; filename=\"remnote-0.10.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "remnote"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/remnote"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/remnote",
    "agentPageUrl": "https://openagent3.xyz/skills/remnote/agent",
    "manifestUrl": "https://openagent3.xyz/skills/remnote/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/remnote/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "RemNote via remnote-cli",
        "body": "Use this skill when a user wants to read or manage RemNote content from the command line with remnote-cli.\n\nIf the user needs navigation across the whole knowledge base (for example: \"where does this topic live in my notes?\",\n\"start from top-level note tree\", \"map main note groups\"), prefer remnote-kb-navigation when it is available and\ncustomized for the current user, then return to this skill for general command policy and write gating. If\nremnote-kb-navigation is not available (or still template/unconfigured), continue with this skill alone and ask for\nskill customization when needed."
      },
      {
        "title": "Example Conversation Triggers",
        "body": "\"Check if RemNote bridge is connected.\"\n\"Search my RemNote for sprint notes.\"\n\"Find notes tagged weekly-review in RemNote.\"\n\"Read this RemNote by ID: <rem-id>.\"\n\"Map the top-level structure of my whole RemNote knowledge base.\"\n\"Create a RemNote note titled X with this content.\" (requires confirm write)\n\"Append this to my journal in RemNote.\" (requires confirm write)"
      },
      {
        "title": "Preconditions (required)",
        "body": "RemNote Automation Bridge plugin is installed in RemNote.\nPlugin install path is one of:\n\nMarketplace install guide:\nhttps://github.com/robert7/remnote-mcp-bridge/blob/main/docs/guides/install-plugin-via-marketplace-beginner.md\nLocal dev plugin guide:\nhttps://github.com/robert7/remnote-mcp-bridge/blob/main/docs/guides/development-run-plugin-locally.md\n\n\nremnote-cli is installed on the same machine where OpenClaw runs.\n\nPreferred install: npm install -g remnote-cli\n\n\nRemNote is open in browser/app (https://www.remnote.com/).\nremnote-cli daemon is running (remnote-cli daemon start).\nThe plugin panel is open in RemNote right sidebar and shows connected status.\n\nIf any precondition is missing, stop and fix setup first."
      },
      {
        "title": "Read-First Safety Policy",
        "body": "Default to read-only flows: status, search, search-tag, read, daemon status.\nDo not run mutating commands by default.\nFor writes (create, update, journal), require the exact phrase confirm write from the user in the same turn.\nIf confirm write is not present, ask for confirmation and do not execute writes."
      },
      {
        "title": "Command Invocation Rule (critical)",
        "body": "Run exactly one remnote-cli command per execution.\nInvoke remnote-cli directly; do not chain shell commands.\nDo not use &&, |, ;, subshells ((...)), command substitution ($()), xargs, or echo pipelines.\nWRONG: remnote-cli daemon status --text && echo '---' && remnote-cli status --text\nRIGHT: remnote-cli daemon status --text\nRIGHT: remnote-cli status --text\nReason: command chaining can trigger exec approvals and break automation flow."
      },
      {
        "title": "Write Payload Rule (allowlist-friendly)",
        "body": "For write commands, prefer file-based payload flags:\n\n--content-file <path|-> for create / journal\n--append-file <path|-> or --replace-file <path|-> for update\n\n\nKeep executed command strings short and predictable for OpenClaw allowlisting.\nInline --content / --append and positional journal [content] are discouraged except for very short single-line\ntext.\n- (stdin) is supported but discouraged by default in OpenClaw flows because command context can be less explicit."
      },
      {
        "title": "Compatibility Check (mandatory before real work)",
        "body": "Check daemon and bridge connectivity:\n\nremnote-cli daemon status --text\nremnote-cli status --text\n\n\nConfirm plugin panel is open in right sidebar and connected.\nRead versions from remnote-cli status --text:\n\nactive plugin version\nCLI version\nversion_warning (if present)\nwrite-policy flags: acceptWriteOperations, acceptReplaceOperation\n\n\nEnforce version rule: bridge plugin and remnote-cli must be the same 0.x minor line (prefer exact match).\nIf mismatch:\n\nInstall matching CLI version:\n\nExact: npm install -g remnote-cli@<plugin-version>\nOr same minor line (0.<minor>.x) when exact is unavailable.\n\n\nRe-run:\n\nremnote-cli --version\nremnote-cli daemon restart is not available, so run:\n\nremnote-cli daemon stop\nremnote-cli daemon start\n\n\nremnote-cli status --text"
      },
      {
        "title": "Health and Connectivity",
        "body": "remnote-cli daemon start\nremnote-cli daemon status --text\nremnote-cli status --text"
      },
      {
        "title": "Read-Only Operations (default)",
        "body": "Search notes: remnote-cli search \"query\"\nSearch by tag: remnote-cli search-tag \"tag\"\nRead note by Rem ID: remnote-cli read <rem-id>\nOptional text mode: add --text"
      },
      {
        "title": "Output Mode and Traversal Strategy",
        "body": "Use JSON output (default) for navigation, multi-step retrieval, and any flow that needs IDs for follow-up reads.\nUse --text only for plain human summarization of exactly one note when no further navigation is needed.\nFor structure traversal, start with shallow reads and high child limit:\n\nremnote-cli read <rem-id> --depth 1 --child-limit 500"
      },
      {
        "title": "--include-content modes",
        "body": "--include-content markdown:\n\nReturns readable rendered child content.\nBest for summarization/presentation.\nMarkdown content does not provide child IDs required for further navigation.\n\n\n--include-content structured:\n\nReturns hierarchical contentStructured data including child rem IDs.\nBest for navigation and deterministic ID-first traversal."
      },
      {
        "title": "Mutating Operations (only after confirm write)",
        "body": "Create (preferred): remnote-cli create \"Title\" --content-file /tmp/body.md --text\nUpdate (preferred): remnote-cli update <rem-id> --title \"New Title\" --append-file /tmp/append.md --text\nUpdate replace (destructive, preferred only with explicit user intent):\n\nremnote-cli update <rem-id> --replace-file /tmp/replacement.md --text\nremnote-cli update <rem-id> --replace \"\" --text (clear all direct children)\n\n\nJournal (preferred): remnote-cli journal --content-file /tmp/entry.md --text\nFallbacks (discouraged): inline flags or positional journal [content] for short single-line text only.\nSafety:\n\nNever combine append and replace flags in one command.\nRun replace only when acceptWriteOperations=true and acceptReplaceOperation=true from status.\nTreat replace as destructive and require the user to clearly request replace semantics."
      },
      {
        "title": "Failure Handling",
        "body": "Daemon unreachable (exit code 2): start daemon and retry.\nBridge not connected: open RemNote, open right sidebar plugin panel, verify connected state, retry status.\nVersion mismatch warning: align remnote-cli version to plugin 0.x minor line, then restart daemon."
      },
      {
        "title": "Operational Notes",
        "body": "JSON output is default and preferred for automation.\n--text is useful for quick human checks.\nReference command docs when unsure:\nhttps://github.com/robert7/remnote-cli/blob/main/docs/guides/command-reference.md"
      }
    ],
    "body": "RemNote via remnote-cli\n\nUse this skill when a user wants to read or manage RemNote content from the command line with remnote-cli.\n\nIf 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.\n\nExample Conversation Triggers\n\"Check if RemNote bridge is connected.\"\n\"Search my RemNote for sprint notes.\"\n\"Find notes tagged weekly-review in RemNote.\"\n\"Read this RemNote by ID: <rem-id>.\"\n\"Map the top-level structure of my whole RemNote knowledge base.\"\n\"Create a RemNote note titled X with this content.\" (requires confirm write)\n\"Append this to my journal in RemNote.\" (requires confirm write)\nPreconditions (required)\nRemNote Automation Bridge plugin is installed in RemNote.\nPlugin install path is one of:\nMarketplace install guide: https://github.com/robert7/remnote-mcp-bridge/blob/main/docs/guides/install-plugin-via-marketplace-beginner.md\nLocal dev plugin guide: https://github.com/robert7/remnote-mcp-bridge/blob/main/docs/guides/development-run-plugin-locally.md\nremnote-cli is installed on the same machine where OpenClaw runs.\nPreferred install: npm install -g remnote-cli\nRemNote is open in browser/app (https://www.remnote.com/).\nremnote-cli daemon is running (remnote-cli daemon start).\nThe plugin panel is open in RemNote right sidebar and shows connected status.\n\nIf any precondition is missing, stop and fix setup first.\n\nRead-First Safety Policy\nDefault to read-only flows: status, search, search-tag, read, daemon status.\nDo not run mutating commands by default.\nFor writes (create, update, journal), require the exact phrase confirm write from the user in the same turn.\nIf confirm write is not present, ask for confirmation and do not execute writes.\nCommand Invocation Rule (critical)\nRun exactly one remnote-cli command per execution.\nInvoke remnote-cli directly; do not chain shell commands.\nDo not use &&, |, ;, subshells ((...)), command substitution ($()), xargs, or echo pipelines.\nWRONG: remnote-cli daemon status --text && echo '---' && remnote-cli status --text\nRIGHT: remnote-cli daemon status --text\nRIGHT: remnote-cli status --text\nReason: command chaining can trigger exec approvals and break automation flow.\nWrite Payload Rule (allowlist-friendly)\nFor write commands, prefer file-based payload flags:\n--content-file <path|-> for create / journal\n--append-file <path|-> or --replace-file <path|-> for update\nKeep executed command strings short and predictable for OpenClaw allowlisting.\nInline --content / --append and positional journal [content] are discouraged except for very short single-line text.\n- (stdin) is supported but discouraged by default in OpenClaw flows because command context can be less explicit.\nCompatibility Check (mandatory before real work)\nCheck daemon and bridge connectivity:\nremnote-cli daemon status --text\nremnote-cli status --text\nConfirm plugin panel is open in right sidebar and connected.\nRead versions from remnote-cli status --text:\nactive plugin version\nCLI version\nversion_warning (if present)\nwrite-policy flags: acceptWriteOperations, acceptReplaceOperation\nEnforce version rule: bridge plugin and remnote-cli must be the same 0.x minor line (prefer exact match).\nIf mismatch:\nInstall matching CLI version:\nExact: npm install -g remnote-cli@<plugin-version>\nOr same minor line (0.<minor>.x) when exact is unavailable.\nRe-run:\nremnote-cli --version\nremnote-cli daemon restart is not available, so run:\nremnote-cli daemon stop\nremnote-cli daemon start\nremnote-cli status --text\nCore Commands\nHealth and Connectivity\nremnote-cli daemon start\nremnote-cli daemon status --text\nremnote-cli status --text\nRead-Only Operations (default)\nSearch notes: remnote-cli search \"query\"\nSearch by tag: remnote-cli search-tag \"tag\"\nRead note by Rem ID: remnote-cli read <rem-id>\nOptional text mode: add --text\nOutput Mode and Traversal Strategy\nUse JSON output (default) for navigation, multi-step retrieval, and any flow that needs IDs for follow-up reads.\nUse --text only for plain human summarization of exactly one note when no further navigation is needed.\nFor structure traversal, start with shallow reads and high child limit:\nremnote-cli read <rem-id> --depth 1 --child-limit 500\n--include-content modes\n--include-content markdown:\nReturns readable rendered child content.\nBest for summarization/presentation.\nMarkdown content does not provide child IDs required for further navigation.\n--include-content structured:\nReturns hierarchical contentStructured data including child rem IDs.\nBest for navigation and deterministic ID-first traversal.\nMutating Operations (only after confirm write)\nCreate (preferred): remnote-cli create \"Title\" --content-file /tmp/body.md --text\nUpdate (preferred): remnote-cli update <rem-id> --title \"New Title\" --append-file /tmp/append.md --text\nUpdate replace (destructive, preferred only with explicit user intent):\nremnote-cli update <rem-id> --replace-file /tmp/replacement.md --text\nremnote-cli update <rem-id> --replace \"\" --text (clear all direct children)\nJournal (preferred): remnote-cli journal --content-file /tmp/entry.md --text\nFallbacks (discouraged): inline flags or positional journal [content] for short single-line text only.\nSafety:\nNever combine append and replace flags in one command.\nRun replace only when acceptWriteOperations=true and acceptReplaceOperation=true from status.\nTreat replace as destructive and require the user to clearly request replace semantics.\nFailure Handling\nDaemon unreachable (exit code 2): start daemon and retry.\nBridge not connected: open RemNote, open right sidebar plugin panel, verify connected state, retry status.\nVersion mismatch warning: align remnote-cli version to plugin 0.x minor line, then restart daemon.\nOperational Notes\nJSON output is default and preferred for automation.\n--text is useful for quick human checks.\nReference command docs when unsure: https://github.com/robert7/remnote-cli/blob/main/docs/guides/command-reference.md"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/robert7/remnote",
    "publisherUrl": "https://clawhub.ai/robert7/remnote",
    "owner": "robert7",
    "version": "0.8.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/remnote",
    "downloadUrl": "https://openagent3.xyz/downloads/remnote",
    "agentUrl": "https://openagent3.xyz/skills/remnote/agent",
    "manifestUrl": "https://openagent3.xyz/skills/remnote/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/remnote/agent.md"
  }
}