Natural language as the interface

Designing AI-driven developer tools means treating natural language as a primary design material, not an optional input method. The most valuable tools today let developers describe what they want in plain language and receive a working result in return. This shift changes how code gets written and which problems developers can tackle, while opening software development to a broader range of people.

Iteration is a key interaction pattern emerging from this. Developers ask for a solution, inspect the response, then refine their request until the output satisfies the intent. In practice, the quality of the tool hinges on how well that back-and-forth is supported. Vague prompts produce weak results; detailed, specific prompts generate far more useful output. Instructing a model to draw an ice cream cone with "a triangle with the point facing down, wider point at the top," for instance, yields something recognizable rather than a misshapen approximation.

Understanding what developers actually need

Good product design starts with an opinion, and that opinion must be rooted in research. Asking the right questions, gathering user feedback, and understanding how developers think and work are prerequisites for building something they will adopt.

One core concern is keeping developers in their flow. Writing software requires deep concentration, and even small interruptions can break it. When GitHub Copilot launched in technical preview in June 2021 and became generally available a year later, its ghost text suggestions worked well precisely because they were modeless: developers could press tab to accept a suggestion or keep typing to ignore it, without navigating away from the code editor. One researcher compared this to an electric bike with pedal assist — you can put in your own effort, but the support is there when you need it.

Collecting feedback without bias

How you gather user feedback shapes what you learn. Open-ended, non-leading questions reveal more than ones that presuppose an answer. Useful examples include:

  • "What's the hardest part about [x situation] today?"
  • "Can you tell me a story about the last time that happened?"
  • "Can you say more about why that was difficult?"
  • "What, if anything, have you tried to solve that problem?"
  • "What's not ideal about your current solution?"
  • "How often do you experience this problem?"

Researchers must also watch for their own biases. Confirmation bias appears when data is interpreted to support existing hypotheses; a better approach is to try to invalidate the hypothesis and report all findings. Leading language in questions nudges respondents toward a preferred answer, so a discussion guide written in advance and piloted with peers helps keep questions neutral. Selection bias happens when participants self-select into a study; actively recruiting from the target audience is the corrective.

Designing for imperfection

Language models hallucinate. They can generate confident, persuasive output that is simply wrong. Designing around that limitation is a fundamental part of building AI tools today — the UX must make evaluation of suggestions cheap and seamless.

Ghost text performs this role well because incorrect suggestions are easy to ignore. The entire interaction is forgiving of model mistakes, which helps establish trust. A tool that subtly steers a developer in the wrong direction is far worse than one that makes its uncertainty visible. Model context limits add further complexity: developers expect the model to consider all relevant context, but current architecture caps how much can be processed. The interface must manage that expectation while still producing useful results.

Context control and extensibility

Developers need varying amounts of context depending on the task. Some workflows require a high-level view, others demand deep detail on a single problem. Tools that let users scale their focus — from broad overview to granular inspection — reduce the friction of switching between modes. Fewer visual elements to scan also promote a feeling of immersion, even across context changes.

Not every problem requires a new tool. Sometimes the right move is making an existing one extensible so developers can integrate it with the rest of their stack. Well-documented APIs and a clean integration story allow developers to customize workflows, which ultimately leads to more efficient builds and deployments.

Accessibility and performance

Accessibility is not a bolt-on concern. Designing for users with disabilities from the start produces solutions that help everyone in ordinary circumstances — a high-contrast interface for a visually impaired user also assists someone reading outdoors in bright light. Bringing accessibility requirements early into the design process yields more resilient and inclusive products.

There is always pressure to add flashy features, but performance should win out. Developer tooling is applied to solve identified problems with the best available technology — not to drive engagement metrics. A feature that introduces lag or distracts from the core task diminishes the product regardless of how impressive it sounds.

Revision workflows serve developers and models alike

A well-designed AI tool gives developers a way to revise the model's output. That workflow can be as lightweight as the ghost-text suggestions in GitHub Copilot or as interactive as the conversational loop in GitHub Copilot Chat. In GitHub Copilot for CLI, the revision step takes the form of explanations: before a suggested shell command runs, the tool walks the developer through what the command does and why it fits the stated problem.

Rosenkilde notes that this has a dual payoff: it mitigates the risk of executing something the developer didn't fully understand, and it doubles as education. “The suggested command might be an arcane shell script, so maybe the developer doesn’t understand what that command will do once it runs. The explanation is there to help guide the developer through the shell command’s function and verify it against the original problem the developer is trying to solve.”

Revision workflows are also a feedback channel back into the model. UI signals such as acceptance or ignore rates for code suggestions, a regenerate button, and recovery paths when the model fails all tell the model team where quality falls short. As Muñoz Solera puts it, “We’re still in an experimental phase with generative AI, so we need to design AI tools that make it easy for developers to signal when the quality of the model’s output isn’t there.”

From the outside, innovation looks like making giant leaps of progress. But innovation from the inside is repetition and making small steps forward.
- Manuel Muñoz Solera // Senior Director of Product Design // GitHub

What comes after the novelty

Three years of building and iterating on AI-powered developer tools, including GitHub Copilot and GitHub Copilot Chat, suggests that the field is moving past the initial shock of generative capabilities. Developers, designers, and engineers are becoming more deliberate about where AI fits and where it doesn't—and the design patterns that emerged are just the beginning. The collective learning curve is still steep, and sharing those patterns is one way to accelerate it.