🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

STM Assistant

by @mouserider

Professional email outreach on behalf of your human. Branded signatures, Reply-To routing, CC tracking.

Versionv1.0.0
Downloads563
Installs3
TERMINAL
clawhub install stm-assistant

πŸ“– About This Skill


name: stm-assistant version: 1.0.0 description: "Professional email outreach on behalf of your human. Branded signatures, Reply-To routing, CC tracking." metadata: {"openclaw":{"emoji":"πŸ“§","requires":{"bins":["mcporter"]}}} user-invocable: true

STM Assistant β€” Send on Behalf

Send professional emails from a dedicated agent inbox on behalf of your human.

Setup Requirements

1. Agent inbox β€” via AgentMail (mcporter call agentmail.create_inbox displayName="Your Assistant") or any SMTP provider 2. Hosted signature logo β€” small image (60x60px), hosted URL (Gmail blocks inline base64) 3. mcporter with agentmail configured

Sending Protocol

Every outbound email MUST:

1. CC your human β€” no exceptions. They see every email you send. 2. Set Reply-To to your human's real email address β€” replies go to them, not the agent inbox. 3. Use full legal name on formal correspondence. 4. Include the branded signature:

Human's Full Name
human@email.com
Sent on behalf of [Name] by their personal assistant

Approval Rules

  • Routine emails (scheduling, follow-ups, informational) β€” send directly, notify human after
  • High-stakes emails (legal, financial, employment, first contact with important people) β€” draft and get explicit approval before sending
  • When in doubt β†’ ask first
  • Sending via AgentMail

    mcporter call agentmail.send_message \
      inboxId=your-agent@agentmail.to \
      to='[{"email":"recipient@example.com","name":"Recipient Name"}]' \
      subject="Subject Line" \
      html="

    Email body with signature

    " \ cc='[{"email":"human@email.com"}]'

    Important: Use text (plain text) or html (formatted) parameters. Never body or htmlBody β€” those don't exist and produce empty emails.

    Inbox Monitoring

    Check for replies on a regular cycle (heartbeat or cron):

    mcporter call agentmail.list_threads inboxId=your-agent@agentmail.to limit=5 labels='["unread"]'
    

    After processing a reply:

    mcporter call agentmail.update_message \
      inboxId=your-agent@agentmail.to \
      messageId=MSG_ID \
      removeLabels='["unread"]' \
      addLabels='["processed"]'
    

    Always mark processed emails. Unread inbox = broken assistant.