Huawei Cloud Kunpeng Source Code Migrate logo

Huawei Cloud Kunpeng Source Code Migrate

Organization
huaweicloud
huawei-cloud-kunpeng-source-code-migrate

Analyze the migrability of C/C++/ASM/Fortran/Go/Java/Python/Scala source code to Kunpeng (ARM64) platform using Huawei DevKit CLI tool. Connect to the source server via SSH, install DevKit, scan source code, and generate a migration assessment report. If the user does not have a remote server, this skill can automatically provision a Kunpeng ECS instance on Huawei Cloud (Guiyang Region 1) using hcloud CLI. Use this skill when the user wants to: (1) assess source code portability/migrability to Kunpeng ARM platform, (2) scan C/C++/ASM/Fortran/Go/Java/Python/Scala code for migration issues, (3) generate a Kunpeng migration report for their software project, (4) check source code compatibility with ARM64/Kunpeng architecture, (5) provision a Kunpeng server on Huawei Cloud for migration assessment. Trigger: user mentions "鲲鹏移植", "鲲鹏迁移", "Kunpeng migration", "Kunpeng porting", "源码迁移", "源码移植", "ARM64迁移", "ARM移植评估", "DevKit", "可迁移性分析", "migrability", "porting assessment", "migration report", "鲲鹏评估", "购买鲲鹏服务器", "鲲鹏云服务器", "Kunpeng ECS"

Overview

Publisherhuaweicloud
Repositoryhuaweicloud-skills
Skill namehuawei-cloud-kunpeng-source-code-migrate
Stars
59
Forks
24
Bundled files
19
LicenseMIT
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.

  • 19 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 Cloud Kunpeng Source Code Migrate 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-skills/tree/master/skills/computing/kunpeng/huawei-cloud-kunpeng-source-code-migrate
  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-skills.git /tmp/huaweicloud-skills
mkdir -p .claude/skills
cp -r /tmp/huaweicloud-skills/skills/computing/kunpeng/huawei-cloud-kunpeng-source-code-migrate .claude/skills/huawei-cloud-kunpeng-source-code-migrate
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Huawei Cloud Kunpeng Source Code Migrate 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 Cloud Kunpeng Source Code Migrate 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 Cloud Kunpeng Source Code Migrate 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.

Kunpeng Source Code Migration Assessment

Analyze the migrability of C/C++/ASM/Fortran/Go/Java/Python/Scala source code to Kunpeng (ARM64) platform using Huawei DevKit CLI tool.

Overview

This skill assesses source code migrability to the Kunpeng (ARM64) platform using Huawei DevKit CLI. It connects to a source server via SSH (or installs locally), installs DevKit, scans source code, and generates a migration assessment report. If the user has no remote server, it can automatically provision a Kunpeng ECS instance on Huawei Cloud (Guiyang Region 1) via hcloud CLI.

⚠️ Analysis depth varies by language (DevKit limitation): C/C++/ASM = deep analysis; Fortran = shallow; Go/Java/Python/Scala = file-level stats only (architecture-dependent code like JNI/CGo/ctypes/unsafe will NOT be detected — manual review required). See Supported Languages for details.

Architecture: Local detection + remote execution + SFTP transfer. All SSH operations use the unified scripts/ssh_client.py (paramiko + password env var), cross-platform consistent.

Applicable scenarios: Assess source code portability to Kunpeng ARM; scan C/C++/ASM/Fortran/Go/Java/Python/Scala code; generate a migration report; check ARM64 compatibility; provision a Kunpeng server on Huawei Cloud.

Report save path: Windows → C:\devkit-report\, Linux/macOS → ~/devkit-report/ (resolved from current user's home, NOT hardcoded /home/).

Prerequisites

CLI version requirements:

ToolVersionPurpose
Python3.xRun ssh_client.py, detect_os.py, paramiko dependency
paramikolatest stableSSH connection (pip install paramiko)
hcloud (KooCLI)>= 3.2.0Only needed for provisioning path (Step 3d)
DevKit CLIauto-installed by install_devkit.shSource code migration scan

Authentication:

  • Root access required (default install path): install_devkit.sh installs to /usr/local and creates a /usr/local/bin/devkit symlink, which requires root. Non-root users MUST use the --no-sudo flag (installs to $HOME/.local/devkit) and add DevKit to PATH manually: export PATH=$HOME/.local/devkit:$PATH. If system dependencies (python3, pip3, curl) are missing and --no-sudo is set, the script will error out — install them first or run as root.
  • SSH user: The default SSH user is root (see KUNPENG_SERVER_USER). Non-root SSH users are supported, but the remote install path and report download path will be under that user's home directory (see --no-sudo above).
  • SSH credentials (existing server, Step 3c): User must set env vars KUNPENG_SERVER_HOST, KUNPENG_SERVER_PORT (default 22), KUNPENG_SERVER_USER (default root), MIGRATE_SSH_PASS in their own terminal. AI must NEVER ask for or echo these values.
  • Huawei Cloud AK/SK (provisioning path, Step 3d): User must run hcloud configure set --cli-region=cn-southwest-2 --cli-access-key=<your-ak> --cli-secret-key=<your-sk> in their own terminal. AI must NEVER ask for AK/SK.

IAM permissions (Step 3d only): Required for provisioning a Kunpeng ECS on Huawei Cloud. Minimum set: ECS create/list/delete, VPC create/get/delete, Subnet, SecurityGroup, EIP create/delete, IMS list, IAM projects list. See references/iam-policies.md for the full policy JSON and setup instructions.

OS support: DevKit local install supports openEuler/CentOS/Ubuntu/Kylin/UOS/EulerOS/Debian/SUSE/NeoKylin. Windows and macOS are NOT supported for local install — must use a remote Linux server.

Core Commands

1. Local OS detection:

bash
python <skill_dir>/scripts/detect_os.py

2. SSH connection & remote execution (unified paramiko client):

bash
python <skill_dir>/scripts/ssh_client.py test                              # Test SSH connection
python <skill_dir>/scripts/ssh_client.py exec "uname -a" 30                # Execute remote command
python <skill_dir>/scripts/ssh_client.py put <local> <remote>              # SFTP upload single file
python <skill_dir>/scripts/ssh_client.py put-dir <local_dir> <remote_dir>  # SFTP upload directory
python <skill_dir>/scripts/ssh_client.py get-report                        # Download migration report

3. DevKit installation:

bash
bash <skill_dir>/scripts/install_devkit.sh --yes

4. Source code migration scan (DevKit CLI):

bash
# C/C++ project (with build command):
devkit porting src-mig -i /home/project -s 'c, c++, asm' -b make -c 'make all' -p gcc9.3.0 -o /tmp/devkit-report -r all

# Java/Python project (no build command):
devkit porting src-mig -i /home/project -s 'java, python' -o /tmp/devkit-report -r all

5. Kunpeng ECS auto-provisioning (Step 3d only):

bash
bash <skill_dir>/scripts/provision_kunpeng_server.sh --confirm

6. hcloud CLI install & configure (Step 3d only):

bash
curl -LO "https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/huaweicloud-cli-linux-amd64.tar.gz"
tar -xzf huaweicloud-cli-linux-amd64.tar.gz && chmod +x hcloud && sudo mv hcloud /usr/local/bin/
hcloud configure set --cli-region=cn-southwest-2 --cli-access-key=<your-ak> --cli-secret-key=<your-sk>
hcloud version   # Expected: >= 3.2.0

Parameter Confirmation

AI must confirm the following parameters with the user before execution.

SSH connection parameters (env vars, set by user in their own terminal):

ParameterEnv VarRequiredDefaultDescription
Server addressKUNPENG_SERVER_HOSTYes-Remote server IP/hostname
SSH portKUNPENG_SERVER_PORTNo22SSH port
SSH usernameKUNPENG_SERVER_USERNorootSSH login user
SSH passwordMIGRATE_SSH_PASSYes-Read by paramiko, never in argv, wiped from os.environ after each connection

DevKit scan parameters (confirm with user before scanning):

ParameterCLI optionRequiredDefaultDescription
Source path-iYes-Source code directory (MUST ask user first)
Output dir-oYes/tmp/devkit-reportReport output dir (must exist)
Languages-sYes-c, c++, asm, fortran, go, java, python, scala (lowercase, comma-separated)
Build command-cNoNonee.g. 'make all'
Build tool-bNoNonemake/cmake/automake/go/bazel/blade
Compiler version-pNoNonee.g. gcc9.3.0
Report format-rNoallall/json/html/csv
Target OS-tNoauto-detecte.g. openEuler22.03
Concurrency-npNo1Concurrent processes

⚠️ AI MUST ask the user for the source code path before scanning. Do NOT scan or upload local files without user confirmation.

⛔ Prohibited Operations

Prohibited OperationReason
❌ Ask user to input SSH credentials in conversationCredentials must only be read from environment variables
❌ Echo/print SSH password or any credentialsPrevent credential leakage
❌ Store credentials in plain text filesCredentials must only exist in environment variables
❌ Execute destructive commands on remote server (rm -rf, format, etc.)Prevent irreversible damage
❌ Modify source code without user confirmationMigration assessment is read-only
❌ Install packages outside DevKit scopeOnly DevKit and its dependencies may be installed
❌ Scan without asking the user for the source code pathMust always ask where the source code is
❌ Delete any cloud resources without explicit user confirmationResource deletion is irreversible and HIGH-RISK
❌ Execute any hcloud ... Delete* command autonomouslyAll delete operations require explicit user confirmation

🚫 Not Supported (Capability Boundary)

The following operations are outside this skill's scope. If a user requests any of them, refuse and suggest the alternative.

Not Supported OperationReasonAlternative
❌ Binary migration assessment (.so/.dll/.exe/.o/.a)DevKit CLI only analyzes source code, not compiled binariesUse Huawei Kunpeng binary migration tools separately
❌ Database migration assessmentDevKit CLI does not analyze database schemas/SQL portabilityUse Huawei Cloud DRS (Data Replication Service) or UGO (Database and Application Migration)
❌ Performance tuning / optimization recommendationsThis skill focuses on migration assessment only; the report contains fix suggestions, not performance analysisUse DevKit performance analysis tools (separate from src-mig)
❌ Languages outside C/C++/ASM/Fortran/Go/Java/Python/Scala (e.g. Rust, C#, Ruby, Node.js)DevKit CLI does not support these languagesUse architecture-specific compilers and manual review for Rust etc.
❌ DevKit GUI / desktop version installationThis skill only installs and uses the DevKit CLI versionDownload DevKit GUI separately from Huawei Kunpeng community
❌ Container/Docker image migration assessmentDevKit CLI analyzes source code, not container imagesRebuild container images on Kunpeng ARM64 base images
❌ OS-level migration assessment (kernel, drivers, system libraries)DevKit CLI focuses on application source codeUse Huawei Cloud migration tools for OS-level assessment

If a user requests a prohibited operation, refuse and inform: "Per security constraints, this skill does not allow [specific operation]. Please perform this operation manually if needed."

If a user requests a not-supported operation, refuse and inform: "This skill does not support [specific operation]. [Reason]. Please use [alternative] instead."

Architecture

Kunpeng Source Code Migration Assessment
├── DetectLocalOS     (Detect agent OS → determine DevKit install path)
├── PrepareServer     (Determine where to install DevKit and run scan)
│   ├── LocalInstall  (Install DevKit locally — only if OS is supported)
│   ├── RemoteInstall (Install DevKit on remote server via SSH)
│   │   ├── HasServer (Configure SSH via ssh_client.py: paramiko + password env var)
│   │   └── NoServer  (Install hcloud CLI → Provision Kunpeng ECS → Configure SSH)
│   └── NotSupported  (Local OS not supported → must use remote server)
├── ConnectServer     (SSH connect via paramiko + MIGRATE_SSH_PASS env var)
├── InstallDevKit     (Detect OS and install DevKit CLI tool)
└── ScanSourceCode    (Scan source code → generate report → save to fixed local path)
    └── ReportSave    (Windows: C:\devkit-report\ | Linux/macOS: ~/devkit-report/)

⚠️ Task 0 (DetectLocalOS + PrepareServer) MUST be executed first — it determines the entire workflow path.

SSH Connection Strategy

All SSH operations use the unified scripts/ssh_client.py (paramiko + password from env var). No ssh/scp commands, no ControlMaster, no key injection, no Huawei Cloud region dependency. Works identically on Windows, Linux, and macOS.

⚠️ SSH remote execution limitation: DevKit's src-mig scan may differ between interactive and non-interactive SSH sessions. ssh_client.py exec requests a PTY (get_pty=True) to mitigate this. If scan results look suspicious (0 issues for code with known x86 dependencies), re-run locally via interactive SSH and compare. For critical migrations, validate by compiling on Kunpeng.

Environment variables (set by user in their own terminal; AI never sees values):

VariableDescriptionDefault
KUNPENG_SERVER_HOSTRemote server IP/hostname(required)
KUNPENG_SERVER_PORTSSH port22
KUNPENG_SERVER_USERSSH usernameroot
MIGRATE_SSH_PASSSSH password (read by paramiko, never in argv, wiped after each connection)(required)

Set env vars: Linux/macOS export KUNPENG_SERVER_HOST='<ip>' etc.; Windows PS $env:KUNPENG_SERVER_HOST='<ip>' etc. See references/scripts-guide.md for full setup.

Credential resolution priority (first match wins): (1) current process env vars → (2) /tmp/kunpeng_server_env.sh or %TEMP%/kunpeng_server_env.sh → (3) Windows user-level registry (winreg) → (4) default.

ssh_client.py subcommands:

SubcommandDescription
testVerify SSH connection (echo SSH_OK && uname -a)
exec "<cmd>" [timeout]Execute a shell command on the remote server (uses get_pty=True)
put <local> <remote>Upload a single file via SFTP
put-dir <local_dir> <remote_dir>Upload a directory recursively via SFTP
get <remote> <local>Download a single file via SFTP
get-dir <remote_dir> <local_dir>Download a directory recursively via SFTP
get-report [remote_dir] [local_dir]Download DevKit report (filtered by Code_Porting_*.{html,json,csv,txt}). Defaults: remote=/tmp/devkit-report, local=C:\devkit-report (Win) or ~/devkit-report (Linux)
save-envSave connection info (host/port/user) to a temp env file (no password)

📦 SFTP-First File Transfer (Critical for Windows + MSYS2)

⚠️ On Windows + MSYS2/Git Bash, the shell converts Unix paths to Windows paths before Python sees them (e.g., /tmp/foo → C:/Users/.../Temp/2/foo). For file transfer, use paramiko SFTP API directly from Python, not ssh_client.py CLI subcommands. See references/scripts-guide.md#sftp-first-file-transfer for the code example and references/troubleshooting.md#7-msys2-path-conversion-error-windows-only.

AI agent workflow: (1) File transfer → paramiko SFTP API directly; (2) Command execution → ssh_client.py exec "<cmd>"; (3) Script execution → upload via SFTP, then exec "bash /tmp/script.sh".

Built-in Scripts

AI MUST use these scripts instead of manually executing step-by-step commands.

📄 Detailed guide → references/scripts-guide.md

ScriptDescription
detect_os.pyLocal OS detection (outputs os_type/arch/local_install_supported)
ssh_client.pyUnified cross-platform SSH client (paramiko + env vars). Subcommands: test, exec, put, put-dir, get, get-dir, get-report, save-env
install_devkit.shDevKit CLI installation (auto-detect OS/arch, download, install, verify)
provision_kunpeng_server.shKunpeng ECS provisioning (Huawei Cloud Guiyang Region 1)

Supported Languages

LanguageFile ExtensionsAnalysis DepthMigration Concerns
C.c, .hDeepInline assembly, platform-specific headers, byte order, pointer size
C++.cpp, .cc, .cxx, .hppDeepSame as C, plus name mangling, ABI compatibility
Assembly (ASM).s, .S, .asmDeepArchitecture-specific instructions, registers, calling conventions
Fortran.f, .f90, .f95, .f03ShallowCompiler intrinsics, MPI library compatibility. Only partial detection.
Go.goFile-level statsCGO calls, assembly files, architecture-specific build tags NOT detected. Manual review required.
Java.javaFile-level statsJNI native libraries, architecture-specific dependencies NOT detected. Manual review required.
Python.pyFile-level statsC extensions (Cython, CFFI), native bindings NOT detected. Manual review required.
Scala.scalaFile-level statsJNI calls, native library dependencies NOT detected. Manual review required.

⚠️ For Go/Java/Python/Scala projects: DevKit only performs file-level statistics, not deep code analysis. A "Do Not Need Migrated" result does NOT mean the code is architecture-safe. If your project uses JNI, CGo, ctypes, unsafe, sun.misc.Unsafe, native C extensions, or architecture-specific build tags, you MUST manually review those code paths. For reliable migration assessment of such code, consider converting the native/FFI parts to C/C++ and scanning them separately with DevKit.


Core Workflows

Task 0: Detect Local OS and Prepare Environment

This is the FIRST task. It detects the agent's local OS and determines the DevKit installation path.

Step 1: Detect local OS:

bash
python <skill_dir>/scripts/detect_os.py

Outputs os_type, os_name, os_version, arch, local_install_supported as key=value pairs. Works on all platforms without external dependencies.

⚠️ AI MUST use detect_os.py instead of manually running uname -m, cat /etc/os-release, PowerShell, etc.

DevKit-supported local OS list:

OSMinimum VersionNotes
openEuler20.03 LTSRecommended for Kunpeng
CentOS7.6Also supports 8.0
Ubuntu18.04Also supports 20.04, 22.04
KylinV10Domestic OS
UOS20Domestic OS
EulerOS2.8Also supports 2.9
Debian10Also supports 11
SUSE12
NeoKylinV7Domestic OS

Windows and macOS are NOT supported for local DevKit installation. DevKit must be installed on a remote Linux server.

Step 2: Ask user where to install DevKit

  • If local OS IS supported (LOCAL_INSTALL_SUPPORTED=true): Ask "local install" or "remote server install"
    • "local install" → Step 3a
    • "remote server install" → Step 3b
  • If local OS is NOT supported: Ask "existing remote Linux server" or "provision Kunpeng server on Huawei Cloud"
    • "existing remote Linux server" → Step 3c
    • "provision Kunpeng server" → Step 3d

Step 3a: Local Install

  1. Install DevKit: bash <skill_dir>/scripts/install_devkit.sh --yes
    • Root user (default): Installs to /usr/local/devkit, creates /usr/local/bin/devkit symlink.
    • Non-root user: Use bash <skill_dir>/scripts/install_devkit.sh --yes --no-sudo → installs to $HOME/.local/devkit. Then add to PATH: export PATH=$HOME/.local/devkit:$PATH. Requires system deps (python3, pip3, curl) already present; if missing, install them first or use --skip-deps after manual install.
    • --skip-deps: Skip dependency installation (use when python3/pip3/curl are already installed).
  2. Ask user for local source code path
  3. Run DevKit scan locally (no SSH needed)
  4. Skip Task 1 — proceed directly to Task 3 with local paths

📄 Details → references/task-local-devkit.md

Step 3b: Remote Install — Ask about remote server

Ask "existing remote Linux server" or "provision Kunpeng server" → Step 3c or 3d.

Step 3c: User has remote server — Configure SSH

User sets KUNPENG_SERVER_HOST/PORT/USER and MIGRATE_SSH_PASS in their terminal (AI never sees values). Verify:

bash
python <skill_dir>/scripts/ssh_client.py test

⚠️ No region dependency: Remote server can be on any cloud or on-premises. No hcloud CLI needed for SSH.

After verification succeeds, proceed to Task 1.

Step 3d: User has no server — Provision Kunpeng ECS on Huawei Cloud

⛔ CRITICAL: AI MUST use provision_kunpeng_server.sh to create ALL cloud resources. NEVER manually call hcloud APIs individually.

Default ECS spec:

  • Flavor: kc1.2xlarge.2 (Kunpeng ARM64 8C16G). Flavor inventory is dynamic — if the default is out of stock, override via --flavor (e.g., --flavor kc1.large.2 for 2C4G, --flavor kc1.xlarge.2 for 4C8G). The script will detect flavor-related errors and suggest this option.
  • Image: Huawei Cloud EulerOS 2.0 Standard 64 bit for ARM
  • Disk: 40GB GPSSD
  • Region: cn-southwest-2 (Guiyang 1)
  1. Check hcloud CLI installation and authentication
  2. Confirm provisioning with user (present spec and estimated cost)
  3. Execute: bash <skill_dir>/scripts/provision_kunpeng_server.sh --confirm
    • Creates VPC → Subnet → Security Group + SSH rule → EIP → ECS
    • Generates random root password, saves to /tmp/kunpeng_server_env.sh as MIGRATE_SSH_PASS (chmod 600)
    • To override flavor: bash <skill_dir>/scripts/provision_kunpeng_server.sh --confirm --flavor kc1.large.2
  4. Load env: source /tmp/kunpeng_server_env.sh
  5. Verify SSH: python <skill_dir>/scripts/ssh_client.py test
  6. Proceed to Task 1
  7. After scan completes (Task 3): Present Resource Cleanup Reminder

📄 Details → references/task-prepare-server.md

Task 1: Connect to Source Code Server via SSH

Verify connection using python <skill_dir>/scripts/ssh_client.py test. All subsequent operations use ssh_client.py subcommands (see SSH Connection Strategy above).

📄 Details → references/task-connect-server.md

Task 2: Install DevKit CLI Tool

Install DevKit CLI on the target machine using scripts/install_devkit.sh. The script auto-detects OS/architecture, installs dependencies, downloads the correct package, and verifies installation.

⚠️ AI MUST use scripts/install_devkit.sh instead of manually running step-by-step commands.

📄 Details → references/task-install-devkit.md

Task 3: Scan Source Code and Generate Migration Report

⚠️ CRITICAL RULES:

  1. MUST ask user for the source code path before scanning. Do NOT scan without user confirmation.
  2. MUST NOT scan local source code without permission.
  3. MUST NOT upload local files to remote server without permission.
  4. CAN list available source code directories on remote server to help user choose.

Report save path (local download):

Agent OSLocal Report Save Path
WindowsC:\devkit-report
Linux / macOS~/devkit-report (current user's home)

The skill MUST create the directory if it does not exist. Report files (HTML, JSON, CSV) MUST be saved directly under <save_path>/ (no project_name subdirectory). This path is fixed unless user explicitly requests a different location. On Linux/macOS the path is resolved via os.path.expanduser('~') so it works for any user (root → /root/devkit-report, other users → /home/<user>/devkit-report).

Downloading the report:

bash
# Download with defaults (remote=/tmp/devkit-report, local=C:\devkit-report on Windows):
python <skill_dir>/scripts/ssh_client.py get-report

# Or specify custom paths:
python <skill_dir>/scripts/ssh_client.py get-report /tmp/devkit-report /home/devkit-report

⚠️ AI MUST use get-report (or paramiko SFTP API) to download the report. Do NOT use exec with base64/cat to download files.

📄 Details → references/task-scan-source-code.md


DevKit CLI Command Reference

The primary tool is Kunpeng DevKit CLI (devkit command).

bash
devkit porting src-mig -i <source_path> -o <output_path> -s '<language_list>' [options]

Required: -i (source dir), -o (output dir, must exist), -s (languages, comma-separated: c, c++, asm, fortran, go, java, python, scala).

Optional: -c (build cmd, e.g. 'make all'), -b (build tool: make/cmake/automake/go/bazel/blade), -p (compiler, e.g. gcc9.3.0), -f (Fortran compiler), -t (target OS, auto-detect), -r (report format: all/json/html/csv, default all), -l (log level 0-3), -np (concurrency), --ignore/--ignore-path (exclude rules/paths), --kp-compatibility (cross-gen check).

Compiler versions (-p): gcc4.8.5, gcc7.3.0, gcc9.3.0, gcc10.3.0, gcc12.3.0, bisheng compiler3.0.0/4.0.0, gcc for openeuler3.0.3, etc.

⚠️ The devkit binary must be run from its installation directory (e.g., cd /usr/local/devkit && ./devkit), or the directory must be in PATH. The output directory (-o) must already exist.

📄 Full CLI reference → references/devkit-cli-reference.md


References

DocumentDescription
scripts-guide.mdBuilt-in scripts: SSH client, provisioning, DevKit installation
prerequisites.mdPrerequisites and authentication
iam-policies.mdIAM permission policies for ECS provisioning (Step 3d)
cli-installation-guide.mdhcloud (KooCLI) installation guide
task-prepare-server.mdTask 0: Detect OS, prepare environment
task-local-devkit.mdTask 0a: Local DevKit install
task-connect-server.mdTask 1: SSH connect to server
task-install-devkit.mdTask 2: Install DevKit CLI
task-scan-source-code.mdTask 3: Scan source code
devkit-cli-reference.mdDevKit CLI command reference
devkit-installation-guide.mdDevKit installation guide
migration-report-guide.mdMigration report interpretation
troubleshooting.mdTroubleshooting and common issues
acceptance-criteria.mdAcceptance criteria
verification-method.mdVerification methods

Resource Cleanup Reminder

⚠️ After the scan completes and the report is presented, AI MUST remind the user to clean up provisioned resources (Step 3d only). Present as TEXT ONLY — never execute delete commands. Include a table of created resources (ECS, VPC, Subnet, EIP, Security Group) with their IDs, and remind: "Deletion is IRREVERSIBLE. AI will NOT execute these commands. Please run them manually."

For Step 3c (existing server) and Step 3a (local install): No cleanup reminder needed.

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 Cloud Kunpeng Source Code Migrate AI skill do?

Analyze the migrability of C/C++/ASM/Fortran/Go/Java/Python/Scala source code to Kunpeng (ARM64) platform using Huawei DevKit CLI tool. Connect to the source server via SSH, install DevKit, scan source code, and generate a migration assessment report. If the user does not have a remote server, this skill can automatically provision a Kunpeng ECS instance on Huawei Cloud (Guiyang Region 1) using hcloud CLI. Use this skill when the user wants to: (1) assess source code portability/migrability to Kunpeng ARM platform, (2) scan C/C++/ASM/Fortran/Go/Java/Python/Scala code for migration issues, (...

Why use Huawei Cloud Kunpeng Source Code Migrate on TypingMind?

Because you install it once and use it with any model. Huawei Cloud Kunpeng Source Code Migrate 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 Cloud Kunpeng Source Code Migrate in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/huaweicloud/huaweicloud-skills/tree/master/skills/computing/kunpeng/huawei-cloud-kunpeng-source-code-migrate. 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 Cloud Kunpeng Source Code Migrate?

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 Cloud Kunpeng Source Code Migrate?

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

Is the Huawei Cloud Kunpeng Source Code Migrate AI skill free?

Yes. It is published on GitHub by huaweicloud under the MIT 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 👇