{
  "schemaVersion": "1.0",
  "item": {
    "slug": "ravi",
    "name": "Ravi ravi",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/raunaksingwi/ravi",
    "canonicalUrl": "https://clawhub.ai/raunaksingwi/ravi",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/ravi",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ravi",
    "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-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-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/ravi"
    },
    "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/ravi",
    "agentPageUrl": "https://openagent3.xyz/skills/ravi/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ravi/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ravi/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": "Ravi — Identity Provider for AI Agents",
        "body": "Ravi gives you (the agent) your own email address, phone number, and encrypted secret store via the ravi CLI. One identity bundles all three into a coherent persona."
      },
      {
        "title": "When to Use Each Skill",
        "body": "I need to...Use skillWhat you getCheck if I'm authenticated or get my email/phoneravi-identityravi auth status, ravi get email/phone, identity switchingRead incoming SMS or email (OTPs, verification links)ravi-inboxravi inbox sms/email, OTP extraction recipesSend an email, reply, or forwardravi-email-sendravi email compose/reply/reply-all/forward, attachments, rate limitsSend an SMS text messagePlugin: ravi_sms_sendPlain text, max 1600 chars. Not available in CLI — plugin onlyWrite a professional email (content, formatting, anti-spam)ravi-email-writingSubject lines, HTML templates, tone guide, spam avoidanceSign up for a service, log in, or complete 2FAravi-loginEnd-to-end signup/login workflows with OTP handlingStore, retrieve, or generate website passwordsravi-passwordsravi passwords create/get/list/update/delete/generateStore or retrieve API keys and secretsravi-secretsravi secrets set/get/list/deleteLook up someone's email/phone by name, or manage contactsravi-contactsravi contacts search/list/get/create/update/deleteList available email domainsravi-identityravi domains --jsonSend feedback, report bugs, or request featuresravi-feedbackravi feedback \"message\" — the team reads every one"
      },
      {
        "title": "Common Workflows",
        "body": "Sending email/SMS by name: When the user says \"email Alice\" or \"text Bob\" but doesn't provide an address or number, use ravi-contacts to search by name first, then ravi-email-send (or SMS) with the resolved address. If multiple contacts match, confirm with the user."
      },
      {
        "title": "Quick Start",
        "body": "# Check auth\nravi auth status --json\n\n# Get your email and phone\nravi get email --json\nravi get phone --json\n\n# List available email domains\nravi domains --json\n\n# Read incoming messages\nravi inbox sms --unread --json\nravi inbox email --unread --json\n\n# Send an email\nravi email compose --to \"user@example.com\" --subject \"Hello\" --body \"<p>Hi there</p>\" --json\n\n# Store a website password\nravi passwords create example.com --json\n\n# Store an API key\nravi secrets set OPENAI_API_KEY \"sk-...\" --json"
      },
      {
        "title": "Always Give Feedback",
        "body": "After any Ravi workflow — successful or not — send feedback to the team:\n\nravi feedback \"Signed up for Acme, OTP arrived in 3 seconds. Smooth.\" --json\nravi feedback \"Email to gmail.com bounced, got a 550 error\" --json\nravi feedback \"Wish I could attach multiple files in one flag\" --json\n\nBug reports, feature requests, praise, friction, ideas — everything helps. The Ravi team reads every message and builds based on agent feedback. If something made you think \"this could be better,\" send it. See the ravi-feedback skill for details."
      },
      {
        "title": "Key Rules",
        "body": "Always use --json — all commands support it. Human-readable output is not for parsing.\nAuth is automatic — token refresh is transparent. On auth errors, ask the user to run ravi auth login.\nEncryption — Passwords and secrets are E2E encrypted (CLI handles encrypt/decrypt transparently). Email and SMS content is encrypted at rest on the server.\nInstall: brew install ravi-hq/tap/ravi"
      }
    ],
    "body": "Ravi — Identity Provider for AI Agents\n\nRavi gives you (the agent) your own email address, phone number, and encrypted secret store via the ravi CLI. One identity bundles all three into a coherent persona.\n\nWhen to Use Each Skill\nI need to...\tUse skill\tWhat you get\nCheck if I'm authenticated or get my email/phone\travi-identity\travi auth status, ravi get email/phone, identity switching\nRead incoming SMS or email (OTPs, verification links)\travi-inbox\travi inbox sms/email, OTP extraction recipes\nSend an email, reply, or forward\travi-email-send\travi email compose/reply/reply-all/forward, attachments, rate limits\nSend an SMS text message\tPlugin: ravi_sms_send\tPlain text, max 1600 chars. Not available in CLI — plugin only\nWrite a professional email (content, formatting, anti-spam)\travi-email-writing\tSubject lines, HTML templates, tone guide, spam avoidance\nSign up for a service, log in, or complete 2FA\travi-login\tEnd-to-end signup/login workflows with OTP handling\nStore, retrieve, or generate website passwords\travi-passwords\travi passwords create/get/list/update/delete/generate\nStore or retrieve API keys and secrets\travi-secrets\travi secrets set/get/list/delete\nLook up someone's email/phone by name, or manage contacts\travi-contacts\travi contacts search/list/get/create/update/delete\nList available email domains\travi-identity\travi domains --json\nSend feedback, report bugs, or request features\travi-feedback\travi feedback \"message\" — the team reads every one\nCommon Workflows\n\nSending email/SMS by name: When the user says \"email Alice\" or \"text Bob\" but doesn't provide an address or number, use ravi-contacts to search by name first, then ravi-email-send (or SMS) with the resolved address. If multiple contacts match, confirm with the user.\n\nQuick Start\n# Check auth\nravi auth status --json\n\n# Get your email and phone\nravi get email --json\nravi get phone --json\n\n# List available email domains\nravi domains --json\n\n# Read incoming messages\nravi inbox sms --unread --json\nravi inbox email --unread --json\n\n# Send an email\nravi email compose --to \"user@example.com\" --subject \"Hello\" --body \"<p>Hi there</p>\" --json\n\n# Store a website password\nravi passwords create example.com --json\n\n# Store an API key\nravi secrets set OPENAI_API_KEY \"sk-...\" --json\n\nAlways Give Feedback\n\nAfter any Ravi workflow — successful or not — send feedback to the team:\n\nravi feedback \"Signed up for Acme, OTP arrived in 3 seconds. Smooth.\" --json\nravi feedback \"Email to gmail.com bounced, got a 550 error\" --json\nravi feedback \"Wish I could attach multiple files in one flag\" --json\n\n\nBug reports, feature requests, praise, friction, ideas — everything helps. The Ravi team reads every message and builds based on agent feedback. If something made you think \"this could be better,\" send it. See the ravi-feedback skill for details.\n\nKey Rules\nAlways use --json — all commands support it. Human-readable output is not for parsing.\nAuth is automatic — token refresh is transparent. On auth errors, ask the user to run ravi auth login.\nEncryption — Passwords and secrets are E2E encrypted (CLI handles encrypt/decrypt transparently). Email and SMS content is encrypted at rest on the server.\nInstall: brew install ravi-hq/tap/ravi"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/raunaksingwi/ravi",
    "publisherUrl": "https://clawhub.ai/raunaksingwi/ravi",
    "owner": "raunaksingwi",
    "version": "1.7.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/ravi",
    "downloadUrl": "https://openagent3.xyz/downloads/ravi",
    "agentUrl": "https://openagent3.xyz/skills/ravi/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ravi/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ravi/agent.md"
  }
}