ps-agent
Two PowerShell cmdlets that put an agent in your terminal. Invoke-Agent is a minimal coding agent — a model, four tools, and a loop. Invoke-Acp drives Claude Code, Gemini, Codex or opencode as a subprocess. Both emit the same transcript objects.
Invoke-Agent "why does the parser drop trailing newlines?"Invoke-Acp -Agent claude "add a regression test for the trailing-newline bug"
# ...and the same transcript, as objectsInvoke-Agent "audit the error paths" -NoUi | Where-Object Kind -eq ToolCallInvoke-Agent "audit the error paths" -NoUi | Show-Styled
Invoke-Acp -Agent opencode — the prompt typed into the viewer, thought / tool / answer rows streaming in, a row expanded.
Two cmdlets, one transcript
Section titled “Two cmdlets, one transcript”| Cmdlet | Alias | What it is |
|---|---|---|
| Invoke-Agent | agent, pia | A minimal coding agent — a model, four tools, and a loop. |
| Invoke-Acp | acp | An Agent Client Protocol client — drives another agent as a subprocess. |
They answer different questions. Invoke-Agent owns the loop: every tool, every prompt, every
token is visible and changeable. Invoke-Acp owns none of it: it is a front end for agents other
people wrote, which is the only way to drive Claude Code and Gemini from the same keybindings.
Both produce PsAgent.AgentEvent rows, so one renderer, one stylesheet and one set of keys serves
either agent.