Skills
Reusable code packages that give your assistant new capabilities — from API integration to file generation.
What it is
Skills are reusable code packages (.zip files) that give your assistant capabilities beyond pure prompting or knowledge binding. They run in the Code Sandbox and can call external APIs, generate files, process data, or apply specialized logic.
When does a skill make sense?
Skills are the right tool when your assistant needs to:
- call an API for which meinGPT has no native connector (e.g. your internal contract management system)
- generate a file in your layout (Word template, Excel report in your format, PowerPoint deck with branding)
- process data in a format the LLM doesn't handle natively (e.g. parsing binary data, complex table transformations)
- apply deterministic logic (calculations, validation, business rules)
If your need is solved by a system prompt + RAG datapool + native tools (MCP Studio) — no skill needed. Skills are the next escalation step for your own executable logic.
Skill vs Tool vs Connector — quick distinction
| Tool | What it is | When |
|---|---|---|
| Native Tool / Connector (MCP Studio) | Pre-built integrations to standard services (Slack, Outlook, Salesforce, ...) | Standard integrations available in the marketplace |
Skill (.zip package) | Your own code (Python or JavaScript/TypeScript), running in the sandbox | Custom logic, proprietary APIs, file generation in your format |
| Knowledge / Datapools | RAG over static documents | When the assistant should know your knowledge, not execute it |
Achtung
Skills are only available when the Code Sandbox is enabled for the organization (default: on). If the Skills section is missing from the editor, check with an admin whether the sandbox was disabled for your organization.
How to create a skill
The Skills section sits in the assistant editor as its own card, with a Create skill button top right and a drag-and-drop area below it.

There are two paths to it:
Path 1: have the assistant create it via chat
Clicking Create skill doesn't open a special assistant or wizard — it's an entirely ordinary new chat with your assistant, just with a pre-filled first message: "Create me a new skill for this assistant."

Send the message: the pre-filled message is already in the input field — just send it.
Answer the follow-up questions: the assistant is instructed to interview you before writing any code — typically about the skill's purpose, required external APIs, credentials, and whether an existing file (e.g. a Word template) should be used as a base.
Code gets generated: the assistant writes the skill package's files (at least one SKILL.md, see Skill package structure) and bundles them into a .zip.
Attached automatically: the finished package shows up directly in the assistant's Skills list — no manual upload step needed.

Hinweis
If the skill needs credentials (API keys, tokens), the assistant creates a secrets.json with placeholder values for it. Fill in the real values afterward via the file explorer — they're never asked for or logged in the chat.
Path 2: upload a finished .zip
If you (or a colleague) already have the skill packaged, drag the .zip file directly into the drag-and-drop area in the Skills section, or click it to pick the file from a dialog.

- Limits: up to 20 files at once, a practical size limit of 50 MB per file.
- No structure validation: the platform only checks the file for technical safety (no zip bomb — a file that explodes on extraction). Whether a
SKILL.mdis included, or whether the package is structured sensibly at all, is not validated. Follow the recommended structure below, or the assistant won't be able to make sense of the skill.
Skill package structure [#structure]
A skill package is, at its core, a .zip with a SKILL.md as instructions for the assistant, plus the actual code. Recommended structure:
my-skill/
├── SKILL.md
├── scripts/
│ ├── main.py
│ └── helpers.py
└── references/
└── api-reference.md
SKILL.md starts with a YAML frontmatter block, followed by free-form Markdown:
| Field / section | Purpose |
|---|---|
name (frontmatter) | Short, descriptive name (lowercase, hyphenated) |
description (frontmatter) | When the assistant should use this skill — this is the text the model relies on |
license (frontmatter, optional) | Usually Proprietary or MIT |
| Title (H1) | One-sentence summary |
## Rules | What the assistant should and shouldn't do |
## Workflow | Step-by-step process |
## Good fits | Concrete use cases the skill is meant for |
## Avoid by default | What the skill is not meant for |
If SKILL.md gets too long (rule of thumb: 500 lines), move detail into references/ and link to it from SKILL.md.
Hinweis
The actual language (Python or JavaScript) isn't fixed in the package — it's auto-detected the moment the assistant mounts the skill in a chat session, based on file markers like requirements.txt (Python) or package.json (JavaScript). If there's no clear marker, it defaults to JavaScript. So for a Python-only skill, make sure to include a requirements.txt, even an empty one.
Security & sandbox
Skills run in the isolated sandbox environment:
- No direct host system access, no internet access from inside the skill code
- Language per skill is auto-detected when it's mounted into the session (Python or JS)
- Credentials (API keys, tokens) live as
secrets.jsoninside the skill package and aren't exposed to the model itself - Resource limits prevent infinite loops or excessive memory usage
The sandbox architecture is described in Code Sandbox.
Common uses in mid-sized companies
| Use case | Skill content |
|---|---|
| Generate quotes in company layout | Word template + Python script that fills data from the chat |
| DATEV export from invoice data | JS script that converts JSON data to CSV format |
| Integration with internal CRM (no standard connector) | Python API client that speaks to your CRM |
| Structured PDF extraction for your own layout | Python with pdfplumber for given contract structures |
| Custom validation (e.g. tax calculations) | JS with your calculation logic |
Editing, limits, and what doesn't work (yet) [#editing]
Clicking a skill in the list opens the file explorer: file tree on the left (SKILL.md always sorted to the top), syntax-highlighted code editor on the right. You can view files, edit them, delete them, and save changes back to the package.

Achtung
No version history: saving permanently overwrites the package's previous state — there's currently no way to go back to an earlier version. Keep your own copy outside meinGPT before making larger changes.
Achtung
No sharing between assistants: each skill belongs to exactly one assistant — there's neither a download/export button nor an "attach to another assistant" feature. To run the same skill on multiple assistants, upload the locally kept .zip to each assistant individually.
Hinweis
If you ask the assistant in chat to "improve" or "extend" an existing skill, it often creates an entirely new package instead of updating the existing one. Check the Skills list afterward and remove outdated duplicates manually.
Where to go next
- Editor → Tools — the Tools section that Skills works alongside
- Code Sandbox — how the execution environment looks in detail
- Assistants overview — the full assistant workflow that skills plug into