What are Skills?
Skills are reusable, executable units that extend the capabilities of your AI agents. Each skill is defined by aSKILL.md file that declares its name, description, input/output schema, and permission requirements. Skills can be loaded from Git repositories or local paths, and they execute in isolated workers to ensure safety and reliability.
Skills are the recommended way to share and distribute reusable agent capabilities across teams, projects, and the broader Nadoo community.
Skills vs. Plugins
While both Skills and Plugins extend the platform, they serve different use cases and follow different development models.| Feature | Skills | Plugins |
|---|---|---|
| Definition format | Markdown-based (SKILL.md) | Python SDK with decorator API |
| Source | Git repositories, local paths | Python packages (pip install) |
| Execution | Isolated skill worker (subprocess / gVisor sandbox) | In-process within the backend |
| Distribution | Git URL or local directory | PyPI or private registry |
| Development overhead | Low — write a SKILL.md and supporting scripts | Medium — implement NadooPlugin class |
| Best for | Shareable automations, prompt-based tasks, scripted operations | Deep platform integrations, API connectors, custom tools |
Plugin SDK
Build plugins with the Python SDK for deep platform integration
Official Plugins
Browse pre-built plugins maintained by the Nadoo team
Skill Lifecycle
Every skill goes through a defined lifecycle from registration to execution.Registration
A workspace admin registers a skill by providing a Git repository URL or local file path. The platform clones the repository and reads the
SKILL.md manifest.Review
The skill’s declared permissions, input/output schema, and description are presented for review. Admins can inspect the skill’s source code before approving.
Approval
Once reviewed, the admin approves the skill. It becomes available for use in workflows and by AI agents within the workspace.
Skill Sources
Skills can be loaded from two types of sources.Git Repositories
Point to any Git repository containing aSKILL.md at the root. The platform clones the repo and keeps it synchronized.
You can pin a specific branch, tag, or commit hash by appending
#ref to the Git URL.Local Paths
During development, you can register a skill from a local directory on the server filesystem.SKILL.md Format
Every skill is defined by aSKILL.md file at the root of its directory or repository. This file uses a structured Markdown format with YAML front matter.
Front Matter Fields
| Field | Required | Description |
|---|---|---|
name | Yes | Unique identifier for the skill (kebab-case) |
description | Yes | Human-readable description of what the skill does |
version | Yes | Semantic version number |
author | No | Author or organization name |
Sections
- Input Schema — Defines the parameters the skill accepts, including types and whether they are required
- Output Schema — Defines the structure of the skill’s return value
- Permissions — Declares what platform resources the skill needs access to (LLM, knowledge base, storage, network)
- Instructions — The execution instructions or prompt template for the skill
Skill Worker
The Skill Worker is a separate service responsible for executing skills in isolation. This architecture ensures that skills cannot interfere with the main platform or with each other.Subprocess Mode
Default mode. Each skill execution runs in a separate OS subprocess with resource limits (CPU time, memory, file system access).
gVisor Sandbox
Production mode. Skills run inside a gVisor sandbox for stronger isolation with syscall filtering, network restrictions, and filesystem containment.
Execution Flow
Worker Configuration
The skill worker connects to Redis for task queuing and communicates with the backend via internal API.| Setting | Environment Variable | Default | Description |
|---|---|---|---|
| Sandbox mode | SKILL_SANDBOX_MODE | subprocess | subprocess or gvisor |
| Max execution time | SKILL_MAX_EXECUTION_TIME | 30 | Maximum seconds per execution |
| Max memory | SKILL_MAX_MEMORY_MB | 256 | Maximum memory in MB |
| Worker concurrency | SKILL_WORKER_CONCURRENCY | 4 | Number of concurrent skill executions |
Managing Skills
Register a Skill
Navigate to Workspace Settings > Skills and provide the Git repository URL or local path.View Registered Skills
All approved skills appear in the skills list with their name, description, version, source, and status.Use a Skill in a Workflow
Add a Skill Node to your workflow graph and select the skill from the dropdown. Map the node’s inputs to the skill’s input schema.Update a Skill
For Git-based skills, trigger a re-sync to pull the latest changes from the repository. The updatedSKILL.md is re-parsed and changes take effect immediately.