Dev Tools Are Going Headless
I used to spend the first hour with any new IDE installing plugins. There was a rhythm to it: syntax highlighting, formatter, git integration, the handful of productivity tools I’d come to rely on. Getting a new machine meant rebuilding that setup. It felt like moving into a new flat, you had to make it yours before you could work.
That ritual is quietly disappearing.
AI agents are now part of how software gets built. Not as autocomplete, but as active participants in the SDLC: running commands, reading diffs, making commits, opening PRs. When the agent is doing the work, the tools need to speak its language.
Dev tooling is going headless. Not because CLIs replaced GUIs (that happened years ago), but because the consumer changed. Plugins were built for humans navigating menus. The new form is built for agents reading a markdown file and running a shell command.
Take the Quick Patch plugin for JetBrains. It saves your current git diff as a named patch file, with a sensible filename and a configured output folder. Small utility, but one less thing to do manually.
As a Claude Code skill, the same thing is a markdown file:
---
name: quick-patch
description: Save the current git diff as a named patch file.
version: 1.0.0
---
# Quick Patch
Save the current `git diff` as a `.patch` file with a consistent naming convention.
## Defaults
- Folder: `~/.patches/`
- Filename: `YYYY-MM-DD_<branch>_<short-hash>.patch`
## Configuration
- `folder=<path>` - save to a custom directory (created if it doesn't exist)
- `name=<filename>` - override the filename
## Steps
1. Run `git diff HEAD` - if empty, stop and report
2. Resolve the output folder, create it if needed
3. Construct the filename from today's date, branch name, and short commit hash
4. Write the patch file and report the full path
You invoke it with /quick-patch. Behind the scenes, the agent reads those instructions, runs the shell commands, and saves the file. Folder and naming convention are configurable. The skill is a markdown file with instructions; the agent reads it and runs the shell commands.
No plugin marketplace. No IDE restart. No version to keep in sync.
Plugins weren’t bad. They were the right shape for the tools we had. A human needed a button, a shortcut, a menu item, something to click. The plugin was the bridge between intent and action.
The agent doesn’t need the bridge. It reads instructions, runs commands, and moves on. The skill is lighter, more portable, and easier to write than a plugin ever was. Anyone who can write a markdown file can build one.
You describe what you want done, and the agent does it. The IDE is still there, but it’s no longer the center of gravity.