Technology Apr 19, 2026 · 3 min read

I just gave my local AI desktop companion access to the outside world (Telegram, Discord, Emailโ€ฆ)

For the last weeks, Iโ€™ve been building a local-first AI desktop companion that lives on your screen. It can: see your screen understand your context execute actions on your system But it had one big limitation: It only lived on your desktop So I changed that. ๐ŸŒ Intro...

DE
DEV Community
by southy404
I just gave my local AI desktop companion access to the outside world (Telegram, Discord, Emailโ€ฆ)

For the last weeks, Iโ€™ve been building a local-first AI desktop companion that lives on your screen.

It can:

  • see your screen
  • understand your context
  • execute actions on your system

But it had one big limitation:

It only lived on your desktop

So I changed that.

๐ŸŒ Introducing: Blob Connectors

I just added a new layer to OpenBlob:

๐Ÿ‘‰ Blob Connectors

A lightweight Python bridge that connects your local AI to the outside world:

  • Telegram
  • Discord
  • Slack
  • Email

๐Ÿง  What this actually means

You can now do things like:

  • send open spotify via Telegram โ†’ Spotify opens on your PC
  • ask a question in Discord โ†’ your local model answers
  • send an email โ†’ get a contextual AI reply
  • control your desktop from anywhere

And the important part:

Itโ€™s still local-first

โš™๏ธ How it works

All channels go through the same pipeline:

Telegram / Discord / Slack / Email
              โ”‚
        Blob Connectors (Python)
              โ”‚
    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
    โ”‚                   โ”‚
OpenBlob running?    Ollama fallback
(localhost)         (local model)
              โ”‚
        Command Router
              โ”‚
      Desktop action

Everything becomes a normalized Message object.

No matter where it comes from.

๐Ÿ”Œ Why this matters

This is not just โ€œadding integrationsโ€.

This is the first real step towards:

an AI system that exists beyond a single interface

Now OpenBlob is:

  • not just UI-bound
  • not just voice-bound
  • not just desktop-bound

It becomes a distributed interface to your own system

๐Ÿงฉ Built for extension

Each connector implements the same interface:

class MyConnector(BlobConnector):
    async def receive_message(self, raw) -> Message | None: ...
    async def send_response(self, original: Message, response: str) -> None: ...
    async def start(self) -> None: ...

So adding new platforms is trivial:

  • WhatsApp
  • Matrix
  • iMessage (maybe ๐Ÿ‘€)
  • anything with an API

๐Ÿ”’ Still local-first

Important:

  • runs on your machine
  • uses your local models (Ollama)
  • no required cloud backend
  • transparent behavior

If OpenBlob is offline:

โ†’ it automatically falls back to local reasoning

๐Ÿšง Current state

  • works across all channels
  • still early
  • structure is stabilizing
  • lots of room for improvement

๐Ÿ”ฎ What this unlocks next

This connector layer enables things like:

  • shared memory across all channels
  • persistent conversations
  • multi-agent systems
  • calendar / tool integrations
  • real remote control of your system

๐Ÿค If you want to build with me

This is probably the best moment to jump in.

You can:

  • build new connectors
  • improve routing / memory
  • design better UX
  • experiment with AI behaviors

๐Ÿ‘‰ https://github.com/southy404/openblob

๐Ÿ’ก Final thoughts

This is mainly an infrastructure update.

By introducing a connector layer and a normalized message interface, OpenBlob becomes:

  • easier to extend
  • easier to integrate
  • less tied to a single UI

Itโ€™s a small surface change โ€” but a significant internal shift.

DE
Source

This article was originally published by DEV Community and written by southy404.

Read original article on DEV Community
Back to Discover

Reading List