Implement GitOps workflows with ArgoCD and Flux for automated, declarative Kubernetes...
npx skills add macstadium/orka3-cli-claude-skill
Or install specific skill: npx add-skill https://github.com/macstadium/orka3-cli-claude-skill
# Description
Expert guidance for using the Orka3 CLI to manage macOS virtualization infrastructure. Use when users need to work with Orka VMs, images, nodes, or cluster resources through natural language requests like "Create 3 VMs with macOS Sonoma", "Show me all running VMs", "How do I configure VM networking?", "Set up a CI/CD pipeline", or any VM management, troubleshooting, or infrastructure configuration tasks. Covers VM lifecycle, image management, OCI registries, node operations, namespaces, RBAC, and authentication.
# SKILL.md
name: orka3-cli
description: Expert guidance for using the Orka3 CLI to manage macOS virtualization infrastructure. Use when users need to work with Orka VMs, images, nodes, or cluster resources through natural language requests like "Create 3 VMs with macOS Sonoma", "Show me all running VMs", "How do I configure VM networking?", "Set up a CI/CD pipeline", or any VM management, troubleshooting, or infrastructure configuration tasks. Covers VM lifecycle, image management, OCI registries, node operations, namespaces, RBAC, and authentication.
Orka3 CLI
Overview
This skill provides expert guidance for using the Orka3 CLI, MacStadium's command-line tool for managing macOS virtualization infrastructure. Use this skill to translate natural language requests into proper Orka3 CLI commands and workflows.
Core Concepts
Architecture Types:
- amd64 (Intel): Mac Pro, Mac mini (Intel), iMac Pro
- arm64 (Apple Silicon): Mac mini (M1/M2/M3/M4), Mac Studio
Key Components:
- VMs: Virtual machines running macOS
- Images: Disk images containing macOS OS and configurations (local or OCI-based)
- Nodes: Physical Mac hardware providing compute resources
- Namespaces: Resource isolation and access control (default: orka-default)
- Service Accounts: Authentication for CI/CD integrations
Authentication:
- User login: orka3 login (MacStadium Customer Portal credentials)
- Service accounts: For automation and CI/CD
- Tokens: Valid for 1 hour, stored in ~/.kube/config
Getting Started Workflow
For first-time setup, follow this sequence:
# 1. Configure the CLI
orka3 config set --api-url <ORKA_API_URL>
# 2. Set up shell completion (optional)
orka3 completion bash # or zsh, fish, powershell
# 3. Authenticate
orka3 login
# 4. Verify connectivity
orka3 node list
Finding API URL:
- Orka 2.1+: http://10.221.188.20 (Private-1 .20 address)
- Pre-2.1: http://10.221.188.100
- Orka domain: https://company.orka.app
- Custom domain: https://company.com
Quick VM Operations
Deploy a VM (simplest form):
# Deploy from OCI image (recommended)
orka3 vm deploy --image ghcr.io/macstadium/orka-images/sonoma:latest
# Deploy from local image
orka3 vm deploy --image sonoma-90gb-orka3-arm
# Deploy with specific resources
orka3 vm deploy --image <IMAGE> --cpu 6 --memory 16
# Deploy with custom name
orka3 vm deploy my-vm --image <IMAGE> --cpu 4
List VMs:
orka3 vm list # Basic info
orka3 vm list --output wide # Detailed info
orka3 vm list <VM_NAME> # Specific VM
Delete VMs:
orka3 vm delete <VM_NAME>
orka3 vm delete <VM1> <VM2> # Multiple VMs
Connect to VMs:
- Screen Sharing: vnc://<VM-IP>:<Screenshare-port> (from orka3 vm list)
- Default credentials: admin/admin (for MacStadium base images)
Image Management
Working with Local Images:
orka3 image list # List local images
orka3 image copy <SRC> <DST> # Copy image
orka3 image delete <IMAGE> # Delete image
Image Caching (Apple Silicon only):
# Cache image on specific nodes
orka3 imagecache add <IMAGE> --nodes <NODE1>,<NODE2>
# Cache on all nodes in namespace
orka3 imagecache add <IMAGE> --all
# Cache on tagged nodes
orka3 imagecache add <IMAGE> --tags <TAG>
# Check caching status
orka3 imagecache info <IMAGE>
# List cached images
orka3 imagecache list
OCI Registry Integration:
# Add registry credentials (admin only)
orka3 regcred add https://ghcr.io --username <USER> --password <TOKEN>
# Deploy from OCI image
orka3 vm deploy --image ghcr.io/org/repo/image:tag
# Push VM to OCI registry (ARM only)
orka3 vm push <VM_NAME> ghcr.io/org/repo/image:tag
orka3 vm get-push-status <JOB_NAME>
VM Lifecycle Operations
Saving Changes:
# Save as new image (preserves original)
orka3 vm save <VM_NAME> <NEW_IMAGE_NAME>
# Commit to original image (modifies original)
orka3 vm commit <VM_NAME>
# Push to OCI registry (ARM only)
orka3 vm push <VM_NAME> <IMAGE:TAG>
Resizing Disks:
# Apple Silicon (automatic)
orka3 vm resize <VM_NAME> <NEW_SIZE_GB>
# Intel (with automatic repartition)
orka3 vm resize <VM_NAME> <SIZE> --user admin --password admin
Power Operations (Intel only):
orka3 vm start <VM_NAME> # Power on
orka3 vm stop <VM_NAME> # Power off
orka3 vm suspend <VM_NAME> # Suspend
orka3 vm resume <VM_NAME> # Resume
orka3 vm revert <VM_NAME> # Revert to image
VM Configuration Templates
Create reusable templates for consistent VM deployments:
# Create template
orka3 vm-config create <NAME> \
--image <IMAGE> \
--cpu 6 \
--memory 12
# Create with node affinity
orka3 vm-config create <NAME> \
--image <IMAGE> \
--tag jenkins-builds \
--tag-required
# Deploy from template
orka3 vm deploy --config <TEMPLATE_NAME>
# Deploy and override settings
orka3 vm deploy --config <TEMPLATE> --cpu 8 --memory 16
# List and delete templates
orka3 vm-config list
orka3 vm-config delete <NAME>
Node Management
Basic Operations:
orka3 node list # List nodes
orka3 node list --output wide # Detailed info
orka3 node list <NODE_NAME> # Specific node
Node Tagging (admin only):
# Tag node for affinity
orka3 node tag <NODE> <TAG>
# Remove tag
orka3 node untag <NODE> <TAG>
# Check tags
orka3 node list <NODE> --output wide
Moving Nodes Between Namespaces (admin only):
orka3 node namespace <NODE> <TARGET_NAMESPACE>
Namespace Management (Admin)
Creating and Managing Namespaces:
# Create namespace
orka3 namespace create orka-test
# Create for custom pods
orka3 namespace create orka-cp --enable-custom-pods
# List namespaces
orka3 namespace list
# Delete namespace (must be empty)
orka3 namespace delete orka-test
After Creating a Namespace:
1. Move nodes to provide resources: orka3 node namespace <NODE> <NAMESPACE>
2. Grant user access: orka3 rb add-subject --namespace <NS> --user <EMAIL>
3. Grant service account access: orka3 rb add-subject --namespace <NS> --serviceaccount <SA_NS>:<SA_NAME>
Access Control (Admin)
Service Accounts:
# Create service account
orka3 sa create <SA_NAME>
# Create in specific namespace
orka3 sa create <SA_NAME> --namespace <NS>
# Get token (valid 1 year by default)
orka3 sa token <SA_NAME>
# Get token with custom duration
orka3 sa token <SA_NAME> --duration 1h
# Get token with no expiration
orka3 sa token <SA_NAME> --no-expiration
# List service accounts
orka3 sa list
orka3 sa list --namespace <NS>
# Delete service account
orka3 sa delete <SA_NAME>
Rolebindings (RBAC):
# Grant user access to namespace
orka3 rb add-subject --namespace <NS> --user <EMAIL>
# Grant multiple users access
orka3 rb add-subject --namespace <NS> --user <EMAIL1>,<EMAIL2>
# Grant service account access
orka3 rb add-subject --namespace <NS> --serviceaccount <SA_NS>:<SA_NAME>
# List subjects in namespace
orka3 rb list-subjects --namespace <NS>
# Revoke access
orka3 rb remove-subject --namespace <NS> --user <EMAIL>
orka3 rb remove-subject --namespace <NS> --serviceaccount <SA_NS>:<SA_NAME>
Common Workflows
Setting Up a CI/CD Pipeline:
1. Create service account: orka3 sa create sa-jenkins
2. Get token: orka3 sa token sa-jenkins
3. Configure token in CI/CD tool
4. Create VM config for builds: orka3 vmc create ci-build --image <IMAGE> --cpu 4
5. Deploy in CI: orka3 vm deploy --config ci-build
Multi-Namespace Setup:
1. Create namespace: orka3 namespace create orka-team
2. Move nodes: orka3 node namespace mini-1 orka-team
3. Grant access: orka3 rb add-subject --namespace orka-team --user [email protected]
4. Create service account: orka3 sa create sa-team-ci --namespace orka-team
Image Preparation Workflow:
1. Deploy base VM: orka3 vm deploy --image ghcr.io/macstadium/orka-images/sonoma:latest
2. Connect via Screen Sharing
3. Install software and configure
4. Save image: orka3 vm save <VM> my-configured-image
5. Delete VM: orka3 vm delete <VM>
6. Deploy new VMs: orka3 vm deploy --image my-configured-image
Command Patterns & Flags
Common Global Flags:
- -n, --namespace: Specify namespace (default: orka-default)
- -o, --output: Output format (table (default), wide, json)
- -h, --help: Display help
Output Formats:
- table: Essential information (default)
- wide: Extended details and additional columns
- json: Machine-readable for scripting
Command Aliases:
- vm-config → vmc
- serviceaccount → sa
- rolebinding → rb
- registrycredential → regcred
- imagecache → ic
Architecture-Specific Features
Intel Only (amd64):
- orka3 image generate: Create empty images for OS installs
- orka3 iso commands: Manage installation ISOs
- Power operations: start, stop, suspend, resume, revert
- --iso: Attach ISO during deployment
- --gpu: Enable GPU passthrough (requires --disable-vnc)
- --system-serial: Custom serial number
- --disable-net-boost: Disable network performance boost
Apple Silicon Only (arm64):
- orka3 vm push: Push to OCI registries
- orka3 imagecache: Cache images on nodes
- OCI image support: Deploy directly from registries
- Automatic disk resize (no SSH credentials needed)
Getting Help
Built-in Help:
orka3 --help # Main help
orka3 <command> --help # Command help
orka3 <command> <sub> --help # Sub-command help
Checking Async Operations:
- Images: orka3 image list <IMAGE>
- Image caching: orka3 imagecache info <IMAGE>
- Image push: orka3 vm get-push-status <JOB_NAME>
JSON Output with jq:
# Get all VM names
orka3 vm list -o json | jq -r '.items[].name'
# Get VMs with >4 CPUs
orka3 vm list -o json | jq '.items[] | select(.cpu > 4)'
# Count VMs
orka3 vm list -o json | jq '.items | length'
Reference Documentation
For detailed command syntax, options, and advanced usage patterns:
- references/command-reference.md: Complete command syntax for all operations
- references/workflows.md: Common workflows and detailed examples
- references/troubleshooting.md: Common issues and solutions
Best Practices
- Always verify namespace context - Use
-nflag or check current context - Use output formats appropriately -
--output widefor troubleshooting,jsonfor scripting - Cache images before mass deployments - Improves deployment consistency
- Use VM configs for repeatability - Create templates for common VM types
- Tag nodes for workload isolation - Use
--tagfor targeted deployments - Test with single VM first - Verify image/config before mass deployment
- Save images regularly - Preserve work with
vm saveorvm commit - Use service accounts for automation - Never use user credentials in CI/CD
- Check async operation status - Don't assume operations completed
- Use OCI registries for images - Modern approach recommended over deprecated remote-image commands
# README.md
Orka3 CLI Claude Skill
A Claude Code skill that enables Claude to execute Orka3 CLI commands for managing macOS virtual machines. When used with Claude Code, this skill provides hands-on automation of MacStadium's virtualization infrastructure—deploying VMs, managing images, and configuring clusters directly from natural language requests.
Features
- Natural language to Orka3 CLI command translation
- VM lifecycle management (deploy, save, delete, resize)
- Image management (local and OCI registries)
- Node operations and tagging
- Namespace and access control (RBAC)
- Service account management for CI/CD
- Troubleshooting guidance
How It Works
This skill behaves differently depending on how you access Claude:
| Environment | Capabilities | Use Case |
|---|---|---|
| Claude Code (CLI) | Executes orka3 commands directly on your machine. Deploys VMs, manages images, and interacts with your cluster in real-time. |
Automation, hands-on management |
| Regular Claude (claude.ai) | Provides documentation, explains commands, and helps plan workflows. Cannot execute commands or interact with your cluster. | Learning, planning, troubleshooting |
With Claude Code, you can say "Create 3 VMs with macOS Sonoma" and Claude will actually deploy them to your cluster.
Note: When using Claude Code to interact with your Orka cluster, make sure you're connected via VPN using the connection details from your IP plan.
With regular Claude, the same request will explain the commands needed, but you'll need to copy and run them yourself.
Prerequisites
- Claude Code CLI installed
- Access to an Orka3 cluster
- Orka3 CLI installed (
orka3)
Installation
Option 1: Clone directly (recommended)
# Clone directly to the skills directory
git clone https://github.com/macstadium/orka3-cli-claude-skill.git ~/.claude/skills/orka3-cli
Option 2: Manual copy
# Clone the repository
git clone https://github.com/macstadium/orka3-cli-claude-skill.git
# Create skills directory and copy skill files
mkdir -p ~/.claude/skills/orka3-cli/references
cp orka3-cli-claude-skill/SKILL.md ~/.claude/skills/orka3-cli/
cp orka3-cli-claude-skill/references/*.md ~/.claude/skills/orka3-cli/references/
Verify installation
After installation, your skill directory should look like this:
~/.claude/skills/orka3-cli/
├── SKILL.md
└── references/
├── command-reference.md
├── workflows.md
└── troubleshooting.md
Restart Claude Code after installation for the skill to be detected.
Usage
Once installed, Claude Code will automatically detect the skill when you ask questions about Orka3 or macOS VM management.
With Claude Code (Command Execution)
Claude Code can execute commands directly on your machine:
"Create 3 VMs with macOS Sonoma" → Deploys 3 VMs to your cluster
"Show me all running VMs" → Runs orka3 vm list and displays results
"Delete all VMs in namespace dev" → Removes the VMs after confirmation
"Cache the Sequoia image on all nodes" → Executes caching across your cluster
With Regular Claude (Guidance Only)
When using claude.ai without Claude Code, you'll receive documentation and command explanations:
"How do I create VMs?" → Explains orka3 vm deploy syntax and options
"What's the command to list images?" → Shows orka3 image list usage
"Help me plan a CI/CD pipeline" → Provides step-by-step workflow guidance
"Troubleshoot VM connectivity issues" → Suggests diagnostic commands to run
You'll need to copy the provided commands and run them in your own terminal.
Skill Contents
| File | Description |
|---|---|
SKILL.md |
Main skill definition with core concepts and quick reference |
references/command-reference.md |
Complete command syntax for all Orka3 CLI operations |
references/workflows.md |
Step-by-step guides for common multi-step tasks |
references/troubleshooting.md |
Solutions to common issues and error messages |
Capabilities
VM Management
- Deploy VMs from local or OCI images
- Configure CPU, memory, and disk resources
- Save and commit VM states to images
- Resize VM disks
- Power operations (Intel: start/stop/suspend/resume)
Image Management
- List, copy, and delete local images
- Cache images on nodes (Apple Silicon)
- Push images to OCI registries
- Generate empty images for OS installs (Intel)
Infrastructure
- View and manage cluster nodes
- Tag nodes for workload affinity
- Create and manage namespaces
- Configure access control with rolebindings
Automation
- Create and manage service accounts
- Generate authentication tokens
- Create VM configuration templates
- Set up CI/CD pipelines
Architecture Support
| Feature | Intel (amd64) | Apple Silicon (arm64) |
|---|---|---|
| VM Deploy | Yes | Yes |
| Power Operations | Yes | No |
| GPU Passthrough | Yes | No |
| ISO Attach | Yes | No |
| Image Cache | No | Yes |
| OCI Push | No | Yes |
Documentation
Contributing
See CONTRIBUTING.md for guidelines on how to contribute to this project.
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Support
- For Orka3 CLI issues: MacStadium Support
- For skill issues: GitHub Issues
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.