ChatCLI was not designed only for interactive conversations. It can be a powerful tool in your automation scripts, CI/CD pipelines, and shell aliases thanks to its “one-shot” mode.
In this mode, you can ask a single question, get the answer, and exit, all in a single command, making it perfect for integration with other tools.
Using the -p or --prompt Flags
The most straightforward way to use one-shot mode is with the -p or --prompt flags. ChatCLI will execute the question, print the AI’s response to stdout, and exit.
The output will be only the AI’s response, ready to be read or processed by another script.
Integrating with Pipes ( | )
One of the most powerful ways to use one-shot mode is by combining it with other command-line tools through pipes. ChatCLI automatically detects if it is receiving data via stdin and uses it as context.
Summarize a git diff
Analyze logs
Analyze CSV data
Slash command in a pipe
The pipe body becomes the slash command’s $ARGUMENTS — and a mode: coder command can act on it with the full coder engine, mid-pipeline.
Available Flags in One-Shot Mode
You can customize the behavior of one-shot mode with the following flags:
Agent Mode in One-Shot
One-shot prompts also resolve slash-command templates: chatcli -p "/review-pr 1326 security" expands the template from .chatcli/commands before anything runs. Pipes compose naturally — git diff | chatcli -p "/review" feeds the pipe body into the command’s $ARGUMENTS. Pre-execution lines follow your security policy: interactive approval only when stdin is a real terminal; piped runs resolve through policy rules and fail safe to deny — an explicit allow rule (e.g. { "pattern": "exec git log", "action": "allow" } in ~/.chatcli/coder_policy.json) lets a command’s ! lines run fully unattended, which unlocks cron/CI automations.
You can also invoke Agent Mode non-interactively. This is extremely useful for complex automations.
When using /agent or /run with the -p flag, ChatCLI will ask the AI for an action plan and print it. By default, it will not execute the commands.
This will display the plan suggested by the AI (e.g., find /tmp -name "*.tmp" -delete). To execute the plan automatically, use the --agent-auto-exec flag. Execution will only occur if the internal security validator does not detect dangerous commands.The AI will generate and, if safe, execute the command to clean up the temporary files.
Use --agent-auto-exec with caution. Although the security validator blocks known dangerous commands, always review the behavior in production environments.
Sometimes you want a built-in tool’s output, not a model’s opinion about it. A plain -p "@tool ..." executes the tool and then sends the result to the LLM as context — slow, token-expensive, and impractical when the output is large. The tool subcommand runs the tool and prints its output, with no LLM call at all:
- Keyless — no provider configured, no problem: like the MCP server’s direct tools, the subcommand only needs the tool itself.
- Same exposure policy — the catalog honors
CHATCLI_MCP_TOOLS (interactive tools are excluded), exactly like the MCP tool surface.
- Script-friendly — output goes to stdout, errors to stderr with exit code 1. Perfect for cron jobs, CI steps and pipes.
Use -p "@tool ..." when you want the model to reason about the tool’s output; use chatcli tool when you just want the output.