Clients
Installable LLM Proxy CLI for prompt workflows
Use llm-proxy-client to send prompt text as canonical /v2 messages from the command line.
Developers who want a simple shell client for tenant-secret authenticated LLM calls.
The problem
Curl is useful, but repeated prompt workflows need a small client that understands the proxy's canonical text contract.
How LLM Proxy helps
The installable Go CLI reads prompt text from flags, files, or stdin, maps it into a v2 user message, and sends POST /v2 through the reusable Go client.
How it works
- Install with go install github.com/tyemirov/llm-proxy/llm-proxy-client@latest.
- Set --base-url and --secret, or use LLM_PROXY_BASE_URL and LLM_PROXY_SECRET.
- Send --prompt, --prompt-file, or stdin content.
- Optionally include --system-prompt, --model, --max-tokens, --reasoning-effort, or --request-timeout-seconds; keep provider in the base URL.
Feature-to-benefit table
| Feature | Why it matters here | Example |
|---|---|---|
| Canonical POST /v2 | The CLI sends prompt input as v2 messages. | CLI behavior matches reusable client behavior. |
| Environment support | Base URL and secret can come from env for shell workflows. | Prompt content can flow from stdin. |
| Reasoning-effort flag | The CLI serializes --reasoning-effort in the v2 JSON body. | The server validates it against the resolved route rather than accepting a global option list. |
| Request-timeout flag | The CLI serializes --request-timeout-seconds as the canonical proxy work-budget header. | Omission selects the server default without a hidden CLI deadline. |
| Payload/query cleanup | The client strips body-owned query fields and preserves non-payload query parameters. | Provider selection can stay in the base URL. |
Use-case examples
Quick summary
Pipe text into llm-proxy-client with a configured base URL and secret.
Provider route
Use a base URL with ?provider=gemini to test Gemini without changing the body.
System instruction
Pass --system-prompt so the CLI sends a v2 system message.
Long request
Pass --request-timeout-seconds for a bounded proxy budget chosen for that prompt.
Objections and limitations
- The CLI is a text client; it does not upload audio to /dictate.
- It still requires a valid tenant secret.
- It is not a provider SDK and does not bypass proxy validation.
Repository evidence
llm-proxy-client \
--base-url "http://localhost:8080/?provider=openai" \
--secret "$SERVICE_SECRET" \
--model "gpt-5.5" \
--reasoning-effort "high" \
--request-timeout-seconds 900 \
--prompt "Summarize this"
Verified 2026-08-08 by Tyemirov on GitHub against README.md.
FAQ
What is the main job of installable LLM proxy CLI?
The installable Go CLI reads prompt text from flags, files, or stdin, maps it into a v2 user message, and sends POST /v2 through the reusable Go client.
Who should read this clients resource?
Developers who want a simple shell client for tenant-secret authenticated LLM calls.
Does this page claim provider performance or pricing advantages?
No. The supported claim is about LLM Proxy's documented routing, configuration, management, security, usage, and deployment contracts. Provider cost, speed, rankings, and benchmark claims are not made here.
Where should setup details come from?
Use the main README and implementation notes for current command, config, and endpoint details. This page summarizes the workflow without replacing LLM Proxy documentation.
What should I read next?
A closely related resource is Authenticate an LLM Proxy client with a tenant secret, which covers LLM Proxy client authentication.
Related resources
Use this pattern in LLM Proxy
Start from the canonical API reference, then use the management surface when the workflow needs tenant or provider configuration.
Open API reference