When the Kiro/AWS CodeWhisperer API receives a Write tool request with content that exceeds transmission limits, it truncates the tool input. This can result in: - Empty input buffer (no input transmitted at all) - Missing 'content' field in the parsed JSON - Incomplete JSON that fails to parse This fix detects these truncation scenarios and converts them to Bash tool calls that echo an error message. This allows Claude Code to execute the Bash command, see the error output, and the agent can then retry with smaller chunks. Changes: - kiro_claude_tools.go: Detect three truncation scenarios in ProcessToolUseEvent: 1. Empty input buffer (no input transmitted) 2. JSON parse failure with file_path but no content field 3. Successfully parsed JSON missing content field When detected, emit a special '__truncated_write__' marker tool use - kiro_executor.go: Handle '__truncated_write__' markers in streamToChannel: 1. Extract file_path from the marker for context 2. Create a Bash tool_use that echoes an error message 3. Include retry guidance (700-line chunks recommended) 4. Set hasToolUses=true to ensure stop_reason='tool_use' for agent continuation This ensures the agent continues and can retry with smaller file chunks instead of failing silently or showing errors to the user.
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: 17600006524/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/linlang781/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.