Agent skill

Kcli Provider Development

by karmab in karmab/kcli

Guides implementation of new virtualization providers for kcli.

Apache-2.0Auto-check passedDevOps & Cloud

Install Kcli Provider Development

skills CLI
$ npx skills add karmab/kcli --skill kcli-provider-development -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install karmab/kcli kcli-provider-development --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/karmab/kcli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/kcli-provider-development .claude/skills/kcli-provider-development && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
kcli-provider-development
GitHub stars
653
Token cost
~1.9k tokens
SKILL.md length
652 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
Apache-2.0

At a glance

Guides implementation of new virtualization providers for kcli.

  • Works in 5 steps: Create Provider Directory → Implement the Provider Class → Core Methods to Implement → …
  • Adding support for a new cloud platform
  • SKILL.md covers Provider Architecture, Required Implementation Steps, Info Method Structure and Reference Implementations, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Kcli Provider Development is an agent skill from karmab/kcli. Guides implementation of new virtualization providers for kcli. Use when adding support for a new cloud platform, hypervisor, or infrastructure provider.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in DevOps & Cloud. The repository describes itself as: Management tool for virtualization and kubernetes platforms. The licence is Apache-2.0.

When your agent uses it

  • Adding support for a new cloud platform
  • Infrastructure provider

Example prompts

  • “Use the kcli-provider-development skill to guide implementation of new virtualization providers for kcli”
  • “/kcli-provider-development”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Create Provider Directory
  2. Implement the Provider Class
  3. Core Methods to Implement
  4. Register Provider in config.py
  5. Add Dependencies to setup.py

What it can do on your machine

Read from SKILL.md and the folder at commit 6e1c0b5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Kcli Provider Development loads about 1.9k tokens when it runs. Until then it costs about 45 tokens; SKILL.md has 652 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~45
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from karmab/kcli at commit 6e1c0b5, republished under its Apache-2.0 licence (© karmab). 652 words, ~1,918 tokens.

Download SKILL.mdSave it as .claude/skills/kcli-provider-development/SKILL.md (or your agent's skills folder).
name
kcli-provider-development
description
Guides implementation of new virtualization providers for kcli. Use when adding support for a new cloud platform, hypervisor, or infrastructure provider.

kcli Provider Development

Provider Architecture

Providers are located in kvirt/providers/ as subdirectories. Each provider implements the interface defined in kvirt/providers/sampleprovider.py (class Kbase).

Required Implementation Steps

1. Create Provider Directory
kvirt/providers/yourprovider/
├── __init__.py      # Contains your Kyourprovider class
└── (optional helpers)
2. Implement the Provider Class

Your class must:

  • Set self.conn attribute in __init__ (set to None if backend unreachable)
  • Set self.debug from the debug parameter
  • Return standardized response dicts from methods

Return Value Pattern:

python
# Success
return {'result': 'success'}

# Failure
return {'result': 'failure', 'reason': "VM %s not found" % name}
3. Core Methods to Implement

VM Lifecycle (required):

  • create() - Create VM with all parameters (cpus, memory, disks, nets, etc.)
  • start(name) - Start VM
  • stop(name, soft=False) - Stop VM
  • restart(name) - Restart VM (default calls start)
  • delete(name, snapshots=False, keep_disks=False) - Delete VM
  • list() - Return list of [name, state, ip, source, plan, profile]
  • info(name, output, fields, values, vm, debug) - Return VM details dict
  • exists(name) - Check if VM exists
  • status(name) - Return VM status
  • ip(name) - Return IP string
  • clone(old, new, full=False, start=False) - Clone VM
  • export(name, image=None) - Export VM as image
  • console(name, tunnel, tunnelhost, tunnelport, tunneluser, web) - Graphical console
  • serialconsole(name, web) - Serial console

Storage:

  • create_pool(name, poolpath, pooltype, user, thinpool)
  • delete_pool(name, full)
  • list_pools() - Return list of pool names
  • get_pool_path(pool) - Get pool path
  • add_disk(name, size, pool, thin, image, shareable, existing, interface, novm, overrides)
  • delete_disk(name, diskname, pool, novm)
  • create_disk(name, size, pool, thin, image) - Create standalone disk
  • list_disks() - Return dict {'diskname': {'pool': poolname, 'path': name}}
  • disk_exists(pool, name) - Check if disk exists
  • detach_disks(name) - Detach all disks from VM

Networking:

  • create_network(name, cidr, dhcp, nat, domain, plan, overrides)
  • delete_network(name, cidr, force)
  • update_network(name, dhcp, nat, domain, plan, overrides)
  • list_networks() - Return dict of networks
  • info_network(name) - Get network info
  • net_exists(name) - Check if network exists
  • network_ports(name) - List ports on network
  • add_nic(name, network, model)
  • delete_nic(name, interface)
  • update_nic(name, index, network) - Update NIC

Subnets (cloud providers):

  • create_subnet(name, cidr, dhcp, nat, domain, plan, overrides)
  • delete_subnet(name, force)
  • update_subnet(name, overrides)
  • list_subnets() - Return subnet dict
  • info_subnet(name) - Get subnet info

Images:

  • volumes(iso=False, extended=False) - List available images
  • add_image(url, pool, short, cmds, name, size, convert)
  • delete_image(image, pool)

Snapshots:

  • create_snapshot(name, base) - Create snapshot
  • delete_snapshot(name, base) - Delete snapshot
  • list_snapshots(base) - List snapshots (returns list)
  • revert_snapshot(name, base) - Revert to snapshot

Update Operations:

  • update_metadata(name, metatype, metavalue, append)
  • update_memory(name, memory)
  • update_cpus(name, numcpus)
  • update_start(name, start) - Set autostart
  • update_information(name, information) - Update info metadata
  • update_iso(name, iso) - Change attached ISO
  • update_flavor(name, flavor) - Change VM flavor

Buckets (object storage):

  • create_bucket(bucket, public) - Create storage bucket
  • delete_bucket(bucket) - Delete bucket
  • list_buckets() - List all buckets
  • list_bucketfiles(bucket) - List files in bucket
  • upload_to_bucket(bucket, path, overrides, temp_url, public)
  • download_from_bucket(bucket, path)
  • delete_from_bucket(bucket, path)

Security Groups (cloud providers):

  • create_security_group(name, overrides)
  • delete_security_group(name)
  • update_security_group(name, overrides)
  • list_security_groups(network) - List security groups

DNS:

  • reserve_dns(name, nets, domain, ip, alias, force, primary, instanceid)
  • list_dns_zones() - List DNS zones
  • dnsinfo(name) - Return (dnsclient, domain) for VM

Other:

  • close() - Clean up connection
  • info_host() - Return host info dict
  • vm_ports(name) - List ports on VM
  • list_flavors() - Return [[name, numcpus, memory], ...] if platform supports flavors
Show full SKILL.md (219 more words)Show less
4. Register Provider in config.py

Add import and instantiation in kvirt/config.py (around lines 102-220):

python
elif self.type == 'yourprovider':
    # Get provider-specific options
    option1 = options.get('option1')
    if option1 is None:
        error("Missing option1 in configuration. Leaving")
        sys.exit(1)
    try:
        from kvirt.providers.yourprovider import Kyourprovider
    except Exception as e:
        exception = e if debug else None
        dependency_error('yourprovider', exception)
    k = Kyourprovider(option1=option1, debug=debug)
5. Add Dependencies to setup.py
python
YOURPROVIDER = ['required-package1', 'required-package2']

# Add to extras_require dict:
extras_require={
    'yourprovider': YOURPROVIDER,
    # ...
}

# Add to ALL list if needed:
ALL = EXTRAS + AWS + ... + YOURPROVIDER

Info Method Structure

The info() method should build a dict with these keys:

  • name, autostart, plan, profile, image, ip, memory, numcpus, creationdate
  • nets: list of {'device': device, 'mac': mac, 'net': network, 'type': network_type}
  • disks: list of {'device': device, 'size': disksize, 'format': diskformat, 'type': drivertype, 'path': path}
  • snapshots: list of {'snapshot': snapshot, 'current': current}

Then call: common.print_info(yamlinfo, output=output, fields=fields, values=values)

Reference Implementations

Study these existing providers:

  • kvirt/providers/kvm/ - Libvirt (most complete reference, ~4300 lines)
  • kvirt/providers/aws/ - AWS cloud (~2200 lines)
  • kvirt/providers/gcp/ - Google Cloud Platform (~2100 lines)
  • kvirt/providers/kubevirt/ - KubeVirt on Kubernetes (~1900 lines)
  • kvirt/providers/vsphere/ - VMware vSphere (~1900 lines)
  • kvirt/providers/azure/ - Microsoft Azure (~1500 lines)
  • kvirt/providers/ibm/ - IBM Cloud (~1500 lines)
  • kvirt/providers/ovirt/ - oVirt/RHV (~1400 lines)
  • kvirt/providers/openstack/ - OpenStack (~1350 lines)
  • kvirt/providers/proxmox/ - Proxmox VE (~1200 lines)
  • kvirt/providers/hcloud/ - Hetzner Cloud (~550 lines)
  • kvirt/providers/web/ - Web-based provider (~530 lines)
  • kvirt/providers/fake/ - Minimal stub for testing (~20 lines)

Provider Complexity Guide

Not all providers need to implement every method. Focus on:

  1. Minimum viable: create, delete, list, info, start, stop, exists, status, ip
  2. Storage: add_disk, delete_disk, list_disks, create_pool, delete_pool, list_pools
  3. Networking: create_network, delete_network, list_networks, net_exists
  4. Images: volumes, add_image, delete_image
  5. Advanced: Snapshots, cloning, export, buckets, security groups (as needed)

Methods can return {'result': 'success'} with a print("not implemented") for optional features.

© karmab, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/kcli-provider-development of karmab/kcli.

Open the folder on GitHubat commit 6e1c0b5

Compare with similar skills

Kcli Provider Development next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Kcli Provider Development compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Kcli Provider Development this skillkarmab/kcli653—~1.9kAutomated safety check: PassApache-2.0
Monitor CInrwl/nx29k6 repos~4.7kAutomated safety check: PassMIT
Terraform and OpenTofu Guideagentscope-ai/QwenPaw35k6 repos~4.2kAutomated safety check: PassApache-2.0
Vercel Optimize Auditvercel-labs/agent-skills32k9 repos~4.3kAutomated safety check: PassNone
Openclaw Live Updateropenclaw/openclaw392k—~3.7kAutomated safety check: PassMIT
Analyze GitHub Action Logswithastro/astro63k1 repos~1.3kAutomated safety check: PassCustom licence

Similar skills

  • Monitor CI

    nrwl/nx

    Monitor Nx Cloud CI pipeline and handle self-healing fixes. An agent skill from nrwl/nx.

    29k GitHub starsUsed in 6 repos~4.7k tokens
    DevOps & CloudAuto-check passed
  • Terraform and OpenTofu Guide

    agentscope-ai/QwenPaw

    Guidance for writing and testing Terraform and OpenTofu code: module structure, naming, test approaches, CI/CD workflows, state handling and security scanning.

    35k GitHub starsUsed in 6 repos~4.2k tokens
    DevOps & CloudAuto-check passed
  • Vercel Optimize Audit

    vercel-labs/agent-skills

    Official

    Runs a metrics-first audit of a deployed Vercel project, gating investigations on real signals to produce ranked, citation-backed cost and performance recommendations.

    32k GitHub starsUsed in 9 repos~4.3k tokens
    DevOps & CloudAuto-check passed
  • Openclaw Live Updater

    openclaw/openclaw

    Maintain the canonical live OpenClaw main checkout, macOS LaunchAgent-managed Gateway, local macOS app, exact-head main CI, and recurring full release validation.

    392k GitHub stars~3.7k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Official

    Analyze recent GitHub Actions workflow runs to identify patterns, mistakes, and improvements.

    63k GitHub starsUsed in 1 repo~1.3k tokens
    DevOps & CloudAuto-check passed
  • Creates and queries KubeSphere users, workspaces and projects and assigns built-in roles, defaulting to least privilege and never deleting anything.

    17k GitHub starsUsed in 1 repo~3.1k tokens
    DevOps & CloudAuto-check passed

More from karmab/kcli

All 8 skills in this repo
  • Guides deployment and management of Kubernetes clusters with kcli.

    653 GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Kcli

    karmab/kcli

    Comprehensive guide for kcli usage. An agent skill from karmab/kcli.

    653 GitHub stars~2.6k tokensUpdated today
    Auto-check: warnings
  • Guides creation of kcli plan files for deploying VMs, networks, and infrastructure.

    653 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Guides kcli configuration and provider setup. An agent skill from karmab/kcli.

    653 GitHub stars~1.5k tokensUpdated today
    Auto-check: warnings
  • Kcli Ksushy

    karmab/kcli

    Guides interaction with kcli VMs via ksushy (Redfish emulator).

    653 GitHub stars~1k tokensUpdated today
    Auto-check: warnings
  • Kcli Testing

    karmab/kcli

    Guides testing and code quality for kcli. An agent skill from karmab/kcli.

    653 GitHub stars~1.3k tokensUpdated today
    Auto-check: warnings

Categories

Questions about Kcli Provider Development

What does Kcli Provider Development do?

Guides implementation of new virtualization providers for kcli. Kcli Provider Development is an agent skill from karmab/kcli. Guides implementation of new virtualization providers for kcli.

When should I use Kcli Provider Development?

Kcli Provider Development fits situations like: adding support for a new cloud platform; infrastructure provider.

How do I install Kcli Provider Development in Claude Code?

Run `npx skills add karmab/kcli --skill kcli-provider-development -a claude-code`. Or copy the skill folder (skills/kcli-provider-development in karmab/kcli) into .claude/skills/kcli-provider-development in your project. Claude Code loads it when a task matches its description.

How do I install Kcli Provider Development in Codex?

Run `npx skills add karmab/kcli --skill kcli-provider-development -a codex`. Or copy the skill folder (skills/kcli-provider-development in karmab/kcli) into .agents/skills/kcli-provider-development in your project. Codex loads it when a task matches its description.

Can I use Kcli Provider Development in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add karmab/kcli --skill kcli-provider-development -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/kcli-provider-development, .gemini/skills/kcli-provider-development, .github/skills/kcli-provider-development and .opencode/skills/kcli-provider-development in your project.

What does Kcli Provider Development need to run?

SKILL.md names no scripts, command-line tools or credentials: Kcli Provider Development is instructions for the agent only. Our summary lists: Python 3.

Does Kcli Provider Development access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Kcli Provider Development safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Kcli Provider Development use?

Kcli Provider Development is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Kcli Provider Development use?

About 1.9k tokens (SKILL.md is roughly 7.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Kcli Provider Development?

Skills that share tags, products or a category with Kcli Provider Development: Monitor CI (nrwl/nx, 29k stars), Terraform and OpenTofu Guide (agentscope-ai/QwenPaw, 35k stars), Vercel Optimize Audit (vercel-labs/agent-skills, 32k stars) and Openclaw Live Updater (openclaw/openclaw, 392k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Kcli Provider Development?

karmab (a GitHub user) maintains it in karmab/kcli, which has 653 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 7, 2026.

Source: karmab/kcli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.