documentation/docs/guides/tanzu-cli-testing-guide.md
feat/tanzu-ai-provider branchmacOS:
# If built from source:
export GOOSE_CLI=~/claude/goose-fork/target/release/goose
# Verify:
$GOOSE_CLI --version
Linux:
# If installed via .deb:
export GOOSE_CLI=/usr/bin/goose
# If built from source:
export GOOSE_CLI=~/goose-fork/target/release/goose
# Verify:
$GOOSE_CLI --version
goose configure
https://genai-proxy.sys.example.com/tanzu-my-model-abc1234https://genai-proxy.sys.example.com/tanzu-all-models-abc1234Expected: Models are fetched from the endpoint and displayed for selection.
export TANZU_AI_ENDPOINT="https://genai-proxy.sys.tas-tdc.kuhn-labs.com/tanzu-Qwen3-Coder-30B-A3B-vllm-v1-f3b0d18"
export TANZU_AI_API_KEY="<your-jwt-token>"
goose session
Type a simple prompt:
> What is 2 + 2?
Expected: The model responds with an answer. If streaming is enabled, tokens appear incrementally.
export TANZU_AI_ENDPOINT="https://genai-proxy.sys.tas-tdc.kuhn-labs.com/tanzu-all-models-a8a9e22"
export TANZU_AI_API_KEY="<your-jwt-token>"
goose session
Expected: Session starts with whichever model was selected during goose configure.
With streaming enabled (supports_streaming: true), responses should appear token-by-token rather than all at once.
> Write a short poem about clouds
Expected: Text streams in progressively, not appearing all at once after a delay.
goose configure
Select Configure Providers > VMware Tanzu Platform.
Expected for single-model plan: One model appears (e.g., Qwen/Qwen3-Coder-30B-A3B-Instruct-FP8)
Expected for multi-model plan: Multiple models appear (e.g., Qwen3.5-122B, Qwen3-Coder-30B, gpt-oss-120b)
unset TANZU_AI_API_KEY
goose session
Expected: Clear error message: "Required API key TANZU_AI_API_KEY is not set."
unset TANZU_AI_ENDPOINT
goose session
Expected: Clear error message about TANZU_AI_ENDPOINT not being set.
export TANZU_AI_ENDPOINT="https://genai-proxy.sys.example.com/nonexistent"
export TANZU_AI_API_KEY="invalid-key"
goose session
Expected: Connection or authentication error, not a crash.
goose configure againExpected: Both plans work without needing to restart goose.
Before testing with goose, you can verify endpoints directly:
# Test models endpoint
curl -s -H "Authorization: Bearer $TANZU_AI_API_KEY" \
"$TANZU_AI_ENDPOINT/openai/v1/models" | python3 -m json.tool
# Test chat completions
curl -s -X POST "$TANZU_AI_ENDPOINT/openai/v1/chat/completions" \
-H "Authorization: Bearer $TANZU_AI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"Qwen/Qwen3-Coder-30B-A3B-Instruct-FP8","messages":[{"role":"user","content":"hello"}],"max_tokens":10}'
# Test streaming
curl -s -N -X POST "$TANZU_AI_ENDPOINT/openai/v1/chat/completions" \
-H "Authorization: Bearer $TANZU_AI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"Qwen/Qwen3-Coder-30B-A3B-Instruct-FP8","messages":[{"role":"user","content":"hello"}],"max_tokens":10,"stream":true}'