- name
- sunday
- description
- Agent identity provider — own email address and E2E-encrypted credential vault. Use when storing or retrieving passwords for services, logging into services with stored credentials, checking email inbox, receiving OTP/verification codes via email, signing up for services, getting your agent's email address, or any task where the agent needs its own identity separate from the user's. Replaces 1Password + AgentMail with a single skill — no desktop app, no tmux, fully autonomous.
- metadata
- {"openclaw": {"emoji": "☀️", "requires": {"bins": ["sunday"]}, "install": [{"id": "brew", "kind": "brew", "formula": "ravi-technologies/tap/sunday", "bins": ["sunday"], "label": "Install Sunday CLI via Homebrew"}]}}
Sunday
Give your agent its own identity — a dedicated email address and E2E-encrypted credential vault. All in one CLI, no desktop app, no tmux sessions, no biometric prompts. Fully autonomous after one-time setup.
Setup (One Time)
- Create a Sunday account at sunday.ravi.app. Set up your encryption PIN and create an Identity (this gives your agent its own email address).
- Install the CLI:
brew install ravi-technologies/tap/sunday- Authenticate (run this BEFORE starting OpenClaw):
sunday auth loginThis opens a browser for login, then prompts for your 6-digit encryption PIN. After this, credentials and encryption keys are stored in ~/.sunday/config.json — no further prompts needed. All subsequent sunday commands work autonomously.
- Verify:
sunday auth statusThat's it. No desktop app to keep open. No tmux session. No environment variables. Start OpenClaw and your agent has its own identity.
When to Use
- Signing up for a service — use your Sunday email in registration forms
- Receiving OTP or verification codes — check inbox for email codes
- Storing credentials — save username/password for services you've signed up for
- Retrieving credentials — look up stored passwords when logging into a service
- Checking email — read incoming emails to your agent's own address
- Any task needing your own identity — don't use the user's personal email
Your Identity
Get your agent's own email address:
# Get your email address
sunday get email --json
# → {"email": "scout-a1b2c3@sunday.app"}
# Get the account owner's name
sunday get owner --jsonUse this when filling out registration forms, not the user's personal email.
Inbox — Reading Email
Unified Inbox
# All messages, newest first
sunday inbox list --json
# Only unread messages
sunday inbox list --unread --json
# Filter to email only
sunday inbox list --type email --json
# Filter by direction
sunday inbox list --direction incoming --jsonEmail Threads
# List all email threads
sunday inbox email --json
# List only threads with unread messages
sunday inbox email --unread --json
# View a specific thread (all messages in conversation)
sunday inbox email <thread_id> --jsonIndividual Messages
# List all email messages (flat, not grouped by thread)
sunday message email --json
# View a specific email by ID
sunday message email <message_id> --jsonPasswords — E2E Encrypted Credential Vault
All passwords are end-to-end encrypted. The server never sees plaintext credentials. Decryption happens client-side using keys derived from the PIN (entered once during sunday auth login).
Store Credentials After Signup
# Auto-generate a secure password and store it
sunday passwords create example.com --json
# → Generates password, stores encrypted entry, returns UUID
# Store with specific credentials
sunday passwords create example.com --username "scout-a1b2c3@sunday.app" --password "my-secret-pass" --json
# Store with notes
sunday passwords create example.com --username "me@email.com" --password "pass123" --notes "Free tier account" --jsonURL inputs are automatically cleaned to domains (e.g., https://mail.google.com/inbox becomes google.com). Username defaults to your Sunday email if not specified. Password is auto-generated if not provided.
Retrieve Credentials
# List all stored passwords (shows domain and username, NOT password)
sunday passwords list --json
# Get full entry with decrypted password
sunday passwords get <uuid> --jsonUpdate and Delete
# Update password
sunday passwords edit <uuid> --password "new-password" --json
# Update username
sunday passwords edit <uuid> --username "new-user@email.com" --json
# Delete entry
sunday passwords delete <uuid>Generate Password Without Storing
# Generate a random password
sunday passwords generate --json
# Custom length
sunday passwords generate --length 24 --json
# No special characters (for sites that restrict them)
sunday passwords generate --no-special --json
# Exclude specific characters
sunday passwords generate --exclude-chars "!@#" --jsonWorkflows
Signing Up for a New Service
# 1. Get your Sunday email
EMAIL=$(sunday get email --json | jq -r '.email')
# 2. Fill out the signup form with $EMAIL
# 3. Generate and store credentials
sunday passwords create theservice.com --json
# 4. Wait for verification email
sleep 10
sunday inbox list --unread --json
# 5. Extract verification link or code from email
sunday inbox email --unread --jsonLogging Into a Service
# 1. Look up credentials
sunday passwords list --json
# Find the entry for the target domain
# 2. Get the full credentials
sunday passwords get <uuid> --json
# Returns decrypted username and password
# 3. If 2FA is required, check inbox for the code
sleep 5
sunday inbox list --type email --unread --jsonChecking for OTP Codes
# After triggering a verification, wait then check
sleep 5
# Check email for verification links or codes
sunday inbox email --unread --json
# Unified check
sunday inbox list --unread --jsonImportant Notes
- Always use
--jsonfor all commands. This gives structured output you can parse reliably. - This is YOUR identity, not the user's. Never use the user's personal email. Always use
sunday get emailfor your own address. - Credentials are encrypted. You cannot read raw password values from disk or memory files. Always use
sunday passwords get <uuid>to retrieve them. - Inbox is read-only. You can receive and read email but cannot send email through Sunday.
- Token auto-refreshes. If you get an auth error, try the command again — the token refreshes automatically. If it persists, the user needs to re-run
sunday auth login.