Installs and manages KASM Workspaces, a container-based VDI platform for streaming desktops to browsers. Supports Ubuntu ARM64, desktop streaming, isolated browser sessions, and remote workspace access. Use when: installing KASM on Ubuntu ARM64, setting up VDI, configuring browser-based desktops, deploying on OCI instances. Keywords: kasm workspaces, VDI, virtual desktop, browser streaming, ARM64, kasm port 8443, container desktop
/plugin marketplace add evolv3-ai/vibe-skills/plugin install evolv3-ai-vibe-skills@evolv3-ai/vibe-skillsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
README.mdassets/env-templateinput-schema.jsonlib/kasm-api.shlib/prompts.shlib/utils.shmodules/03-backup-configuration.shreferences/INSTALLATION.mdreferences/QUICKSTART.mdreferences/README-WIZARD.mdreferences/cloudflare-tunnel.mdreferences/post-installation-interview-spec.mdPurpose: Install KASM Workspaces on a single Ubuntu server and configure secure browser-based desktops.
STOP. Before ANY installation commands, collect ALL parameters from the user.
Copy this checklist and confirm each item:
Required Parameters:
- [ ] KASM_SERVER_IP - Target server IP address
- [ ] SSH_USER - SSH username (default: ubuntu)
- [ ] SSH_KEY_PATH - Path to SSH private key (default: ~/.ssh/id_rsa)
- [ ] KASM_ADMIN_PASSWORD - Admin password (minimum 12 characters)
- [ ] KASM_ADMIN_EMAIL - Admin email (default: admin@kasm.local)
Resource Parameters:
- [ ] Server RAM - Minimum 8GB (4GB KASM + 4GB per concurrent session)
- [ ] SWAP_SIZE_GB - Swap file size (default: 8GB, recommended for ARM64)
Conditional Parameters (ask user):
- [ ] Using Cloudflare Tunnel for HTTPS? (Y/N)
If Y: CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID, TUNNEL_HOSTNAME
- [ ] Custom KASM port? (default: 443 after install, 8443 during install)
DO NOT proceed to Step 1 until ALL required parameters are confirmed.
Based on user answers, follow the appropriate workflow:
Use when: New server, no existing KASM installation.
references/INSTALLATION.mdUse when: KASM already installed, need to configure modules.
references/QUICKSTART.mdDetermine access method based on Step 0 answers:
| Scenario | Action |
|---|---|
| Cloudflare Tunnel = Yes | Read references/cloudflare-tunnel.md (uses noTLSVerify: true) |
| Direct IP only (dev) | Access via https://SERVER_IP (accept self-signed cert) |
Run this verification checklist:
Verification:
- [ ] KASM UI accessible at https://SERVER_IP (or tunnel hostname)
- [ ] Login with admin credentials works
- [ ] At least 8 KASM containers running (docker ps | grep kasm)
- [ ] If tunnel: HTTPS working at TUNNEL_HOSTNAME
If login fails: Extract credentials from install_log.txt - see references/INSTALLATION.md section "Get Admin Credentials".
Detailed references (one level deep):
references/INSTALLATION.mdreferences/cloudflare-tunnel.mdreferences/QUICKSTART.mdreferences/README-WIZARD.mdreferences/post-installation-interview-spec.mdlog_admin "SUCCESS" "installation" "Installed KASM Workspaces" "version=1.x server=$SERVER_ID"
log_admin "SUCCESS" "operation" "Ran KASM post-install wizard" "modules=$MODULES"
admin-devops for inventory and provisioning.admin-infra-* for OCI/Hetzner/etc server setup.This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.