원클릭으로
add-email
Add email (IMAP/SMTP) as a channel. Use when the user says "add email", "connect email", "set up email", or "email channel".
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Add email (IMAP/SMTP) as a channel. Use when the user says "add email", "connect email", "set up email", or "email channel".
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Manage scheduled tasks for Talon personas. Use when the user says "add schedule", "create schedule", "list schedules", "remove schedule", "scheduled task", or "cron job".
Create a Talon persona/profile interactively from a natural-language description. Use when the user says "create a profile", "add a persona", "new background agent", "create a persona", "add a profile", or "background agent profile".
Use when setting up Talon from the starter bundle (docker-based install) for the first time, adding channels or personas, changing the AI provider, or troubleshooting. Triggers on phrases like "set up talon", "configure talon", "add channel", "switch provider", "talonctl …".
Use when setting up Talon for the first time, adding channels or personas to an existing config, or running validation. Also use when the user says "configure talon", "add a channel", "add a persona", "add provider", "set up the daemon", "add schedule", or "configure providers".
Add Discord as a channel. Use when the user says "add discord", "connect discord", "set up discord bot", or "discord channel".
Add Slack as a channel. Use when the user says "add slack", "connect slack", "set up slack bot", or "slack channel".
| name | add-email |
| description | Add email (IMAP/SMTP) as a channel. Use when the user says "add email", "connect email", "set up email", or "email channel". |
| triggers | ["add email","connect email","email channel","imap","smtp"] |
Walk the user through adding email (IMAP inbound + SMTP outbound) as a channel to Talon. One question at a time.
Check if an email channel already exists:
npx talonctl list-channels
Ask: "Which email provider will you use? (Gmail, Outlook, custom IMAP/SMTP)"
- Go to myaccount.google.com/apppasswords
- You need 2FA enabled to see this page
- Create an app password for "Mail"
- Copy the 16-character password (spaces don't matter)
Settings:
- IMAP:
imap.gmail.com, port 993, TLS- SMTP:
smtp.gmail.com, port 587, STARTTLS
- Go to account.microsoft.com/security
- Create an app password (requires 2FA)
Settings:
- IMAP:
outlook.office365.com, port 993, TLS- SMTP:
smtp.office365.com, port 587, STARTTLS
Ask for:
Ask for a channel name (suggest my-email), then:
npx talonctl add-channel --name <name> --type email
Then edit talond.yaml to set the config section. Example for Gmail:
config:
imapHost: imap.gmail.com
imapPort: 993
imapUser: bot@gmail.com
imapPass: ${EMAIL_PASSWORD}
imapSecure: true
smtpHost: smtp.gmail.com
smtpPort: 587
smtpUser: bot@gmail.com
smtpPass: ${EMAIL_PASSWORD}
smtpSecure: false
fromAddress: "Talon Bot <bot@gmail.com>"
Tell the user to add to .env:
EMAIL_PASSWORD=your-app-password
Ask: "Do you want to restrict which email addresses can talk to the bot?"
If yes, add to the config:
config:
# ... smtp/imap settings ...
allowedSenders:
- "user1@example.com"
- "user2@example.com"
Without this, anyone who emails the address can interact with the bot.
npx talonctl list-personas
Ask which persona to bind, then:
npx talonctl bind --persona <name> --channel <channel-name>
npx talonctl env-check
npx talonctl doctor
Tell the user:
- Make sure talond is running (or restart it)
- Send an email to the bot's address
- You should get a reply within 30-60 seconds (depends on polling interval)
If it doesn't work:
journalctl --user -u talond -f
| Problem | Fix |
|---|---|
| IMAP connection refused | Check host/port/TLS settings; some providers block "less secure apps" |
| SMTP auth failed | Use app-specific password, not account password |
| Gmail: "Application-specific password required" | Enable 2FA, then create an app password |
| Long delay before response | Default polling is 30s; lower pollingIntervalMs for faster response |
| Bot replies to spam | Add allowedSenders to config |
| HTML formatting broken | Talon sends HTML emails; check if email client renders HTML |
channels:
- name: my-email
type: email
config:
# IMAP (inbound)
imapHost: imap.gmail.com # Required
imapPort: 993 # Required
imapUser: bot@gmail.com # Required
imapPass: ${EMAIL_PASSWORD} # Required
imapSecure: true # Required (true = TLS, false = STARTTLS)
# SMTP (outbound)
smtpHost: smtp.gmail.com # Required
smtpPort: 587 # Required
smtpUser: bot@gmail.com # Required
smtpPass: ${EMAIL_PASSWORD} # Required
smtpSecure: false # Required (false for port 587, true for 465)
# General
fromAddress: "Talon <bot@gmail.com>" # Required
allowedSenders: # Optional — restrict who can email the bot
- "user@example.com"
pollingIntervalMs: 30000 # Optional (default: 30000 = 30s)
mailbox: "INBOX" # Optional (default: INBOX)