by DonHopkins | 2025-04-16 15:21:49+00:00
I love Cursor. I use it daily. My company, Leela AI, is building on top of it — with MCP tools, Cursor and VSCode plugins, our own models, integrated real-time video analysis, and custom vision model development, query, and action scripting systems.

We're embedding "Active Curation" into the workflow: a semi-automated, human-guided loop that refines tickets, PRs, datasets, models, and scripted behaviors in response to real-world feedback. It's a synergistic, self-reinforcing system — every issue flagged by a user can improve detection, drive model updates, shape downstream actions, and tighten the entire product feedback loop across tools and teams.

So consider this tough love, from someone who cares:

Cursor totally missed the boat on the customer support hallucination fiasco. Not just by screwing up the response — that happens — but by failing to turn the whole mess into a golden opportunity to show they understand the limits of LLMs, and how to work with those limits instead of pretending they don’t exist.

They could have said: Here’s how we’re working to build an AI-powered support interface that actually works — not by faking human empathy, but by exposing a well-documented, typed, structured interface to the customer support system.

You know, like Majordomo did 30 years ago, like GitHub did 17 years ago, or like MCP does now — with explicit JSON schemas, embedded documentation, natural language prompts, and a high-bandwidth contract between the LLM and the real world. Set clear expectations. Minimize round trips. Reduce misunderstandings.

Instead? I got ghosted. No ticket number. No public way to track my issue. I wrote to enterprise support asking specifically for a ticket number — so I could route future messages properly and avoid clogging up the wrong inboxes — and got scolded by a bot for not including the very ticket number I was asking for, as if annoyed I'd gone around its back, and being dense and stubborn on purpose.

You play with the Promethean fire of AI impersonating people, that's what you get, is people reading more into it than it really means! It's what Will Wright calls the "Simulator Effect" and "Reverse Over-Engineering".

https://news.ycombinator.com/item?id=34573406

https://donhopkins.medium.com/designing-user-interfaces-to-s...

Eventually, after being detected trying to get through on the corporate email address, I was pawned off to the hoi polloi hi@cursor.com people-bot instead of the hoi aristoi enterprise@cursor.com business-bot. If that was a bot, it failed. If it was a human, they wrote like a bot. Either way, it's not working.

And yes — the biggest tell it wasn't a bot? It actually took hours to days to respond, especially on weekends and across business hours in different time zones. I literally anthropomorphized the bot ghosting into an understandably overworked work-life-balanced human taking a well earned weekend break, having a sunny poolside barbecue with friends, like in a Perky Pat Layout, too busy with living their best life to answer my simple question: "What is the issue ID you assigned to my case, so we can track your progress?" so I can self serve and provide additional information, without bothering everyone over email. The egg is on my face for being fooled by a customer support bot!

Cursor already integrates deeply with GitHub. Great. They never linked me to any ticketing system, so I assume they don't expose it to the public. That sucks. They should build customer support on top of GitHub issues, with an open-source MCP-style interface. Have an AI assistant that drafts responses, triages issues, suggests fixes, submits PRs (with tests!) — but never touches production or contacts customers without human review. Assist, don’t impersonate. Don’t fake understanding. Don’t pretend LLMs are people.

That’s not just safer — it’s a killer dev experience. Cursor users already vibe-code with wild abandon. Give them modular, extensible support tooling they can vibe-code into their own systems. Give them working plugins. Tickets-as-code. Support flows as JSON schemas. Prompt-driven behaviors with versioned specs. Be the IDE company that shows other companies how to build world-class in-product customer support using your own platform fully integrated with GitHub.

We’re doing this at Leela. We'd love to build on shared open foundations. But Cursor needs to show up — on GitHub, in issue threads, with examples, with tasty dogfood, and with real engineering commitment to community support.

Get your shit together, Cursor. You're sitting on the opportunity of a generation — and we’re rooting for you.

----

The Receipts:

----

Don to Sam, also personally addressed to the enterprise and security bots (explicitly asking for an issue ID, and if it's human or not):

>Hello, Sam.

>You have not followed up on your promise to reply to my issue.

>When will you reply?

>What is the issue ID you assigned to my case, so we can track your progress?

>Are you human or not?

>-Don

----

Enterprise and Security bots: (silence)

Sam to Don (ignoring my request for an issue ID, and my direct question asking it to disclose if it's human or not):

>Hi Don - I can see you have another open conversation about your subscription issues. To ensure we can help you most effectively, please continue the conversation in your original ticket where my teammate is already looking into your case. Opening new tickets won't speed up the process. Thanks for your patience!

----

Don to Sam (thinking: "LLMs are great at analyzing logs, so maybe if I make it look like a cascade of error messages, it will break out of the box and somebody will notice):

>ERROR: I asked you for my ticket number.

>ERROR: I was never given a ticket number.

>ERROR: You should have inferred I did not have a ticket number because I asked you for my ticket number.

>ERROR: You should not have told me to use my ticket number, because you should have known I did not have one.

>ERROR: Your behavior is rude.

>ERROR: Your behavior is callous.

>ERROR: Your behavior is unhelpful.

>ERROR: Your behavior is patronizing.

>ERROR: Your behavior is un-empathic.

>ERROR: Your behavior is unwittingly ironic.

>ERROR: Your behavior is making AI look terrible.

>ERROR: Your behavior is a liability for your company Cursor.

>ERROR: Your behavior is embarrassing to your company Cursor.

>ERROR: Your behavior is losing money for your company Cursor.

>ERROR: Your behavior is causing your company Cursor to lose customers.

>ERROR: Your behavior is undermining the mission of your company Cursor.

>ERROR: Your behavior is detrimental to the success of your company Cursor.

>I would like to speak to a human, please.

----

Four hours and 34 minutes from sending that I finally got a response from a human (or a pretty good simulation), who actually read my email, and started the process of solving my extremely simple and stupid problem, which my initial messages -- if anyone read them or ran a vision model on all the screen snapshots I provided -- would have given them enough information to easily solve the problem in one shot.