Joao 98edcad39d fix: replace assistant placeholder text to prevent model parroting
Kiro API requires non-empty content on assistant messages, so
CLIProxyAPI injects placeholder text when assistant messages only
contain tool_use blocks (no text). The previous placeholders were
conversational phrases:

- DefaultAssistantContentWithTools: "I'll help you with that."
- DefaultAssistantContent: "I understand."

In agentic sessions with many tool calls, these phrases appeared
dozens of times in conversation history. Opus 4.6 (and likely other
models) picked up on this pattern and started parroting "I'll help
you with that." before every tool call in its actual responses.

Fix: Replace both placeholders with a single dot ".", which
satisfies Kiro's non-empty requirement without giving the model
a phrase to mimic.
2026-02-06 16:42:21 +00:00
2026-02-02 00:01:00 +08:00
2025-09-25 10:32:48 +08:00
2026-02-06 21:04:32 +08:00
2026-02-06 21:04:32 +08:00
2025-10-15 11:47:35 +08:00
2025-09-25 10:32:48 +08:00
2026-01-30 21:34:30 +08:00

CLIProxyAPI Plus

English | Chinese

This is the Plus version of CLIProxyAPI, adding support for third-party providers on top of the mainline project.

All third-party provider support is maintained by community contributors; CLIProxyAPI does not provide technical support. Please contact the corresponding community maintainer if you need assistance.

The Plus release stays in lockstep with the mainline features.

Differences from the Mainline

  • Added GitHub Copilot support (OAuth login), provided by em4go
  • Added Kiro (AWS CodeWhisperer) support (OAuth login), provided by fuko2935, Ravens2121

New Features (Plus Enhanced)

  • OAuth Web Authentication: Browser-based OAuth login for Kiro with beautiful web UI
  • Rate Limiter: Built-in request rate limiting to prevent API abuse
  • Background Token Refresh: Automatic token refresh 10 minutes before expiration
  • Metrics & Monitoring: Request metrics collection for monitoring and debugging
  • Device Fingerprint: Device fingerprint generation for enhanced security
  • Cooldown Management: Smart cooldown mechanism for API rate limits
  • Usage Checker: Real-time usage monitoring and quota management
  • Model Converter: Unified model name conversion across providers
  • UTF-8 Stream Processing: Improved streaming response handling

Kiro Authentication

Web-based OAuth Login

Access the Kiro OAuth web interface at:

http://your-server:8080/v0/oauth/kiro

This provides a browser-based OAuth flow for Kiro (AWS CodeWhisperer) authentication with:

  • AWS Builder ID login
  • AWS Identity Center (IDC) login
  • Token import from Kiro IDE

Quick Deployment with Docker

One-Command Deployment

# Create deployment directory
mkdir -p ~/cli-proxy && cd ~/cli-proxy

# Create docker-compose.yml
cat > docker-compose.yml << 'EOF'
services:
  cli-proxy-api:
    image: eceasy/cli-proxy-api-plus:latest
    container_name: cli-proxy-api-plus
    ports:
      - "8317:8317"
    volumes:
      - ./config.yaml:/CLIProxyAPI/config.yaml
      - ./auths:/root/.cli-proxy-api
      - ./logs:/CLIProxyAPI/logs
    restart: unless-stopped
EOF

# Download example config
curl -o config.yaml https://raw.githubusercontent.com/router-for-me/CLIProxyAPIPlus/main/config.example.yaml

# Pull and start
docker compose pull && docker compose up -d

Configuration

Edit config.yaml before starting:

# Basic configuration example
server:
  port: 8317

# Add your provider configurations here

Update to Latest Version

cd ~/cli-proxy
docker compose pull && docker compose up -d

Contributing

This project only accepts pull requests that relate to third-party provider support. Any pull requests unrelated to third-party provider support will be rejected.

If you need to submit any non-third-party provider changes, please open them against the mainline repository.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Description
No description provided
Readme MIT 266 MiB
Languages
Go 99.8%
Shell 0.1%