home / skills / openclaw / skills / sogcli

sogcli skill

/skills/visionik/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 sogcli

Review the files below or copy the command above to add this skill to your agents.

Files (38)
SKILL.md
7.1 KB
---
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)

Overview

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.

How this skill works

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).

When to use it

  • Automating mail operations (search, send, reply, move) from scripts or CI.
  • Managing calendar events, meeting invites, and CalDAV tasks from the terminal.
  • Syncing or backing up contacts and address books via CardDAV.
  • Uploading, downloading and organizing files on WebDAV servers.
  • Monitoring new mail with IMAP IDLE for lightweight notifications.

Best practices

  • Set SOG_ACCOUNT environment variable to avoid repeating --account across commands.
  • Use --json or --plain when writing scripts to ensure stable, parseable output.
  • Prefer protocol-specific passwords and store them via the built-in keychain/backends.
  • Use --discover for initial account setup, then test connections with sog auth test.
  • Run potentially destructive commands (delete, move) with --verbose first to preview.

Example use cases

  • List recent unread messages: sog mail list --unseen --max 20
  • Send a prepared message from a file: cat body.md | sog mail send --to [email protected] --subject 'Report' --body-file -
  • Create a meeting invite and send iTIP invites: sog invite send 'Team Sync' [email protected] --start 2026-01-25T14:00 --duration 30m
  • Backup an address book: sog contacts list --max 1000 --json > contacts.json
  • Upload a report to WebDAV: sog drive upload report.pdf /documents/reports/

FAQ

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.