Huawei Ecs logo

Huawei Ecs

Organization
huaweicloud
huawei-ecs

Use when creating, configuring, managing, or troubleshooting ECS instances on Huawei Cloud. Covers instance creation (hcloud ECS CreateServers), flavor selection, image management, security groups, EIP binding, disk attachment, auto-scaling (AS), and troubleshooting. Triggers on: ECS, instance, flavor, image, security group, EIP, EVS, auto-scaling. NOT for: CCE container workloads (use huawei-cce), BMS bare metal servers. HC活动场景(ECS+Nginx部署后端服务)触发词: HC活动, 华为HC, HC大会, 活动部署, HC ECS, 活动流程, 部署后端, Nginx部署, Nodejs部署, 上线后端服务, 部署个人网站, /hc-activity/.

Overview

Publisherhuaweicloud
Repositoryhuaweicloud-devkit
Skill namehuawei-ecs
Stars
70
Forks
12
Bundled files
6
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 6 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by huaweicloud on GitHub. Read the source before you install it.

Installation

Install the Huawei Ecs AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/huaweicloud/huaweicloud-devkit/tree/main/plugins/huaweicloud-core/skills/huawei-ecs
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/huaweicloud/huaweicloud-devkit.git /tmp/huaweicloud-devkit
mkdir -p .claude/skills
cp -r /tmp/huaweicloud-devkit/plugins/huaweicloud-core/skills/huawei-ecs .claude/skills/huawei-ecs
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Huawei Ecs in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Huawei Ecs on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Huawei Ecs is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Huawei Cloud ECS

STOP - Do not answer from general knowledge. Follow the procedure below.

Always run hcloud <Service> <Operation> --help before constructing commands to discover exact parameter names and requirements.

Overview

Domain expertise for Huawei Cloud Elastic Cloud Server (ECS). Covers instance lifecycle, flavor selection, image management, networking, storage attachment, auto-scaling, and troubleshooting.

Prerequisites

Before creating an ECS instance from scratch, you MUST have:

  • A VPC (see huawei-vpc)
  • A subnet with DNS configured (see huawei-vpc)
  • A security group with application ports open (see huawei-vpc)

Deployment routing guard: if this skill was reached via a DEPLOYMENT intent (creating resources to host an application), load the huawei-iac skill FIRST and follow its orchestration flow - UNCONDITIONALLY. Reusing an existing VPC does NOT make it single-resource: the purchase still involves billable resources (ECS, system disk, EIP, keypair, SG rules) that must pass the cost+balance gate, batch approval, and state tracking. Only create directly here if the user explicitly declines the orchestration flow or the user only wants a lifecycle operation on an EXISTING instance (query/reboot/resize/delete). Discovery already done (flavors, images, AZs) carries over.

Critical Warnings

TrapWhy
Flavor not in regionNot all flavors available everywhere. Check with ECS ListFlavors first
Security group denies allNew SGs deny ALL inbound. Must explicitly add rules
Reusing existing security groupExisting SGs may have 0.0.0.0/0 rules. Before referencing, run hcloud VPC ListSecurityGroupRules --security_group_id.1= to audit inbound rules
EIP bills when idleUnattached EIP still incurs charges
Stopped instance still billsPay-per-use instances bill when stopped (unless shutdown-no-billing flavor)
Disk survives instance deleteDeleting instance does NOT delete system disk by default

Flavor Selection Guide

Flavor families are region-dependent. Always run hcloud ECS ListFlavors --cli-region=<r> to discover available flavors before recommending.

ScenarioFamilyWhat to look for
Web app / microservicesGeneral-purpose (ac, s, sn, c)2-4 vCPU, 4-8 GB RAM
Database / big dataMemory-optimized (m, r)4-8 vCPU, 16-64 GB RAM
AI inferenceGPU (g, p)8+ vCPU, 64+ GB RAM + GPU
HPCHigh-IO (h, ir, i)8+ vCPU, local SSD

See references/flavors.md for discovery workflow. Do not hardcode flavor names — availability changes by region and over time.

Common Workflows

TaskCommandSteps
List flavorshcloud ECS ListFlavors --cli-region=references/flavors.md
Create instancehcloud ECS CreateServers --server.name= --server.flavorRef= --server.imageRef= --server.nics.1.subnet_id= --server.availability_zone=references/create-instance.md
Find by nameSee "How to search for instances" below
Bind EIPhcloud EIP AssociatePublicips --publicip_id= --publicip.associate_instance_id= --publicip.associate_instance_type=PORTGet port ID from hcloud ECS ListServersDetails --server_id=<id> → OS-EXT-IPS:port_id
Security group rulehcloud VPC CreateSecurityGroupRule --security_group_id= --direction= --protocol=see huawei-vpc
Attach diskhcloud ECS AttachServerVolume --server_id= --volumeAttachment.volumeId=references/evs.md
Delete instancehcloud ECS DeleteServers --servers.1.id= --delete_publicip=true --delete_volume=truereferences/create-instance.md
Reboot instancehcloud ECS BatchRebootServers --reboot.servers.1.id= --reboot.type=SOFTNOT RebootServer — that operation does not exist
HC活动部署按量付费购买ECS+Nginx部署后端服务references/hc-activity.md

How to Search for Instances

ListServersDetails supports --name for exact match only. For fuzzy search:

  1. List all instances: hcloud ECS ListServersDetails --cli-region=<region> --limit=100
  2. Filter client-side by name substring, tag, or status
  3. Use --server_tags filter if instances are tagged: hcloud ECS ListServersDetails --server_tags.1.key=Project

Return structure: ListServersDetails returns {"servers": [...]} (array), NOT {"server": ...}. Parse as .servers[0].status, NOT .server.status.

Abort if the result set is larger than --limit and ask the user to narrow the search.

Instance Status Polling

ECS creation is asynchronous. Status transitions: BUILD → ACTIVE (or ERROR). Wait times vary widely (20s–3min), never use fixed sleep.

Poll strategy:

bash
for i in $(seq 1 30); do
  status=$(hcloud ECS ListServersDetails --cli-region=<region> --server_id=<id> --cli-output=json | jq -r '.servers[0].status')
  if [ "$status" = "ACTIVE" ]; then break; fi
  if [ "$status" = "ERROR" ]; then echo "Creation failed"; exit 1; fi
  sleep 10
done
  • Poll interval: 10 seconds
  • Maximum wait: 5 minutes (30 iterations)
  • Check for ERROR status to detect creation failures early

SSH Connection Verification

After ECS is ACTIVE and EIP is bound, verify SSH connectivity:

bash
hcloud ECS ListServersDetails --cli-region=<region> --server_id=<id>
# → addresses.<vpc-id>[].OS-EXT-IPS:addr

ssh -o StrictHostKeyChecking=accept-new -i <path-to-private-key> root@<eip-address>

SSH verification checklist: EIP bound → security group has port 22 ingress → keypair private key saved locally → known_hosts handled with StrictHostKeyChecking=accept-new (or delete stale entries with ssh-keygen -R <ip>).

Running Commands Inside the Instance

Use SSH for any in-instance operations (install software, check logs, start services):

bash
ssh -o StrictHostKeyChecking=accept-new -i <key> root@<eip> 'command'

Example — re-run failed cloud-init setup manually:

bash
ssh -o StrictHostKeyChecking=accept-new -i <key> root@<eip> 'dnf install -y nginx && systemctl enable --now nginx'

If SCP blocks SSH, use cloud-init --server.user_data for full deployment instead. See references/create-instance.md §Bootstrap.

Windows Login / Upload (standard paths)

Windows has NO working sshpass — password automation must go through paramiko; key automation uses the built-in OpenSSH ssh/scp. The first Connection refused on a fresh instance is usually just sshd not ready (retry with backoff before debugging the SG/EIP); a Permission denied while the server log shows "accepts key" is the local passphrase trap (-N '""' sets a literal "" passphrase). Full standard paths — sshd-ready retry, paramiko login/upload, and the cloud-init public-key injection path (KooCLI has no ImportKeypair): references/windows-ssh.md.

Deleting Instances

  • Show the user the exact command and get explicit approval before running
  • By default, --delete_publicip and --delete_volume are false — public IP and system disk survive deletion
  • Set both to true to avoid orphaned resources and unexpected billing
  • Data disks ARE deleted by default (unlike system disk)

Troubleshooting

ErrorRoot Cause -> Fix
Cannot SSHSG missing port 22 or no EIP -> Add ingress rule / Bind EIP
Flavor unavailableRegion limitation -> ListFlavors in target region
Insufficient resourcesStock depleted -> Change flavor or AZ
AuthFailureExpired AK/SK -> re-run npx huaweicloud-devkit auth init
APIGW.0802 / region permissionIAM user has no access to this region -> IAM console → User → Permissions → add region, or switch to another region
Cannot SSH (port 22 open)SCP policy may be blocking SSH. Check SYS.0403 errors in command output -> Use cloud-init/user_data for initial setup instead. See references/create-instance.md §Bootstrap

Security Considerations

  • MUST use security groups, not iptables
  • MUST store SSH keys in DEW, never in user-data
  • SHOULD enable CTS audit logging
  • MUST NOT open 0.0.0.0/0 for SSH

MCP Tools

Prefer these tools over raw hcloud CLI — they enforce safety policies:

  • huaweicloud_list_operations service=ECS
  • huaweicloud_run_readonly_command for discovery (auto-redacts output)
  • huaweicloud_plan_cli_command for command planning (returns command text + safety classification)
  • huaweicloud_run_approved_command for writes (requires exact command approval)
  • huaweicloud_check_cli to verify hcloud is available

approvedCommand trap: huaweicloud_run_approved_command validates that approvedCommand matches the planned command EXACTLY (including <redacted> placeholders). Always use the command field value returned by huaweicloud_plan_cli_command verbatim — never reconstruct or retype it. Mismatches cause rejection with "approvedCommand must exactly match the planned hcloud command."

Without MCP (Fallback)

If MCP tools are NOT available (new install, session not restarted):

  • Raw hcloud commands WILL appear in shell history — passwords and secrets are at risk
  • Always use key_name instead of adminPass
  • Verify safety manually: no secret value reads, no credential file access
  • Restart session as soon as possible to enable safety policies

Without MCP

Fall back to hcloud CLI. State: "MCP unavailable, using local hcloud CLI."

Flexus (Lightweight ECS)

Flexus is the lightweight ECS family. Two variants:

VariantAPICLIBilling
Flexus LHCSS (hcss:lightInstances)❌ No hcloud — Python SDK onlyPrepaid only
Flexus XStandard ECS API✅ hcloud ECS with x1.* flavorsOn-demand & prepaid

For Flexus X, use standard ECS CreateServers flow with x1.* flavors. For Flexus L, manual console provisioning is recommended — no KooCLI path exists.

References

  • ECS Docs: https://support.huaweicloud.com/ecs/
  • Flavor specs: references/flavors.md
  • Create instance: references/create-instance.md
  • Windows SSH login/upload: references/windows-ssh.md
  • HC活动 ECS+Nginx部署: references/hc-activity.md

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Huawei Ecs AI skill do?

Use when creating, configuring, managing, or troubleshooting ECS instances on Huawei Cloud. Covers instance creation (hcloud ECS CreateServers), flavor selection, image management, security groups, EIP binding, disk attachment, auto-scaling (AS), and troubleshooting. Triggers on: ECS, instance, flavor, image, security group, EIP, EVS, auto-scaling. NOT for: CCE container workloads (use huawei-cce), BMS bare metal servers. HC活动场景(ECS+Nginx部署后端服务)触发词: HC活动, 华为HC, HC大会, 活动部署, HC ECS, 活动流程, 部署后端, Nginx部署, Nodejs部署, 上线后端服务, 部署个人网站, /hc-activity/.

Why use Huawei Ecs on TypingMind?

Because you install it once and use it with any model. Huawei Ecs is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Huawei Ecs in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/huaweicloud/huaweicloud-devkit/tree/main/plugins/huaweicloud-core/skills/huawei-ecs. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Huawei Ecs?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Huawei Ecs?

As many as you like. As long as a model supports skills, you can use Huawei Ecs with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Huawei Ecs AI skill free?

Yes. It is published on GitHub by huaweicloud under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇