Proposal: IDE Run Configuration execution support #1282
bartvanhoutte
started this conversation in
Protocol Suggestions
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Motivation
Most modern IDEs (JetBrains, VS Code, Eclipse, Visual Studio, etc.) have a concept of Run Configurations — named, pre-configured launch profiles that describe how to build, run, test, or debug a project. These configurations capture not just a command to execute, but also the working directory, environment variables, argument presets, and other IDE-managed context (e.g. classpath setup, pre-launch tasks, debugger attachment).
Today, ACP agents can execute arbitrary shell commands via the
terminal/createAPI. However, this requires the agent to know or reconstruct the exact command, environment, and setup independently — bypassing the project's established run configurations entirely. This means agents can't easily trigger a "Run Tests" or "Run App" action the way a developer would naturally do it in their IDE.Proposal
Add a new optional client capability that allows agents to discover and execute named run configurations defined in the client IDE.
Suggested capability flag
New methods
runConfig/list— returns the list of available run configurations for the current workspace:runConfig/execute— executes a named run configuration and returns a terminal ID for output streaming (reusing the existingterminal/*API):Once a
terminalIdis returned, agents can use the existingterminal/output,terminal/wait_for_exit, andterminal/releasemethods to stream and manage output — no new streaming primitives needed.Configuration types (non-exhaustive)
To keep this IDE-agnostic, the
typefield uses a set of well-known semantic values:applicationtestbuilddebugcustomUnknown types MUST be handled gracefully by agents.
IDE Agnosticism
This proposal is intentionally abstract — it maps to:
launch.jsonconfigurations andtasks.jsontasksClients are free to surface any subset of their configured launch profiles as
runConfigurations, and agents MUST NOT assume any specific IDE behavior.Alternatives Considered
terminal/create: Works for simple cases, but requires the agent to reverse-engineer the run command, missing pre-launch hooks, classpath setup, and IDE-managed environment.Beta Was this translation helpful? Give feedback.
All reactions