# `ClaudeWrapper.Runner.Port`
[🔗](https://github.com/genagent/claude_wrapper_ex/blob/main/lib/claude_wrapper/runner/port.ex#L1)

Default runner: `System.cmd/3` for one-shot calls and a `/bin/sh`
`Port` for NDJSON streaming.

This is the execution path the library has always used. On a timeout
it shuts down the `Task` (one-shot) or closes the port (streaming),
which closes the pipes but sends no signal to the OS process. The CLI
and any subprocess it spawned may keep running until they next touch a
closed pipe. For strict termination, use `ClaudeWrapper.Runner.Forcola`
(see `ClaudeWrapper.Runner` and #185).

---

*Consult [api-reference.md](api-reference.md) for complete listing*
