You type !ls | where size > 1kb straight into the prompt: a bang runs it in Nushell, the output lands in the transcript and the agent sees it on its next turn.
!!open Cargo.toml runs the same way, but !! keeps the output out of the model's context: for you only.
You type !nvim notes.md: an interactive command hands the terminal over, you edit for real, and Pi comes back when you quit.
The agent's next answer refers to the ! output and to the edit you just made.
Protagonist: nu-bang.
Point: your shell is one keystroke away and stays in the conversation, without a tool call or a model round-trip, and you decide what the model gets to see.
# nu-bang demo
1. You type `!ls | where size > 1kb` straight into the prompt: a bang runs it in Nushell, the output lands in the transcript and the agent sees it on its next turn.
2. `!!open Cargo.toml` runs the same way, but `!!` keeps the output out of the model's context: for you only.
3. You type `!nvim notes.md`: an interactive command hands the terminal over, you edit for real, and Pi comes back when you quit.
4. The agent's next answer refers to the `!` output and to the edit you just made.
Protagonist: nu-bang.
Point: your shell is one keystroke away and stays in the conversation, without a tool call or a model round-trip, and you decide what the model gets to see.