dxyz-cPanel
/install dxyz-cpanel
dxyz-cPanel Skill
Manage cPanel hosting accounts via API (version 134.0.11 compatible).
Quick Start
Connect to cPanel API
# Using API token (recommended)
export CPANEL_HOST="https://your-server.com:2087"
export CPANEL_TOKEN="your-api-token"
# Test connection
exec command="curl -s -H 'Authorization: whm $CPANEL_TOKEN' '$CPANEL_HOST/json-api/version' | jq ."
Common Operations
List Accounts:
exec command="curl -s -H 'Authorization: whm $CPANEL_TOKEN' '$CPANEL_HOST/json-api/listaccts?api.version=1' | jq ."
Create Email Account:
exec command="curl -s -H 'Authorization: cpanel $CPANEL_TOKEN' '$CPANEL_HOST/execute/Email/add_pop?email=user&password=secure123&domain=example.com' | jq ."
API Types
| API | Purpose | Endpoint Prefix |
|---|---|---|
| WHM API | Server admin, account management | /json-api/ |
| UAPI | cPanel user operations | /execute/ |
| cPanel API 2 | Legacy (deprecated) | /json-api/cpanel2 |
Authentication
API Token (Recommended)
- Generate in WHM → Development → Manage API Tokens
- Use header:
Authorization: whm \x3Ctoken>(WHM) orAuthorization: cpanel \x3Ctoken>(UAPI)
Basic Auth (Less Secure)
curl -u 'username:password' 'https://server:2087/json-api/...'
Core Operations
Account Management (WHM API)
Create Account:
exec command='curl -s -H "Authorization: whm $CPANEL_TOKEN" "$CPANEL_HOST/json-api/createacct?api.version=1&username=newuser&domain=newdomain.com&password=secure123&plan=default" | jq .'
Suspend/Unsuspend:
# Suspend
exec command='curl -s -H "Authorization: whm $CPANEL_TOKEN" "$CPANEL_HOST/json-api/suspendacct?api.version=1&user=username&reason=non-payment" | jq .'
# Unsuspend
exec command='curl -s -H "Authorization: whm $CPANEL_TOKEN" "$CPANEL_HOST/json-api/unsuspendacct?api.version=1&user=username" | jq .'
Terminate Account:
exec command='curl -s -H "Authorization: whm $CPANEL_TOKEN" "$CPANEL_HOST/json-api/removeacct?api.version=1&user=username" | jq .'
DNS Management (UAPI)
List DNS Zones:
exec command='curl -s -H "Authorization: cpanel $CPANEL_TOKEN" "$CPANEL_HOST/execute/DNS/zone_records?domain=example.com" | jq .'
Add DNS Record:
exec command='curl -s -H "Authorization: cpanel $CPANEL_TOKEN" "$CPANEL_HOST/execute/DNS/add_zone_record?domain=example.com&name=www&type=A&address=192.168.1.1&ttl=3600" | jq .'
Email Management (UAPI)
List Email Accounts:
exec command='curl -s -H "Authorization: cpanel $CPANEL_TOKEN" "$CPANEL_HOST/execute/Email/list_pops?domain=example.com" | jq .'
Create Email Account:
exec command='curl -s -H "Authorization: cpanel $CPANEL_TOKEN" "$CPANEL_HOST/execute/Email/add_pop?email=newuser&password=secure123&domain=example.com"a=250" | jq .'
Set Email Forwarder:
exec command='curl -s -H "Authorization: cpanel $CPANEL_TOKEN" "$CPANEL_HOST/execute/Email/add_forwarder?domain=example.com&email=user&fwdopt=fwd&[email protected]" | jq .'
Database Management (UAPI)
Create MySQL Database:
exec command='curl -s -H "Authorization: cpanel $CPANEL_TOKEN" "$CPANEL_HOST/execute/Mysql/create_database?name=mydb" | jq .'
Create MySQL User:
exec command='curl -s -H "Authorization: cpanel $CPANEL_TOKEN" "$CPANEL_HOST/execute/Mysql/create_user?name=myuser&password=secure123" | jq .'
Grant Privileges:
exec command='curl -s -H "Authorization: cpanel $CPANEL_TOKEN" "$CPANEL_HOST/execute/Mysql/set_privileges_on_database?user=myuser&database=mydb&privileges=ALL%20PRIVILEGES" | jq .'
SSL Certificates (UAPI)
List SSL Certificates:
exec command='curl -s -H "Authorization: cpanel $CPANEL_TOKEN" "$CPANEL_HOST/execute/SSL/list_certs" | jq .'
Install Let's Encrypt:
exec command='curl -s -H "Authorization: cpanel $CPANEL_TOKEN" "$CPANEL_HOST/execute/SSL/install_ssl?domain=example.com&cert=$(cat cert.pem | jq -sR .)&key=$(cat key.pem | jq -sR .)" | jq .'
File Operations (UAPI)
List Files:
exec command='curl -s -H "Authorization: cpanel $CPANEL_TOKEN" "$CPANEL_HOST/execute/Fileman/list_files?dir=public_html" | jq .'
Upload File:
exec command='curl -s -H "Authorization: cpanel $CPANEL_TOKEN" "$CPANEL_HOST/execute/Fileman/upload_files?dir=public_html&[email protected]" | jq .'
Backup Operations (WHM API)
Create Account Backup:
exec command='curl -s -H "Authorization: whm $CPANEL_TOKEN" "$CPANEL_HOST/json-api/backupacct?api.version=1&user=username" | jq .'
Restore Account:
exec command='curl -s -H "Authorization: whm $CPANEL_TOKEN" "$CPANEL_HOST/json-api/restoreacct?api.version=1&user=username" | jq .'
Scripts
The skill includes helper scripts:
scripts/cpanel_api.sh- Generic API caller with error handlingscripts/create_account.sh- Create hosting accountscripts/manage_dns.sh- DNS zone managementscripts/manage_email.sh- Email account operationsscripts/manage_database.sh- MySQL/PostgreSQL operationsscripts/backup_account.sh- Backup/restore operations
Execute scripts using exec tool:
exec command="bash ~/.picoclaw/workspace-default/skills/dxyz-cpanel/scripts/cpanel_api.sh listaccts"
References
Load reference files using read_file tool when needed:
- API Reference: references/api-reference.md - Complete API endpoint reference
- WHM API: references/whm-api.md - WHM API 1 documentation
- UAPI: references/uapi.md - UAPI module reference
- Error Codes: references/error-codes.md - Common errors and solutions
- Version 134 Changes: references/version-134-changes.md - What's new in 134.0.11
Configuration
Environment Variables
CPANEL_HOST="https://your-server.com:2087" # WHM port
CPANEL_TOKEN="your-api-token" # API token
CPANEL_USER="root" # WHM username
Config File
Create ~/.cpanel/config.json:
{
"host": "https://your-server.com:2087",
"token": "your-api-token",
"default_plan": "default",
"default_quota": 1000,
"default_bwlimit": 10000
}
Version Compatibility
This skill supports:
- cPanel 134.0.11 (primary target)
- cPanel 134.x.x (all 134 minor versions)
- cPanel 130.x - 133.x (backward compatible, some features may differ)
Version-Specific Notes
- 134.0.11: Current target version
- 134.0.x: API stable, minor bug fixes
- 134.1.x: Feature additions, API backward compatible
- Pre-134: Some UAPI modules may differ
Best Practices
- Use API Tokens: More secure than basic auth
- Rate Limiting: Max 100 requests/minute for WHM API
- Error Handling: Check
metadata.resultfor status - Idempotency: Use
api.version=1for consistent responses - Logging: Enable API logs in WHM for audit trail
- Backups: Always backup before destructive operations
Common Errors
| Error | Cause | Solution |
|---|---|---|
Access denied |
Invalid token/permissions | Regenerate token, check ACL |
Account exists |
Duplicate username | Use different username |
Invalid domain |
Domain format/syntax | Check DNS, use FQDN |
Quota exceeded |
Disk limit reached | Increase quota or cleanup |
Security Notes
- Store API tokens securely (use environment variables or encrypted config)
- Use HTTPS (port 2087 for WHM, 2083 for cPanel)
- Limit API token permissions via ACL
- Enable two-factor authentication for WHM access
- Audit API token usage regularly
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install dxyz-cpanel - 安装完成后,直接呼叫该 Skill 的名称或使用
/dxyz-cpanel触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
dxyz-cPanel 是什么?
Manage cPanel hosting accounts via API for version 134.0.11 and compatible versions. Supports account management, DNS zones, email accounts, databases (MySQL... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 106 次。
如何安装 dxyz-cPanel?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install dxyz-cpanel」即可一键安装,无需额外配置。
dxyz-cPanel 是免费的吗?
是的,dxyz-cPanel 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
dxyz-cPanel 支持哪些平台?
dxyz-cPanel 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 dxyz-cPanel?
由 picodozbotdoz(@picodozbotdoz)开发并维护,当前版本 v1.0.0。