Skills Center
Import, manage, and use reusable Skill packages in Agents
A Skill is a reusable capability package that bundles prompt instructions, runtime scripts, dependency declarations, and execution conventions. Unlike a single HTTP or code tool, a Skill can either carry a detailed specification the Agent reads and follows (instructions mode) or run a script directly inside the sandbox and produce artifacts (script mode).
The platform exposes the Skills center under Capabilities > Skills (/app/capabilities?tab=skills); administrators review system and team packages in the admin panel (/capabilities?tab=skills).
Viewing Skills requires skill:read; importing requires skill:create; enabling, disabling, or editing requires skill:update; sandbox test runs require skill:execute; deleting requires skill:delete.
Package Structure and Specification
Every Skill package is a directory whose root contains a SKILL.md file (UTF-8 encoded).
my-skill/
├── SKILL.md # Required: frontmatter and prompt instructions
├── scripts/
│ └── run.py # Optional: script executed in script mode
└── assets/ # Optional: templates, rules, or static resourcesSKILL.md Format
SKILL.md combines YAML frontmatter with a Markdown body:
---
name: text-summarizer
display_name: Text Summarizer
description: Produces structured summaries, key points, and multilingual comparisons
version: 1.0.0
category: productivity
icon: FileText
x-clouisle:
execution:
mode: instructions
input_schema:
type: object
properties:
text:
type: string
description: Raw text to summarize
required:
- text
---
You are a professional long-form summarization expert. When the user supplies a long document:
1. Extract 3-5 core conclusions;
2. Output a key-point table;
3. Preserve critical figures and cite each source.Execution Modes
| Mode | How it runs | Typical use |
|---|---|---|
instructions (default) | No code runs in the sandbox. The SKILL.md body is injected into the Agent runtime context to steer how the model reasons and replies. | Writing standards, analysis procedures, code review rules, domain SOPs |
script | Runs the script named by execution.script (Python or Node.js) in an isolated code sandbox, captures stdout/stderr, and can persist file artifacts. | Heavy computation, statistics, chart rendering, batch file conversion |
Limits and Validation Rules
- Zip upload limits: the upload must be a
.zipfile, at most 50 MB, expanding to at most 50 MB uncompressed, with at most 500 files inside and a 10 MB limit per extracted file. - Forbidden content: Zip archives may not contain symlinks, nested archives, or path-escape entries (
../). - Required fields:
name(lowercase letters, digits, underscores, and hyphens) anddescriptionare mandatory.
Import a Skill Package
Skills can only be created by importing
The platform has no "create Skill manually" entry point and no Skill file-subresource endpoints (such as /files). The only way to create a Skill is to import a ZIP or a Git repository (a two-step preview → install flow). After installation, PATCH /api/v1/skills/{skill_id} can only change metadata (display name, description, icon, category, enabled flag, default config) — changing the SKILL.md body or scripts requires a re-import.
The platform supports Upload Zip and Git Repository imports:
- Go to Capabilities (
/app/capabilities) and select the Skills tab. - Select Import Skills in the top-right corner.
- Choose the source:
- Upload Zip: drop in or select a
.ziparchive containing one or more Skill directories. - Git Repository: enter a public HTTPS Git repository URL (
repo_url) plus an optional branch, tag, or commit (ref, such asmainorv1.0.0).
- Upload Zip: drop in or select a
- The system extracts the archive and opens the preview step, listing the package path, Skill name, mode (instructions / script), and validation status.
- Name conflicts and duplicates are flagged in red with the reason. Review the list, tick the entries to install, and select Install selected.

Sandbox Testing
Test a Skill in isolation before binding it to a production Agent:
- Find the Skill in the Skills list and select Test in the actions column.
- Enter the JSON call arguments (
arguments) in the test drawer. - Select Run test:
- In
instructionsmode, preview the exact prompt and instructions that will be injected into the Agent. - In
scriptmode, the sandbox gateway creates an isolated session, runs the script, and shows status, duration in milliseconds,stdout,stderr, and the artifact list. Artifacts can be downloaded directly in the UI.
- In
Bind a Skill to an Agent
- Open the target Agent's orchestration page (
/app/apps/{agent_id}). - In the Tools section, select Add tool/Skill and switch to the Skills category.
- Tick the Skills to enable. During conversations the Agent decides on its own whether to call the Skill, based on the system prompt and the task.
- Once debugging passes, select Publish.
Reference protection: once any Agent binds a Skill, the system refuses to delete it and reports a reference conflict. Unbind it in every Agent's orchestration first.
Scope and Permissions
- System Skills:
team_idis empty and every team on the platform can see them. Only superadmins can create, edit, import, or delete them in the admin panel. - Team Skills: bound to one team and visible only to its members. Team administrators and members with
skill:*permissions manage them.
API Endpoints
# List Skills available to a team (including system Skills)
GET /api/v1/skills?team_id={team_id}&include_system=true
# Preview Zip / Git imports
POST /api/v1/skills/import/preview-zip
POST /api/v1/skills/import/preview-git
# Install Skills from an import session
POST /api/v1/skills/import/{session_id}/install
# Read / update / delete a Skill
GET /api/v1/skills/{skill_id}?team_id={team_id}
PATCH /api/v1/skills/{skill_id}
DELETE /api/v1/skills/{skill_id}
# Run a sandbox test
POST /api/v1/skills/{skill_id}/testTroubleshooting
Import fails
- Zip too large: confirm the archive is under
50MBand expands to under50MB. - Missing SKILL.md: confirm a capitalised
SKILL.mdsits in the directory root and is valid UTF-8 text. - Invalid frontmatter: check YAML indentation and confirm the required
nameanddescriptionfields exist. - Git timeout: cloning a public repository times out after
180seconds; confirm the URL is publicly reachable.
Execution errors
- Select Test in the Skills center and read the
stderroutput. - For
scriptmode, check that the dependencies declared by the script exist in the runtime. - Check that the arguments match the types declared in
x-clouisle.input_schema.
How is this guide?