The runProcess tool runs processes on the host machine. There are two mutually exclusive ways to invoke it:
command_line(string) — Executed via the system's default shell (just like typing intobash/fish/pwsh/etc). Shell features like pipes, redirects, and variable expansion all work.argv(string array) — Direct executable invocation.argv[0]is the executable, the rest are arguments. No shell interpretation.
You cannot pass both. The tool infers whether to use a shell from which parameter you provide.
If you want your model to use specific shell(s) on a system, I would list them in your system prompt. Or, maybe in your tool instructions, though models tend to pay better attention to examples in a system prompt.
Let me know if you encounter problems!
Tools are for LLMs to request. Claude Sonnet 3.5 intelligently uses run_process. And, initial testing shows promising results with Groq Desktop with MCP and llama4 models.
Currently, just one command to rule them all!
run_process- run a command, i.e.hostnameorls -alorecho "hello world"etc- Returns
STDOUTandSTDERRas text - Optional
stdinparameter means your LLM can- pass scripts over
STDINto commands likefish,bash,zsh,python - create files with
cat >> foo/bar.txtfrom the text instdin
- pass scripts over
- Returns
Warning
Be careful what you ask this server to run!
In Claude Desktop app, use Approve Once (not Allow for This Chat) so you can review each command, use Deny if you don't trust the command.
Permissions are dictated by the user that runs the server.
DO NOT run with sudo.
Prompts are for users to include in chat history, i.e. via Zed's slash commands (in its AI Chat panel)
run_process- generate a prompt message with the command output
- FYI this was mostly a learning exercise... I see this as a user requested tool call. That's a fancy way to say, it's a template for running a command and passing the outputs to the model!
