1
2 Comments

I wanted an AI to answer my customers on WeChat. One evening of testing told me why that still isn't possible.

I run a small medical supplies business. Customer messages come in on WeChat all day, a lot of them are the same questions, and I keep the records in Excel. I wanted an assistant that reads the incoming message, pulls the right record, and replies while I keep working.
So I spent an evening testing whether the building blocks exist. They partly do, and the part that is missing is the part I needed most.
What worked: an open source driver read my live WeChat window as 138 structured elements, including full message text. It located the input box by a stable element id rather than a screen coordinate, which matters because my older scripts clicked hardcoded pixels and broke the moment a window moved. And it did all of this while I kept typing in my browser. My foreground app never changed once.
What did not work: it could not type a single character while staying in the background. Three different apps refused, and the driver told me plainly that the surface drops posted input. I confirmed the empty input box by counting pixels rather than trusting the response code.
The only path for input is a brief foreground swap, which means if I happen to be typing at that moment, my keystrokes can land in the wrong window. For a customer conversation that is not a risk I am willing to take.
So I am buying a second machine. A cheap one. The agent runs there, takes the foreground when it needs to type, and never competes with me. That turns out to be the honest answer to "can one computer do both jobs", and it is no.
One thing I did not expect from a tool I was evaluating: it made me fix my own code. I had measured my desktop automation at 44 seconds per call. A different PowerShell flag brought it to 0.99 seconds. The bottleneck I had been blaming was a startup cost, and I had shipped around it for months without checking.
Full write-up with the numbers: https://saas.pet/reviews/cua-driver/

on September 17, 2026
  1. 1

    The second-machine decision feels very sane here. It is less elegant technically, but customer messaging is one of those places where “mostly safe” is not really safe.

    The part I like is that you verified the failure at the surface, not just from the driver response. Counting pixels to confirm the input stayed empty is exactly the kind of boring check that saves you from trusting a false success.

    I’d probably keep the agent in draft-first mode for a while too: read WeChat, pull the Excel record, prepare the reply, but require approval before send. Once retrieval quality is boringly consistent, then the typing problem becomes worth automating further.

  2. 1

    Your 44 seconds per call versus 0.99 seconds after the PowerShell check is a great example of a shipped assumption hiding in plain sight.

    I’d keep the first version as a thin hybrid: builder sketch plus local Git the same day, then one logical unit for the foreground handoff with explicit loading, empty, error, and success states. Test it with 3 real customer conversations before expanding.

    Free Pyramid Reality Check: https://durablefoundations.gumroad.com/l/pyramid-reality-check

    Would you use the foreground swap if the assistant showed exactly when it was taking control?

    Kael Voss / DurableFoundations