Austin Z. Henley

Associate Teaching Professor
Carnegie Mellon University


Home | Publications | Teaching | Blog

Where are the proactive AI coding tools?

5/4/2025

A play on Where's Waldo but with Clippy.

I've been asking for and working on proactive AI coding tools for several years.

An AI chat interface that is interacting with the UI around it.

It is now 2025. What is the state of proactive tooling? Have agents taken over yet? Will my environment issues automatically get resolved before I even see the error message? Can Cursor get TLS working properly for my vibe-coded app when I forget to set it up? Can Copilot interrupt me before I go down a rabbit hole to fix the wrong thing?

No, not really.

But they can still proactively make suggestions about what code to change next.

A single-line gray text code suggestion that is redundant.

Or they can reactively make suggestions based on a prompt while using tools.

Cursor developing a plan on how to complete my task and searching my codebase to learn more.

I just read a really interesting paper about the pros and cons of proactive AI coding tools that got me thinking about the topic again. (Assistance or Disruption? Exploring and Evaluating the Design and Trade-offs of Proactive AI Programming Support)

A list of design dimensions for Codellaborator.
Figure 1 from the paper showing their system design dimensions.

They designed a proactive AI code tool, Codellaborator, that goes beyond typical gray-text suggestions by being strategic about the timing, the visual indicators, and the scopes of interaction for code suggestions.

It is just the tip of the iceberg though.

Why aren't the commercial tools in this space pushing harder on the user experience? They seem to be taking the shotgun approach: more suggestions in more places and more often. But I don't want more suggestions! I don't need more code thrown at me. I want a small number of high-value episodes of assistance as if a professional developer was sitting beside me.

Generating the next code change is great, but there is opportunity for so much more.

In fact, I previously said:

If I had a personal programmer that sat next to me, how would I work with them? Would I give them a sticky note with the task and wait for them to come back with the code for me to verify?

Or would we ask each other clarifying questions, point out significant details, discuss design tradeoffs, and show incremental progress as we work?

Innovating on the user experience is hard, so instead, companies continue to ship an integration with yet-another-model that generates code.


Read more of my thoughts on the topic: