home / skills / openclaw / skills / sogcli
This skill provides a CLI to manage IMAP/SMTP/CalDAV/CardDAV/WebDAV, enabling open-standards email and calendar tasks across accounts.
npx playbooks add skill openclaw/skills --skill sogcliReview the files below or copy the command above to add this skill to your agents.
---
name: sog
description: Standards Ops Gadget — CLI for IMAP/SMTP/CalDAV/CardDAV/WebDAV. Open-standards alternative to gog (Google) and mog (Microsoft).
homepage: https://github.com/visionik/sogcli
metadata: {"clawdbot":{"emoji":"📬","requires":{"bins":["sog"]},"install":[{"id":"go","kind":"go","package":"github.com/visionik/sogcli/cmd/sog@latest","bins":["sog"],"label":"Install sog (go install)"}]}}
---
# sog — Standards Ops Gadget
CLI for IMAP/SMTP/CalDAV/CardDAV/WebDAV.
Open-standards alternative to gog (Google) and mog (Microsoft).
## Quick Start
```bash
sog auth add [email protected] --discover
sog auth test
sog mail list
```
## Global Flags
```
--account, -a Account email to use ($SOG_ACCOUNT)
--json JSON output (for scripting)
--plain TSV output (parseable)
--force Skip confirmations
--no-input Never prompt (CI mode)
--verbose, -v Debug logging
--ai-help Detailed help text
```
## Authentication
```bash
sog auth add <email> [flags]
--discover Auto-discover servers from DNS
--imap-host IMAP server hostname
--imap-port IMAP port (default: 993)
--smtp-host SMTP server hostname
--smtp-port SMTP port (default: 587)
--caldav-url CalDAV server URL
--carddav-url CardDAV server URL
--webdav-url WebDAV server URL
--password Password (stored in keychain)
sog auth list # List accounts
sog auth test [email] # Test connection
sog auth remove <email> # Remove account
sog auth password <email> # Set protocol-specific passwords
--imap, --smtp, --caldav, --carddav, --webdav
```
## Mail (IMAP/SMTP)
```bash
sog mail list [folder]
--max N Maximum messages (default: 20)
--unseen Only unread messages
sog mail get <uid>
--headers Headers only
--raw Raw RFC822 format
sog mail search <query>
# IMAP SEARCH syntax: FROM, TO, SUBJECT, SINCE, BEFORE, etc.
# Example: sog mail search "FROM john SINCE 1-Jan-2026"
sog mail send --to <email> --subject <text> [flags]
--to Recipient(s)
--cc CC recipient(s)
--bcc BCC recipient(s)
--subject Subject line
--body Message body
--body-file Read body from file (- for stdin)
--body-html HTML body content
sog mail reply <uid> --body <text>
sog mail forward <uid> --to <email>
sog mail move <uid> <folder>
sog mail copy <uid> <folder>
sog mail flag <uid> <flag> # Flags: seen, flagged, answered, deleted
sog mail unflag <uid> <flag>
sog mail delete <uid>
```
## Folders
```bash
sog folders list
sog folders create <name>
sog folders delete <name>
sog folders rename <old> <new>
```
## Drafts
```bash
sog drafts list
sog drafts create [flags] # Same flags as mail send
sog drafts send <uid>
sog drafts delete <uid>
```
## Calendar (CalDAV)
```bash
sog cal list [calendar]
--from Start date (default: today)
--to End date (default: +30d)
--max Maximum events
sog cal get <uid>
sog cal search <query> # Search in title/description/location
sog cal today [calendar]
sog cal week [calendar]
sog cal create <title> --start <datetime> [flags]
--start Start time (YYYY-MM-DDTHH:MM or YYYY-MM-DD for all-day)
--end End time
--duration Duration (1h, 30m)
--location Location
--description Description
sog cal update <uid> [flags] # Same flags as create
sog cal delete <uid>
sog cal calendars # List calendars
```
## Contacts (CardDAV)
```bash
sog contacts list [address-book]
--max Maximum contacts
sog contacts get <uid>
sog contacts search <query> # Search name/email/phone
sog contacts create <name> [flags]
-e, --email Email address(es)
-p, --phone Phone number(s)
--org Organization
--title Job title
--note Note
sog contacts update <uid> [flags] # Same flags as create
sog contacts delete <uid>
sog contacts books # List address books
```
## Tasks (CalDAV VTODO)
```bash
sog tasks list [list]
--all Include completed tasks
sog tasks add <title> [flags]
--due Due date (YYYY-MM-DD)
-p, --priority Priority (1-9, 1=highest)
-d, --description Description
sog tasks get <uid>
sog tasks update <uid> [flags] # Same flags as add
sog tasks done <uid> # Mark complete
sog tasks undo <uid> # Mark incomplete
sog tasks delete <uid>
sog tasks clear # Delete all completed tasks
sog tasks due <date> # Tasks due by date
sog tasks overdue # Overdue tasks
sog tasks lists # List task lists
```
## Files (WebDAV)
```bash
sog drive ls [path]
-l Long format with details
--all Show hidden files
sog drive get <path> # Get file metadata
sog drive download <remote> [local]
sog drive upload <local> [remote]
sog drive mkdir <path>
sog drive delete <path>
sog drive move <src> <dst>
sog drive copy <src> <dst>
sog drive cat <path> # Output file to stdout
```
## Meeting Invites (iTIP/iMIP)
```bash
sog invite send <summary> <attendees>... --start <datetime> [flags]
--start Start time
--duration Duration (default: 1h)
--location Location
--description Description
sog invite reply <file> --status <accept|decline|tentative>
--comment Optional comment
sog invite cancel <uid> <attendees>...
sog invite parse <file> # Parse .ics file
sog invite preview <summary> <attendees>... --start <datetime>
```
## IMAP IDLE
```bash
sog idle [folder] # Watch for new mail (push notifications)
--timeout Timeout in seconds
```
## Output Formats
- Default: Human-readable colored output
- `--json`: One JSON object per line (JSONL)
- `--plain`: Tab-separated values (TSV)
## Examples
```bash
# List recent emails
sog mail list --max 10
# Send an email
sog mail send --to [email protected] --subject "Hello" --body "Hi there"
sog mail send --to [email protected] --subject "Report" --body-file report.md
cat draft.txt | sog mail send --to [email protected] --subject "Hi" --body-file -
# Today's calendar
sog cal today
# Create a meeting with invite
sog invite send "Team Sync" [email protected] [email protected] \
--start "2026-01-25T14:00" --duration 30m --location "Zoom"
# Add a task
sog tasks add "Review PR" --due 2026-01-26 -p 1
# Upload a file
sog drive upload report.pdf /documents/
# Search contacts
sog contacts search "John"
```
## Tested Providers
- **Fastmail** ✅ (full support)
Other standards-compliant providers should work but have not been tested yet.
## Credential Storage
Passwords are stored securely in the native system credential store:
| Platform | Backend |
|----------|---------|
| **macOS** | Keychain |
| **Windows** | Windows Credential Manager |
| **Linux/BSD** | D-Bus Secret Service (GNOME Keyring, KWallet) |
Supports separate passwords per protocol (IMAP, SMTP, CalDAV, CardDAV, WebDAV).
## Notes
- Set `[email protected]` to avoid repeating `--account`
- Part of the Ops Gadget family: gog (Google), mog (Microsoft), sog (Standards)
This skill provides a Standards Ops Gadget CLI for IMAP, SMTP, CalDAV, CardDAV and WebDAV. It is an open-standards alternative to cloud vendor CLIs, letting you manage mail, calendars, contacts, tasks and files from the terminal. The tool focuses on automation-friendly output and secure credential storage across platforms.
Use the sog CLI to add and test account credentials, then run commands to list, create, update or delete resources across protocols. It supports discovery of server settings, protocol-specific passwords, IMAP IDLE for push notifications, and multiple output formats (human, JSONL, TSV) for scripting. Credentials are stored in the native system credential store (Keychain, Windows Credential Manager, or D-Bus Secret Service).
Which providers are supported?
Any standards-compliant IMAP/SMTP/CalDAV/CardDAV/WebDAV provider should work; Fastmail is explicitly tested.
How are passwords secured?
Passwords are stored in the native platform credential store: Keychain on macOS, Windows Credential Manager on Windows, and D-Bus Secret Service on Linux/BSD.