{
  "schemaVersion": "1.0",
  "item": {
    "slug": "sogcli",
    "name": "Sog",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/visionik/sogcli",
    "canonicalUrl": "https://clawhub.ai/visionik/sogcli",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/sogcli",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=sogcli",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CHANGELOG.md",
      "README.md",
      "SKILL.md",
      "Taskfile.yml",
      "cmd/sog/main.go",
      "internal/caldav/client.go"
    ],
    "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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/sogcli"
    },
    "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/sogcli",
    "agentPageUrl": "https://openagent3.xyz/skills/sogcli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/sogcli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/sogcli/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "sog — Standards Ops Gadget",
        "body": "CLI for IMAP/SMTP/CalDAV/CardDAV/WebDAV.\nOpen-standards alternative to gog (Google) and mog (Microsoft)."
      },
      {
        "title": "Quick Start",
        "body": "sog auth add you@fastmail.com --discover\nsog auth test\nsog mail list"
      },
      {
        "title": "Global Flags",
        "body": "--account, -a    Account email to use ($SOG_ACCOUNT)\n--json           JSON output (for scripting)\n--plain          TSV output (parseable)\n--force          Skip confirmations\n--no-input       Never prompt (CI mode)\n--verbose, -v    Debug logging\n--ai-help        Detailed help text"
      },
      {
        "title": "Authentication",
        "body": "sog auth add <email> [flags]\n  --discover       Auto-discover servers from DNS\n  --imap-host      IMAP server hostname\n  --imap-port      IMAP port (default: 993)\n  --smtp-host      SMTP server hostname\n  --smtp-port      SMTP port (default: 587)\n  --caldav-url     CalDAV server URL\n  --carddav-url    CardDAV server URL\n  --webdav-url     WebDAV server URL\n  --password       Password (stored in keychain)\n\nsog auth list                    # List accounts\nsog auth test [email]            # Test connection\nsog auth remove <email>          # Remove account\nsog auth password <email>        # Set protocol-specific passwords\n  --imap, --smtp, --caldav, --carddav, --webdav"
      },
      {
        "title": "Mail (IMAP/SMTP)",
        "body": "sog mail list [folder]\n  --max N          Maximum messages (default: 20)\n  --unseen         Only unread messages\n\nsog mail get <uid>\n  --headers        Headers only\n  --raw            Raw RFC822 format\n\nsog mail search <query>\n  # IMAP SEARCH syntax: FROM, TO, SUBJECT, SINCE, BEFORE, etc.\n  # Example: sog mail search \"FROM john SINCE 1-Jan-2026\"\n\nsog mail send --to <email> --subject <text> [flags]\n  --to             Recipient(s)\n  --cc             CC recipient(s)\n  --bcc            BCC recipient(s)\n  --subject        Subject line\n  --body           Message body\n  --body-file      Read body from file (- for stdin)\n  --body-html      HTML body content\n\nsog mail reply <uid> --body <text>\nsog mail forward <uid> --to <email>\nsog mail move <uid> <folder>\nsog mail copy <uid> <folder>\nsog mail flag <uid> <flag>       # Flags: seen, flagged, answered, deleted\nsog mail unflag <uid> <flag>\nsog mail delete <uid>"
      },
      {
        "title": "Folders",
        "body": "sog folders list\nsog folders create <name>\nsog folders delete <name>\nsog folders rename <old> <new>"
      },
      {
        "title": "Drafts",
        "body": "sog drafts list\nsog drafts create [flags]        # Same flags as mail send\nsog drafts send <uid>\nsog drafts delete <uid>"
      },
      {
        "title": "Calendar (CalDAV)",
        "body": "sog cal list [calendar]\n  --from           Start date (default: today)\n  --to             End date (default: +30d)\n  --max            Maximum events\n\nsog cal get <uid>\nsog cal search <query>           # Search in title/description/location\nsog cal today [calendar]\nsog cal week [calendar]\n\nsog cal create <title> --start <datetime> [flags]\n  --start          Start time (YYYY-MM-DDTHH:MM or YYYY-MM-DD for all-day)\n  --end            End time\n  --duration       Duration (1h, 30m)\n  --location       Location\n  --description    Description\n\nsog cal update <uid> [flags]     # Same flags as create\nsog cal delete <uid>\nsog cal calendars                # List calendars"
      },
      {
        "title": "Contacts (CardDAV)",
        "body": "sog contacts list [address-book]\n  --max            Maximum contacts\n\nsog contacts get <uid>\nsog contacts search <query>      # Search name/email/phone\n\nsog contacts create <name> [flags]\n  -e, --email      Email address(es)\n  -p, --phone      Phone number(s)\n  --org            Organization\n  --title          Job title\n  --note           Note\n\nsog contacts update <uid> [flags]  # Same flags as create\nsog contacts delete <uid>\nsog contacts books               # List address books"
      },
      {
        "title": "Tasks (CalDAV VTODO)",
        "body": "sog tasks list [list]\n  --all            Include completed tasks\n\nsog tasks add <title> [flags]\n  --due            Due date (YYYY-MM-DD)\n  -p, --priority   Priority (1-9, 1=highest)\n  -d, --description Description\n\nsog tasks get <uid>\nsog tasks update <uid> [flags]   # Same flags as add\nsog tasks done <uid>             # Mark complete\nsog tasks undo <uid>             # Mark incomplete\nsog tasks delete <uid>\nsog tasks clear                  # Delete all completed tasks\nsog tasks due <date>             # Tasks due by date\nsog tasks overdue                # Overdue tasks\nsog tasks lists                  # List task lists"
      },
      {
        "title": "Files (WebDAV)",
        "body": "sog drive ls [path]\n  -l               Long format with details\n  --all            Show hidden files\n\nsog drive get <path>             # Get file metadata\nsog drive download <remote> [local]\nsog drive upload <local> [remote]\nsog drive mkdir <path>\nsog drive delete <path>\nsog drive move <src> <dst>\nsog drive copy <src> <dst>\nsog drive cat <path>             # Output file to stdout"
      },
      {
        "title": "Meeting Invites (iTIP/iMIP)",
        "body": "sog invite send <summary> <attendees>... --start <datetime> [flags]\n  --start          Start time\n  --duration       Duration (default: 1h)\n  --location       Location\n  --description    Description\n\nsog invite reply <file> --status <accept|decline|tentative>\n  --comment        Optional comment\n\nsog invite cancel <uid> <attendees>...\nsog invite parse <file>          # Parse .ics file\nsog invite preview <summary> <attendees>... --start <datetime>"
      },
      {
        "title": "IMAP IDLE",
        "body": "sog idle [folder]                # Watch for new mail (push notifications)\n  --timeout        Timeout in seconds"
      },
      {
        "title": "Output Formats",
        "body": "Default: Human-readable colored output\n--json: One JSON object per line (JSONL)\n--plain: Tab-separated values (TSV)"
      },
      {
        "title": "Examples",
        "body": "# List recent emails\nsog mail list --max 10\n\n# Send an email\nsog mail send --to user@example.com --subject \"Hello\" --body \"Hi there\"\nsog mail send --to user@example.com --subject \"Report\" --body-file report.md\ncat draft.txt | sog mail send --to user@example.com --subject \"Hi\" --body-file -\n\n# Today's calendar\nsog cal today\n\n# Create a meeting with invite\nsog invite send \"Team Sync\" alice@example.com bob@example.com \\\n  --start \"2026-01-25T14:00\" --duration 30m --location \"Zoom\"\n\n# Add a task\nsog tasks add \"Review PR\" --due 2026-01-26 -p 1\n\n# Upload a file\nsog drive upload report.pdf /documents/\n\n# Search contacts\nsog contacts search \"John\""
      },
      {
        "title": "Tested Providers",
        "body": "Fastmail ✅ (full support)\n\nOther standards-compliant providers should work but have not been tested yet."
      },
      {
        "title": "Credential Storage",
        "body": "Passwords are stored securely in the native system credential store:\n\nPlatformBackendmacOSKeychainWindowsWindows Credential ManagerLinux/BSDD-Bus Secret Service (GNOME Keyring, KWallet)\n\nSupports separate passwords per protocol (IMAP, SMTP, CalDAV, CardDAV, WebDAV)."
      },
      {
        "title": "Notes",
        "body": "Set SOG_ACCOUNT=you@example.com to avoid repeating --account\nPart of the Ops Gadget family: gog (Google), mog (Microsoft), sog (Standards)"
      }
    ],
    "body": "sog — Standards Ops Gadget\n\nCLI for IMAP/SMTP/CalDAV/CardDAV/WebDAV. Open-standards alternative to gog (Google) and mog (Microsoft).\n\nQuick Start\nsog auth add you@fastmail.com --discover\nsog auth test\nsog mail list\n\nGlobal Flags\n--account, -a    Account email to use ($SOG_ACCOUNT)\n--json           JSON output (for scripting)\n--plain          TSV output (parseable)\n--force          Skip confirmations\n--no-input       Never prompt (CI mode)\n--verbose, -v    Debug logging\n--ai-help        Detailed help text\n\nAuthentication\nsog auth add <email> [flags]\n  --discover       Auto-discover servers from DNS\n  --imap-host      IMAP server hostname\n  --imap-port      IMAP port (default: 993)\n  --smtp-host      SMTP server hostname\n  --smtp-port      SMTP port (default: 587)\n  --caldav-url     CalDAV server URL\n  --carddav-url    CardDAV server URL\n  --webdav-url     WebDAV server URL\n  --password       Password (stored in keychain)\n\nsog auth list                    # List accounts\nsog auth test [email]            # Test connection\nsog auth remove <email>          # Remove account\nsog auth password <email>        # Set protocol-specific passwords\n  --imap, --smtp, --caldav, --carddav, --webdav\n\nMail (IMAP/SMTP)\nsog mail list [folder]\n  --max N          Maximum messages (default: 20)\n  --unseen         Only unread messages\n\nsog mail get <uid>\n  --headers        Headers only\n  --raw            Raw RFC822 format\n\nsog mail search <query>\n  # IMAP SEARCH syntax: FROM, TO, SUBJECT, SINCE, BEFORE, etc.\n  # Example: sog mail search \"FROM john SINCE 1-Jan-2026\"\n\nsog mail send --to <email> --subject <text> [flags]\n  --to             Recipient(s)\n  --cc             CC recipient(s)\n  --bcc            BCC recipient(s)\n  --subject        Subject line\n  --body           Message body\n  --body-file      Read body from file (- for stdin)\n  --body-html      HTML body content\n\nsog mail reply <uid> --body <text>\nsog mail forward <uid> --to <email>\nsog mail move <uid> <folder>\nsog mail copy <uid> <folder>\nsog mail flag <uid> <flag>       # Flags: seen, flagged, answered, deleted\nsog mail unflag <uid> <flag>\nsog mail delete <uid>\n\nFolders\nsog folders list\nsog folders create <name>\nsog folders delete <name>\nsog folders rename <old> <new>\n\nDrafts\nsog drafts list\nsog drafts create [flags]        # Same flags as mail send\nsog drafts send <uid>\nsog drafts delete <uid>\n\nCalendar (CalDAV)\nsog cal list [calendar]\n  --from           Start date (default: today)\n  --to             End date (default: +30d)\n  --max            Maximum events\n\nsog cal get <uid>\nsog cal search <query>           # Search in title/description/location\nsog cal today [calendar]\nsog cal week [calendar]\n\nsog cal create <title> --start <datetime> [flags]\n  --start          Start time (YYYY-MM-DDTHH:MM or YYYY-MM-DD for all-day)\n  --end            End time\n  --duration       Duration (1h, 30m)\n  --location       Location\n  --description    Description\n\nsog cal update <uid> [flags]     # Same flags as create\nsog cal delete <uid>\nsog cal calendars                # List calendars\n\nContacts (CardDAV)\nsog contacts list [address-book]\n  --max            Maximum contacts\n\nsog contacts get <uid>\nsog contacts search <query>      # Search name/email/phone\n\nsog contacts create <name> [flags]\n  -e, --email      Email address(es)\n  -p, --phone      Phone number(s)\n  --org            Organization\n  --title          Job title\n  --note           Note\n\nsog contacts update <uid> [flags]  # Same flags as create\nsog contacts delete <uid>\nsog contacts books               # List address books\n\nTasks (CalDAV VTODO)\nsog tasks list [list]\n  --all            Include completed tasks\n\nsog tasks add <title> [flags]\n  --due            Due date (YYYY-MM-DD)\n  -p, --priority   Priority (1-9, 1=highest)\n  -d, --description Description\n\nsog tasks get <uid>\nsog tasks update <uid> [flags]   # Same flags as add\nsog tasks done <uid>             # Mark complete\nsog tasks undo <uid>             # Mark incomplete\nsog tasks delete <uid>\nsog tasks clear                  # Delete all completed tasks\nsog tasks due <date>             # Tasks due by date\nsog tasks overdue                # Overdue tasks\nsog tasks lists                  # List task lists\n\nFiles (WebDAV)\nsog drive ls [path]\n  -l               Long format with details\n  --all            Show hidden files\n\nsog drive get <path>             # Get file metadata\nsog drive download <remote> [local]\nsog drive upload <local> [remote]\nsog drive mkdir <path>\nsog drive delete <path>\nsog drive move <src> <dst>\nsog drive copy <src> <dst>\nsog drive cat <path>             # Output file to stdout\n\nMeeting Invites (iTIP/iMIP)\nsog invite send <summary> <attendees>... --start <datetime> [flags]\n  --start          Start time\n  --duration       Duration (default: 1h)\n  --location       Location\n  --description    Description\n\nsog invite reply <file> --status <accept|decline|tentative>\n  --comment        Optional comment\n\nsog invite cancel <uid> <attendees>...\nsog invite parse <file>          # Parse .ics file\nsog invite preview <summary> <attendees>... --start <datetime>\n\nIMAP IDLE\nsog idle [folder]                # Watch for new mail (push notifications)\n  --timeout        Timeout in seconds\n\nOutput Formats\nDefault: Human-readable colored output\n--json: One JSON object per line (JSONL)\n--plain: Tab-separated values (TSV)\nExamples\n# List recent emails\nsog mail list --max 10\n\n# Send an email\nsog mail send --to user@example.com --subject \"Hello\" --body \"Hi there\"\nsog mail send --to user@example.com --subject \"Report\" --body-file report.md\ncat draft.txt | sog mail send --to user@example.com --subject \"Hi\" --body-file -\n\n# Today's calendar\nsog cal today\n\n# Create a meeting with invite\nsog invite send \"Team Sync\" alice@example.com bob@example.com \\\n  --start \"2026-01-25T14:00\" --duration 30m --location \"Zoom\"\n\n# Add a task\nsog tasks add \"Review PR\" --due 2026-01-26 -p 1\n\n# Upload a file\nsog drive upload report.pdf /documents/\n\n# Search contacts\nsog contacts search \"John\"\n\nTested Providers\nFastmail ✅ (full support)\n\nOther standards-compliant providers should work but have not been tested yet.\n\nCredential Storage\n\nPasswords are stored securely in the native system credential store:\n\nPlatform\tBackend\nmacOS\tKeychain\nWindows\tWindows Credential Manager\nLinux/BSD\tD-Bus Secret Service (GNOME Keyring, KWallet)\n\nSupports separate passwords per protocol (IMAP, SMTP, CalDAV, CardDAV, WebDAV).\n\nNotes\nSet SOG_ACCOUNT=you@example.com to avoid repeating --account\nPart of the Ops Gadget family: gog (Google), mog (Microsoft), sog (Standards)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/visionik/sogcli",
    "publisherUrl": "https://clawhub.ai/visionik/sogcli",
    "owner": "visionik",
    "version": "0.3.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/sogcli",
    "downloadUrl": "https://openagent3.xyz/downloads/sogcli",
    "agentUrl": "https://openagent3.xyz/skills/sogcli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/sogcli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/sogcli/agent.md"
  }
}