skills/cliproxyapi-manager-skill/SKILL.md
Manage CLIProxyAPI or CLIProxyAPIPlus only: save CLIProxyAPI Management API URL and password under the user's home .config/cliproxyapi directory, call every CLIProxyAPI Management API endpoint, manage config/auth files/provider keys/model aliases/logs/usage/OAuth URLs, and work on Windows, Linux, and macOS without opening the web UI.
npx skillsauth add imhansiy/my-skills cliproxyapi-manager-skillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when the user asks an AI coding agent to manage CLIProxyAPI / CLIProxyAPIPlus / CLI Proxy API from the terminal.
This skill is intentionally only about CLIProxyAPI. Do not add opencode, Codex client, Claude Code client, Gemini CLI client, or other AI client configuration unless the user explicitly asks in a separate task.
/v0/management.references/management-api-full.md.raw command.Base URL format:
<CLIProxyAPI_BASE_URL>/v0/management
Example local base URL:
http://127.0.0.1:8317/v0/management
Authentication headers:
Authorization: Bearer <MANAGEMENT_KEY>
or:
X-Management-Key: <MANAGEMENT_KEY>
The bundled script uses Authorization: Bearer ....
Content conventions:
Content-Type: application/jsonContent-Type: application/yaml{ "value": ... }{ "items": [...] }{ "index": 0, "value": {...} } or a key-based matcher such as { "match": "...", "value": {...} } / { "name": "...", "value": {...} }The Python script uses only standard library modules and supports Python 3.8+.
Saved connection file:
| System | Path |
|---|---|
| Windows | %USERPROFILE%\.config\cliproxyapi\connections.json |
| Linux | ~/.config/cliproxyapi/connections.json |
| macOS | ~/.config/cliproxyapi/connections.json |
Override path:
CLIPROXYAPI_CONFIG_DIR=/custom/path
Sensitive environment variables supported by the script:
CLIPROXYAPI_MANAGEMENT_KEY # management password/key
CLIPROXYAPI_UPSTREAM_API_KEY # upstream provider key for add-provider commands
mkdir -p ~/.agents/skills
unzip cliproxyapi-manager-skill.zip -d ~/.agents/skills
chmod +x ~/.agents/skills/cliproxyapi-manager-skill/scripts/cliproxyapi-manager.sh
~/.agents/skills/cliproxyapi-manager-skill/scripts/cliproxyapi-manager.sh paths
New-Item -ItemType Directory -Force "$env:USERPROFILE\.agents\skills" | Out-Null
Expand-Archive .\cliproxyapi-manager-skill.zip -DestinationPath "$env:USERPROFILE\.agents\skills" -Force
& "$env:USERPROFILE\.agents\skills\cliproxyapi-manager-skill\scripts\cliproxyapi-manager.ps1" paths
If PowerShell blocks local scripts:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
& "$env:USERPROFILE\.agents\skills\cliproxyapi-manager-skill\scripts\cliproxyapi-manager.ps1" paths
mkdir "%USERPROFILE%\.agents\skills"
powershell -NoProfile -Command "Expand-Archive .\cliproxyapi-manager-skill.zip -DestinationPath $env:USERPROFILE\.agents\skills -Force"
"%USERPROFILE%\.agents\skills\cliproxyapi-manager-skill\scripts\cliproxyapi-manager.bat" paths
Use the launcher for the current OS:
# Linux/macOS
./scripts/cliproxyapi-manager.sh paths
# Any OS with Python
python scripts/cliproxyapi_manager.py paths
# Windows PowerShell
.\scripts\cliproxyapi-manager.ps1 paths
# Windows Python launcher
py -3 .\scripts\cliproxyapi_manager.py paths
REM Windows CMD
scripts\cliproxyapi-manager.bat paths
When the user gives a CLIProxyAPI URL and management password/key, save them:
python scripts/cliproxyapi_manager.py setup \
--url http://127.0.0.1:8317 \
--key "MANAGEMENT_PASSWORD" \
--name default \
--default
If the user does not want the key visible in shell history, omit --key; the script prompts securely:
python scripts/cliproxyapi_manager.py setup --url http://127.0.0.1:8317
Or use an environment variable:
export CLIPROXYAPI_MANAGEMENT_KEY='MANAGEMENT_PASSWORD'
python scripts/cliproxyapi_manager.py setup --url http://127.0.0.1:8317 --no-prompt
Windows PowerShell:
$env:CLIPROXYAPI_MANAGEMENT_KEY = 'MANAGEMENT_PASSWORD'
.\scripts\cliproxyapi-manager.ps1 setup --url http://127.0.0.1:8317 --no-prompt
Show paths:
python scripts/cliproxyapi_manager.py paths
List saved profiles without secrets:
python scripts/cliproxyapi_manager.py profiles
Test connection:
python scripts/cliproxyapi_manager.py test
Show all known CLIProxyAPI Management API endpoints:
python scripts/cliproxyapi_manager.py endpoints
python scripts/cliproxyapi_manager.py endpoints --json
Call any endpoint:
python scripts/cliproxyapi_manager.py raw GET /config
python scripts/cliproxyapi_manager.py raw GET /usage
python scripts/cliproxyapi_manager.py raw PATCH /debug --data '{"value":true}'
python scripts/cliproxyapi_manager.py raw DELETE '/api-keys?index=0'
Read config:
python scripts/cliproxyapi_manager.py config
python scripts/cliproxyapi_manager.py config --format yaml --output ./config.backup.yaml
Replace config YAML:
python scripts/cliproxyapi_manager.py put-config-yaml ./config.yaml
Set scalar values:
python scripts/cliproxyapi_manager.py set-value /debug true
python scripts/cliproxyapi_manager.py set-value /request-retry 5
python scripts/cliproxyapi_manager.py set-value /proxy-url socks5://127.0.0.1:1080
List model aliases from config:
python scripts/cliproxyapi_manager.py list-aliases
python scripts/cliproxyapi_manager.py list-aliases --json
Add provider:
python scripts/cliproxyapi_manager.py openai-compat-add \
--name openrouter \
--base-url https://openrouter.ai/api/v1 \
--api-key 'sk-or-v1-...' \
--model-name 'moonshotai/kimi-k2:free' \
--alias 'kimi-k2'
Use env var for the upstream key:
export CLIPROXYAPI_UPSTREAM_API_KEY='sk-or-v1-...'
python scripts/cliproxyapi_manager.py openai-compat-add \
--name openrouter \
--base-url https://openrouter.ai/api/v1 \
--model-name 'moonshotai/kimi-k2:free' \
--alias 'kimi-k2'
Add a new model alias to an existing provider:
python scripts/cliproxyapi_manager.py openai-compat-add-model \
--name openrouter \
--model-name 'openai/gpt-4.1' \
--alias 'gpt-4.1-openrouter'
Delete a provider with raw API:
python scripts/cliproxyapi_manager.py raw DELETE '/openai-compatibility?name=openrouter'
List auth files:
python scripts/cliproxyapi_manager.py raw GET /auth-files
Download auth file:
python scripts/cliproxyapi_manager.py raw GET '/auth-files/download?name=acc1.json' --output ./acc1.json
Upload raw JSON auth file:
python scripts/cliproxyapi_manager.py auth-upload ./acc1.json --name acc1.json
Upload multipart auth file:
python scripts/cliproxyapi_manager.py auth-upload ./acc1.json --multipart
Delete one auth file:
python scripts/cliproxyapi_manager.py raw DELETE '/auth-files?name=acc1.json'
Delete all on-disk auth files:
python scripts/cliproxyapi_manager.py raw DELETE '/auth-files?all=true'
python scripts/cliproxyapi_manager.py vertex-import ./service-account.json --location us-central1
Start OAuth and open returned URL manually:
python scripts/cliproxyapi_manager.py raw GET /anthropic-auth-url
python scripts/cliproxyapi_manager.py raw GET /codex-auth-url
python scripts/cliproxyapi_manager.py raw GET '/gemini-cli-auth-url?project_id=my-gcp-project'
python scripts/cliproxyapi_manager.py raw GET /antigravity-auth-url
Poll state:
python scripts/cliproxyapi_manager.py raw GET '/get-auth-status?state=STATE_FROM_AUTH_URL'
Safe to do when asked generally:
GET /configGET /config.yamlGET /usageGET /logsGET /auth-filesGET /openai-compatibilitylist-aliasesendpointssetup, profiles, pathsPotentially destructive; only do when the user explicitly requests it:
PUT /config.yamlPUT full-array replacement endpointsDELETE /logsDELETE /api-keysDELETE /gemini-api-keyDELETE /codex-api-keyDELETE /claude-api-keyDELETE /openai-compatibilityDELETE /auth-filesDELETE /auth-files?all=true401 errors:
setup again or set CLIPROXYAPI_MANAGEMENT_KEY.403 errors:
404 on every management endpoint:
422 on PUT /config.yaml:
Connection refused:
references/management-api-full.md: full endpoint map and examples.references/api-endpoints.json: machine-readable endpoint list copied from the script.references/agent-usage-guide.md: short operating guide for weaker AI agents.development
Triggered when the user requests an image (e.g., architecture, flowchart, sequence diagram) or needs a technical illustration inserted into a document. This skill dynamically generates and inserts images using the official PlantUML public API.
development
Use proactively for Odoo work. Connect AI coding agents to Odoo through Python OdooRPC profiles, inspect live records, troubleshoot models, fields, access rights, modules, companies, connectors, imports, synchronization issues, odoo.conf, addons paths, backup restore, filestore checks, and guarded create/update/delete workflows.
testing
Standardize responses with a fixed execution structure. Use when users ask for workflow-style outputs, consistent task breakdowns, or reusable delivery checklists.
development
Automatically exposes local services using LocalTunnel via npx and provides the public URL along with the access password. Use when starting a new service or when external web access is requested.