Skip to main content

Messaging Platforms

Messaging Channels let you talk to the resident Anyy Gateway from services you already use. Each configured account has its own connection profile, credentials, and direct/group access policy.

Supported Platforms

The current channel catalog implements:

PlatformConnection
TelegramBot API long polling
DiscordBot Gateway
SlackSocket Mode
WhatsAppBusiness Cloud API webhook
FacebookMessenger webhook
EmailIMAP receive and SMTP send over TLS
SMSTwilio webhook and REST
DingTalkStream connection
Feishu / LarkLong connection or webhook
Weixin / WeChatQR-confirmed long polling
QQ BotWebSocket Gateway
IRCTLS and SASL
LINEMessaging API webhook

The installed setup wizard is authoritative for the running version. A platform that the wizard marks unsupported cannot be activated by guessing configuration fields.

Quick Setup

Run:

anyy setup channel

Open one platform directly when appropriate:

anyy setup channel telegram

Choose a platform, account, connection profile, and access policy, then provide the requested identifiers and credentials. Review the staged action before confirming it.

When setup writes a Channel action, it installs and starts the resident Gateway service if needed. Messaging depends on that runtime remaining available.

Verify local chat first

Test the main model in Dashboard or the TUI before adding a Channel. This separates model/provider failures from messaging connection problems.

Configure an Account in Dashboard

Open Dashboard → Channel. Use the filters to switch between:

  • Configured — accounts already connected to this Profile; and
  • Available — platform adapters Anyy can configure.

Then:

  1. Select a platform.
  2. Enter a stable account ID. Use a different ID for each account on the same platform.
  3. Choose a supported connection profile.
  4. Complete its platform-specific fields.
  5. Review direct-message and group access policies.
  6. Save.

Sensitive fields use Anyy's credential handling. When editing an existing account, leaving an existing secret field blank keeps its saved value instead of revealing it in the form.

Weixin QR login

Weixin / WeChat exposes its login flow directly in Dashboard. Scan the QR code, approve the login, and wait for Anyy to bind the confirmed identity. A QR code is valid for five minutes.

Reauthentication must match the account

When reauthenticating Weixin, scan with the same identity. To use a different identity, remove the old account and create a new one.

Read Account Health

Open a configured account to inspect:

  • desired and current runtime state;
  • healthy, degraded, unhealthy, or unknown status;
  • latest inbound and outbound activity;
  • delivery acknowledgements and retry/backoff state;
  • authentication or permission errors;
  • media capabilities; and
  • redacted configuration values.

A degraded account may still work partially. Follow the displayed remediation before repeatedly reloading it.

Access and Pairing

Available controls depend on the platform. Common policies include:

  • direct messages disabled, paired, allowlisted, or open;
  • group messages restricted to mentions or approved rooms; and
  • pairing approval for a new sender.

Use the narrowest policy that fits your workflow. Connecting an account does not authorize every sender to use Anyy.

List pending requests:

anyy channel pairing list

Approve or reject one:

anyy channel pairing approve --request REQUEST_ID
anyy channel pairing reject --request REQUEST_ID

Approve by interactively entered code when supported:

anyy channel pairing approve --prompt-code \
--channel telegram --account personal

Revoke a grant:

anyy channel pairing revoke --grant GRANT_ID --reason "access removed"

A pending pairing request expires after one hour. The resident Channel manager checks pairing maintenance every five minutes, so an expired request can remain visible briefly but cannot be approved into a grant. Ask the sender to create a fresh request instead.

Pairing grants access to your assistant

Verify the person, account, and platform. A grant can expose conversations and enabled assistant capabilities under that Channel's policy.

Diagnose and Reload

Inspect a platform without changing it:

anyy channel doctor telegram

Reload Channel configuration in the running Gateway:

anyy channel reload

Use Dashboard Reload after an out-of-band configuration change or when a healthy saved account has not been picked up. Add --json to supported doctor, pairing-list, or reload commands when another program needs structured output.

Remove an Account

Use the account detail page in Dashboard. Removal deletes the Channel configuration and Anyy-managed credentials for that account; it does not delete messages from the external platform.

Removal may complete asynchronously. Wait for the account to disappear or refresh its observed state before configuring the same identity again.

Non-Interactive Setup

Automation can configure one platform with:

anyy setup channel CHANNEL \
[--set INPUT=VALUE] \
[--sensitive-fd INPUT=FD] \
[--external-locator-fd INPUT=FD]

Use --set for non-secret input. Use --sensitive-fd so credentials do not appear in process arguments or shell history. --external-locator-fd supplies externally managed secret locations when the selected field supports them.

The selected platform/profile defines the exact input IDs. Do not copy field names from another Channel.

Run anyy setup channel --help for the complete interactive and non-interactive options.

Webhook Platforms

WhatsApp, Facebook, SMS, LINE, and the Feishu webhook profile require inbound webhook delivery. Setup asks for platform-specific callback fields and verification credentials.

Provide a stable reachable HTTPS path, protect signature-verification secrets, and complete the provider-side event subscriptions and permissions reported by setup or doctor.

Security Tips

  • Keep bot tokens and signing secrets out of shell history and screenshots.
  • Start with pairing or an allowlist before choosing an open DM policy.
  • Verify webhook endpoints and provider-side permissions.
  • Remove Anyy and provider credentials when retiring an account.
  • Treat external messages and attachments as untrusted input.

Troubleshooting

ProblemFix
Account saves but never receivesRun anyy gateway status and anyy channel doctor CHANNEL
A long-poll or WebSocket Channel disconnectsCorrect credentials or network access, then run anyy channel reload
Webhook verification failsCheck public HTTPS routing, callback URL, signature secret, and provider subscription
Messages arrive but replies failCheck outbound permission, delivery status, and platform rate limits
Direct message is ignoredReview DM policy, pairing state, and allowlist
Group message is ignoredReview group policy and whether a mention is required
Wrong person was pairedRevoke the grant immediately and review active access
Runtime does not reflect a saved changeSelect Reload or run anyy channel reload