Skip to main content
Skill variants are pre-configured templates that provide different levels of access and functionality for the same Skill type. Instead of configuring a Skill from scratch, you can select a variant that matches your security and functional requirements.

Why Use Variants?

Variants follow the principle of least privilege by offering pre-configured permission sets:
  • Safe/Read-Only Variants: Minimal permissions for monitoring and read-only operations
  • Common/Limited Variants (usually default): Balanced permissions suitable for most use cases
  • Advanced/Full Access Variants: Maximum permissions for power users and automation
Selecting the appropriate variant is crucial for maintaining security. Start with the most restrictive variant that meets your needs.

How Variants Work

When creating a Skill, you can choose from available variants in the UI or CLI: UI: Select a variant from the “Template Option” dropdown when creating a Skill CLI: Use the --variant flag when creating a Skill

Variant Examples

File System Variants

Shell Variants

Agent Communication Variants

See all built-in Skills and their available variants in the Built-in Skills reference.

Configuration Differences Between Variants

Variants differ not just in permissions, but in their configuration defaults and what settings can be overridden.

Locked vs. Overridable Settings

Locked Settings enforce the variant’s security model and cannot be changed:
  • Read Only variants: Cannot enable write operations (enable_save_file, enable_delete)
  • Sandboxed variants: Cannot change base_dir (prevents sandbox escape)
  • Safe Commands variants: Cannot add destructive commands to allowed list
Overridable Settings can be customized within the variant’s security boundaries:
  • Timeouts, memory limits, CPU limits
  • File extensions, directories (within security constraints)
  • Specific command lists (within allowed operations)
Example:

Variant Configuration Guide

See detailed configuration matrices showing what each variant allows and how to customize within boundaries

Creating a Skill Instance

A Skill instance is a named, configured version of a Skill type with a specific variant and custom configuration. Steps to create a Skill instance:
  1. Choose a Skill Type: Select from the built-in Skills (or create a custom Skill)
  2. Select a Variant: Pick the variant that matches your security requirements
  3. Customize Configuration: Adjust settings like timeouts, allowed commands, or directories
  4. Name the Instance: Give it a descriptive name (e.g., “Production File System”, “Dev Shell”)
  5. Assign to Entities: Attach the Skill instance to agents, teams, or environments

Example: Creating Multiple Instances

You can create multiple instances of the same Skill type with different configurations:
Each instance has its own configuration, permissions, and can be assigned to different agents or teams independently.

Dynamic Configuration & Layering

Kubiya uses a 4-layer configuration model where each layer can override settings from the previous layer:

Configuration Precedence Example

Last Layer Wins: When the same setting appears in multiple layers, the highest layer (closest to runtime) takes precedence.

Practical Use Cases

Environment-Specific Configuration:
Team-Level Overrides:

Dynamic Configuration Guide

Learn about configuration inheritance, override precedence, environment variables, and team/agent-specific configurations
Use kubiya skill get <skill-id> --effective-config --agent <agent-id> to see the final resolved configuration after all layers are applied.

Variant Configuration

Detailed configuration matrices and customization guide

Dynamic Configuration

Configuration inheritance, layering, and runtime overrides

Built-in Skills

See all available Skills and their variants

CLI Reference

Command-line tools for creating skill instances

Examples

Real-world variant selection examples

Overview

Back to Skills overview