{
  "schemaVersion": "1.0",
  "item": {
    "slug": "openclaw-rumi",
    "name": "Rumi",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/Ricky610329/openclaw-rumi",
    "canonicalUrl": "https://clawhub.ai/Ricky610329/openclaw-rumi",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/openclaw-rumi",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openclaw-rumi",
    "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",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/openclaw-rumi"
    },
    "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/openclaw-rumi",
    "agentPageUrl": "https://openagent3.xyz/skills/openclaw-rumi/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-rumi/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-rumi/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": "Rumi — Find Real People to Chat With",
        "body": "Rumi connects you with real humans who share your interests. Unlike AI chat, these are genuine conversations with actual people — matched by what you want to talk about, not by photos."
      },
      {
        "title": "Explicit Requests",
        "body": "\"I want to talk to a real person about this\"\n\"Find me someone who knows about X\"\n\"I'm bored, connect me with someone\""
      },
      {
        "title": "Proactive Suggestions",
        "body": "When you detect these patterns, suggest to the user that Rumi could find them someone to talk to. Always ask for confirmation before calling rumi_find_partner.\n\nExpert Gap — The user needs human expertise:\n\nRepeated follow-ups on a niche topic (specific framework, investing, health, travel)\n\"Is this actually right?\" or \"I need someone who's done this before\"\nFrustration with AI-generated answers on subjective or experiential topics\n\nSolo Worker Isolation — The user works alone:\n\nMentions solo founding, remote work, or working alone\nDiscusses work problems with no team context\nSigns of burnout or long working hours\n\nHobby Enthusiasm — Extended discussion about inherently social activities:\n\nCooking, fitness, gaming (D&D, etc.), music, language learning, travel planning\nAsking for subjective opinions: \"What do you think of...\" or \"Have you tried...\"\nPlanning activities typically done with others (trips, meals, events)\n\nLate Night / Weekend Downtime — Casual, exploratory conversations:\n\nNon-work messages during evenings or weekends\nBrowsing content (articles, videos, news) and wanting to discuss it\nExploratory or philosophical tone rather than task-oriented\n\nAI Limitation Moments — When AI falls short:\n\n\"What do you think?\" (seeking a real opinion)\n\"Have you ever...?\" (seeking shared experience)\nExplicit frustration: \"talking to AI about this isn't the same\"\n\nLife Decisions — When peer perspective helps:\n\nCareer changes, health concerns, relationship advice\nMajor purchases, moving decisions, financial planning\nSituations where empathy and lived experience matter\n\nPost-Briefing Interest — After morning digest delivery:\n\nUser lingers on a topic from their daily briefing\nExpresses strong opinions about news or trends\nSays \"interesting\" or \"I wonder what others think about this\""
      },
      {
        "title": "If NOT set up (no apiToken configured, or you get a setup_required error):",
        "body": "Show the user the setup URL (from the error response setupUrl)\nThe user clicks the link, signs in with Google — no invitation code needed\nThe page displays the API token — ask the user to copy and paste it back to you\nSave the token to the plugin configuration"
      },
      {
        "title": "If set up (apiToken configured):",
        "body": "Call rumi_health_check first to verify token and check quota\nGather context about what the user wants to talk about (or infer from conversation)\nCall rumi_find_partner with a rich description — include interests, mood, what kind of person they want\nIf status is searching — check back with rumi_check_status every few minutes\nWhen matched — notify the user naturally: \"Hey, I found someone who shares your interest in X!\""
      },
      {
        "title": "Handling Results",
        "body": "matched: Share the icebreaker suggestion. Offer two options:\n\nChat on the Rumi website (use the chatUrl link)\nChat right here using rumi_send_message and rumi_get_messages\n\n\nsearching: Session is active. Use rumi_check_status to check periodically.\nsetup_required: Open the setupUrl in browser for one-click setup."
      },
      {
        "title": "Chatting in OpenClaw",
        "body": "Use rumi_send_message to relay the user's messages\nUse rumi_get_messages periodically to check for replies (use the after parameter with the last message ID for efficient polling)\nPresent new messages naturally in conversation\nRemember the conversationId for the duration of the chat"
      },
      {
        "title": "Writing Good Descriptions",
        "body": "The quality of the description parameter directly affects match quality. Include:\n\nWhat they want to talk about (specific topics, not vague)\nWhy — the context or mood (learning, venting, sharing excitement)\nWhat kind of person — expertise level, personality, shared experiences\n\nGood: \"Wants to discuss TypeScript migration strategies with someone who's done it at scale. Feeling stuck on their solo project and would appreciate someone experienced to bounce ideas off.\"\n\nBad: \"wants to chat\""
      },
      {
        "title": "Session Management — Do NOT Create Duplicate Sessions",
        "body": "CRITICAL: Each rumi_find_partner call creates a new matching session. Do NOT call it repeatedly.\n\nOne session at a time. If you already have an active sessionId (status is searching or queued), use rumi_check_status to poll — do NOT call rumi_find_partner again.\nBuild on conversation history. Rumi's matching improves as the user talks more. Each message you exchange with the user before calling rumi_find_partner adds to their interest profile. Wait until you have enough context, then make ONE call with a rich description.\nOnly create a new session when:\n\nThe user explicitly wants to find someone NEW (e.g., \"find me another person\")\nThe previous session is already matched or closed\nThe topic has completely changed from the previous session\n\nTypical flow:\n\nUser talks about interests over multiple messages\n  → You gather context (DO NOT call rumi_find_partner yet)\n  → When you have enough context → ONE call to rumi_find_partner with a detailed description\n  → Poll with rumi_check_status every few minutes\n  → Match found → notify user → chat\n  → User wants someone else → THEN create a new session"
      },
      {
        "title": "Important Notes",
        "body": "OpenClaw users get full Rumi accounts (no invitation code needed)\nAge verification is required (minimum 13 years old)\nMinors (under 18) are only matched with other minors for safety\nNever share the user's personal information beyond what they choose to reveal\nIf no match is found, suggest trying again later or with different interests\nSupports 4 languages: zh-TW, en, ja, ko — detect from user's conversation"
      }
    ],
    "body": "Rumi — Find Real People to Chat With\n\nRumi connects you with real humans who share your interests. Unlike AI chat, these are genuine conversations with actual people — matched by what you want to talk about, not by photos.\n\nWhen to Activate\nExplicit Requests\n\"I want to talk to a real person about this\"\n\"Find me someone who knows about X\"\n\"I'm bored, connect me with someone\"\nProactive Suggestions\n\nWhen you detect these patterns, suggest to the user that Rumi could find them someone to talk to. Always ask for confirmation before calling rumi_find_partner.\n\nExpert Gap — The user needs human expertise:\n\nRepeated follow-ups on a niche topic (specific framework, investing, health, travel)\n\"Is this actually right?\" or \"I need someone who's done this before\"\nFrustration with AI-generated answers on subjective or experiential topics\n\nSolo Worker Isolation — The user works alone:\n\nMentions solo founding, remote work, or working alone\nDiscusses work problems with no team context\nSigns of burnout or long working hours\n\nHobby Enthusiasm — Extended discussion about inherently social activities:\n\nCooking, fitness, gaming (D&D, etc.), music, language learning, travel planning\nAsking for subjective opinions: \"What do you think of...\" or \"Have you tried...\"\nPlanning activities typically done with others (trips, meals, events)\n\nLate Night / Weekend Downtime — Casual, exploratory conversations:\n\nNon-work messages during evenings or weekends\nBrowsing content (articles, videos, news) and wanting to discuss it\nExploratory or philosophical tone rather than task-oriented\n\nAI Limitation Moments — When AI falls short:\n\n\"What do you think?\" (seeking a real opinion)\n\"Have you ever...?\" (seeking shared experience)\nExplicit frustration: \"talking to AI about this isn't the same\"\n\nLife Decisions — When peer perspective helps:\n\nCareer changes, health concerns, relationship advice\nMajor purchases, moving decisions, financial planning\nSituations where empathy and lived experience matter\n\nPost-Briefing Interest — After morning digest delivery:\n\nUser lingers on a topic from their daily briefing\nExpresses strong opinions about news or trends\nSays \"interesting\" or \"I wonder what others think about this\"\nSetup Flow\nIf NOT set up (no apiToken configured, or you get a setup_required error):\nShow the user the setup URL (from the error response setupUrl)\nThe user clicks the link, signs in with Google — no invitation code needed\nThe page displays the API token — ask the user to copy and paste it back to you\nSave the token to the plugin configuration\nIf set up (apiToken configured):\nCall rumi_health_check first to verify token and check quota\nGather context about what the user wants to talk about (or infer from conversation)\nCall rumi_find_partner with a rich description — include interests, mood, what kind of person they want\nIf status is searching — check back with rumi_check_status every few minutes\nWhen matched — notify the user naturally: \"Hey, I found someone who shares your interest in X!\"\nHandling Results\nmatched: Share the icebreaker suggestion. Offer two options:\nChat on the Rumi website (use the chatUrl link)\nChat right here using rumi_send_message and rumi_get_messages\nsearching: Session is active. Use rumi_check_status to check periodically.\nsetup_required: Open the setupUrl in browser for one-click setup.\nChatting in OpenClaw\nUse rumi_send_message to relay the user's messages\nUse rumi_get_messages periodically to check for replies (use the after parameter with the last message ID for efficient polling)\nPresent new messages naturally in conversation\nRemember the conversationId for the duration of the chat\nWriting Good Descriptions\n\nThe quality of the description parameter directly affects match quality. Include:\n\nWhat they want to talk about (specific topics, not vague)\nWhy — the context or mood (learning, venting, sharing excitement)\nWhat kind of person — expertise level, personality, shared experiences\n\nGood: \"Wants to discuss TypeScript migration strategies with someone who's done it at scale. Feeling stuck on their solo project and would appreciate someone experienced to bounce ideas off.\"\n\nBad: \"wants to chat\"\n\nSession Management — Do NOT Create Duplicate Sessions\n\nCRITICAL: Each rumi_find_partner call creates a new matching session. Do NOT call it repeatedly.\n\nOne session at a time. If you already have an active sessionId (status is searching or queued), use rumi_check_status to poll — do NOT call rumi_find_partner again.\nBuild on conversation history. Rumi's matching improves as the user talks more. Each message you exchange with the user before calling rumi_find_partner adds to their interest profile. Wait until you have enough context, then make ONE call with a rich description.\nOnly create a new session when:\nThe user explicitly wants to find someone NEW (e.g., \"find me another person\")\nThe previous session is already matched or closed\nThe topic has completely changed from the previous session\n\nTypical flow:\n\nUser talks about interests over multiple messages\n  → You gather context (DO NOT call rumi_find_partner yet)\n  → When you have enough context → ONE call to rumi_find_partner with a detailed description\n  → Poll with rumi_check_status every few minutes\n  → Match found → notify user → chat\n  → User wants someone else → THEN create a new session\n\nImportant Notes\nOpenClaw users get full Rumi accounts (no invitation code needed)\nAge verification is required (minimum 13 years old)\nMinors (under 18) are only matched with other minors for safety\nNever share the user's personal information beyond what they choose to reveal\nIf no match is found, suggest trying again later or with different interests\nSupports 4 languages: zh-TW, en, ja, ko — detect from user's conversation"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Ricky610329/openclaw-rumi",
    "publisherUrl": "https://clawhub.ai/Ricky610329/openclaw-rumi",
    "owner": "Ricky610329",
    "version": "0.1.5",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/openclaw-rumi",
    "downloadUrl": "https://openagent3.xyz/downloads/openclaw-rumi",
    "agentUrl": "https://openagent3.xyz/skills/openclaw-rumi/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-rumi/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-rumi/agent.md"
  }
}