Running bots inside deltachat

Many features require bots, but they don’t require “complicated” bots. I think it would be very useful to be able to run bots, aka automatic treatment of messages, directly inside deltachat:

  • Telegram-like channels (Can we have channels feature like telegram?) can be done with a bot that sends messages to everyone but discards all incoming messages
  • Individual bots, like downloader, AI, text to image, voice to image, Mastodon bridge… will only take instructions from me and talk to me, they will handle potentially private data so I’d rather use something I trust than something public

For many if not all of these usecases there’s no need for an always-on computer running somewhere, I can do it from my own device. But if I really want to I can install DeltaChat anywhere and run the bot there.

There’s a huge security window to look at here because the bot should be able to basically do anything

1 Like

The ability to host client-side bots (bots running in a Deltachat client) would have advantages.

  1. easier to host and test bots
  2. harder to block bots (especially if they offered their own source code)
  3. harder to do traffic analysis (is the target talking to a human or a bot? is the target a bot?)
  4. easier to add experimental functionality to the client

The main disadvantage, bot downtime, could be mitigated where necessary by hash-based indexes of identical sibling bots, and people sending bot contacts to one another. At least one of the identical bots should be up almost all the time.

Security
Bots could be public, private (ignoring messages not from whitelisted contacts), or internal (interacting only with the accounts of their host client). Internal bots could implement functions (like link preview, backup, reading aloud, transcribing, etc.) if added to a chat.

Bots could be given permissions (access the internet through this proxy, write to this local directory, access microphone or speaker).

Examples

  • A mailman bot could run a public mailing list.
  • A vacation-response bot
  • A screening bot could transfer a new contact made via a posted QR code to a new account with an unpublished key

I have experimented with this in the past, I created channels and also anonymous super-groups via bot in the middle, and it was extremely slow, because the bot has to forward (and encrypt) the message to every member, having one bot per group/channel it could kinda work but still worse than the actual channels that are going to be added

Speed does sound like a showstopper for some types of bot, then. I’ll look forward to the new channels (which I’m guessing will be P2P, not like mesh-networked bots, where each bot sends a message to two or more other bots via mail servers).

I assume channels will not have the functionality proposed for individual, internal bots.