Skills
Teach your AI how to approach a task with plain-text instructions.
Skills are reusable, markdown-based instruction sets that you attach to models or invoke on-the-fly in chat. Unlike Tools (executable Python scripts), Skills are plain-text instructions: code review guidelines, writing style rules, troubleshooting playbooks, data analysis workflows. The model reads them and follows them.
Mention a skill with $ in chat to inject its full content immediately. Or bind skills to a model so they're always available, loaded on-demand to keep the context window efficient.
Why Skills?
Instructions without code
Write guidelines in Markdown. No Python, no API calls, no deployment. If you can write a document, you can create a skill.
On-demand context loading
Model-attached skills use lazy loading. Only a lightweight manifest (name + description) is injected by default. The model loads the full instructions only when it needs them via the view_skill tool.
Reusable across models
Create one "Code Review Guidelines" skill and attach it to every coding model. Update the skill once, and every model gets the new version.
Composable with tools
Pair a skill with Hrida Terminal or any tool server. The skill teaches the model how to use the tool (check exit codes, handle errors, use streaming for long-running commands), while the tool provides the capability.
Key Features
| 📝 Markdown content | Write instructions in plain Markdown |
| ⚡ $ mention in chat | Type $ to inject a skill's full content into the current message |
| 🧩 Per-chat toggle | Toggle skills on for one chat from the ⬡ Skills popup — global scope, no model edit needed |
| 🤖 Model binding | Attach skills to models so they're always available |
| 📦 Lazy loading | Model-attached skills inject only a manifest; full content loads on-demand |
| 📥 Import/Export | Import .md files with YAML frontmatter; export as JSON |
| 🏷️ Tags | Tag skills for organization, then filter the list by tag |
| ☑️ Delete Selected | Check multiple skills and remove them in one confirm-and-go action |
| 🔒 Access control | Private by default, shareable with users or groups |
| 🔀 Active/Inactive toggle | Deactivate skills without deleting them |
How Skills Work
User-selected skills ($ mention)
Type $ in the chat input to open the skill picker. Select a skill, and its full content is injected directly into the system prompt. The model has immediate access to the complete instructions.
Per-chat skills (Skills popup)
Click the ⬡ (hexagon) icon in the chat input, then open the Skills tab to toggle individual workspace skills on for the current chat.
The Skills tab shows all workspace skills you have read access to — across every workspace, not just the one you are currently in. Skills are global so that the same policy document or playbook is available no matter which workspace a user works from.
A check mark appears next to active skills, and a badge on the input bar shows how many are active. The selection persists for that chat — every message in that conversation includes the full content of the toggled skills in the system prompt, exactly like a $ mention but lasting the whole conversation.
Manage skills opens Workspace > Skills, and + Add skill creates a new skill. Both links are at the bottom of the Skills tab.
The ⬡ popup has two tabs: Skills (workspace skills — this feature) and Tools (MCP / function-calling tools). They are entirely separate. The Tools tab connects executable tools; the Skills tab injects instruction documents.
Model-attached skills
Skills bound to a model use lazy loading:
- Manifest injection - Only the skill's name and description are added to the system prompt.
- On-demand loading - The model receives a
view_skillbuiltin tool. When it determines it needs a skill's full instructions, it callsview_skill(skill_name)to load them.
This means many skills can be attached to a model without consuming context window space until actually needed.
Creating a Skill
Navigate to Workspace > Skills and click + New Skill.
| Field | Description |
|---|---|
| Name | Human-readable display name (e.g., "Code Review Guidelines") |
| Skill ID | Unique slug, auto-generated from the name. Editable during creation, read-only afterwards |
| Description | Short summary shown in the manifest. For model-attached skills, the model uses this to decide whether to load the full instructions |
| Content | Full skill instructions in Markdown |
| Tags | Free-text labels for organizing and filtering the skill list. Type a tag and press Enter, or type it and click Save directly — both commit the tag |
The tag dropdown next to the search box on the Skills list filters skills down to whichever tag is selected.
Importing from Markdown
Click Import and select a .md file. If the file contains YAML frontmatter with name and/or description fields, those values are auto-populated:
---
name: code-review-guidelines
description: Step-by-step instructions for thorough code reviews
---
# Code Review Guidelines
1. Check for correctness...Binding Skills to a Model
- Go to Workspace > Models.
- Edit a model and scroll to the Skills section.
- Check the skills you want this model to always have access to.
- Click Save.
The selected skills' manifests are automatically injected, and the model can load full content on-demand via view_skill.
Skill Management
From the Skills workspace list, use the ellipsis menu (...):
| Action | Description |
|---|---|
| Edit | Modify content, name, or description |
| Clone | Create a copy with -clone appended to the ID |
| Export | Download as JSON |
| Delete | Permanently remove (Shift+Click for quick deletion) |
Bulk export: Click the Export button at the top of the Skills page to export all accessible skills as a single JSON file.
Delete Selected: Check the boxes on multiple skills and click Delete Selected (N) in the toolbar to remove them all in one confirm-and-go action. If some fail to delete (e.g. an access change mid-batch), the result reports how many succeeded versus failed rather than a silent partial delete.
Import Bundle (.zip): Migrate a whole Claude Code plugin/skill repository into workspace Skills (plus Tools and Prompts) in one pass — see Import Bundle.
Active/Inactive toggle: Inactive skills are excluded from manifests, cannot be loaded by the model, and cannot be selected or injected by Agent Skills.
Access Control
Skills use the same Access Control system as other workspace resources:
- Private by default: Only the creator can see and edit a new skill.
- Share with users or groups: Grant
readorwriteaccess via the Access button. - Read-only access: Users with read access can view but not edit. The editor shows a "Read Only" badge.
Attaching a skill to a model does not bypass access control. When a user chats with the model, Hrida.ai checks whether that user has read access to each attached skill. Skills the user can't access are silently excluded.
Example: An admin creates a private skill and attaches it to a shared model. Regular users chatting with this model will not get the skill because they don't have read access.
Solution: Make sure users who need the model's skills also have read access to each skill (via access grants, group permissions, or by making the skill public).
Required permissions
| Permission | What it controls |
|---|---|
| Workspace > Skills Access | Access the Skills workspace and create/manage skills |
| Sharing > Share Skills | Share skills with individual users or groups |
| Sharing > Public Skills | Make skills publicly accessible |
See Permissions for configuration details.
Use Cases
Code review standards
Write your team's review checklist as a skill: naming conventions, error handling patterns, test coverage requirements. Attach it to your coding models so every review follows the same bar.
Writing style guide
Document tone, formatting rules, and terminology in a skill. Attach it to content-writing models. Every draft follows your brand voice.
Troubleshooting playbooks
Encode your runbook for common issues: "check logs first, verify config, test connectivity, escalate if X." The model follows the same diagnostic steps your senior engineers would.
Tool usage instructions
Pair a skill with Hrida Terminal to teach the model how to use it well. "Always check exit codes. Use set -e in scripts. Stream output for commands that take more than 10 seconds."
Use in Agent Builder
Active workspace skills can be linked to Agent Skills as Reference Skills — curated documents injected verbatim into the agent's context before every request it handles in a workflow.
This is separate from the chat uses above ($-mention, per-chat toggle, model binding). The same skill document can serve both purposes simultaneously.
How it works
When an Agent Skill has linked workspace skills, the runtime fetches their full content at execution time and prepends it to the user's message as a ## Reference Material block — before any knowledge-base (RAG) results and before the user input itself. The agent always sees the complete document, not a semantic excerpt.
## Reference Material
### GDPR Consent Policy
All data collection must...
---
### Contract Review Checklist
1. Check indemnification clauses...
{user message}
Because the content is fetched at runtime (not baked in at skill-edit time), updating the workspace skill propagates to every agent that references it automatically.
Only active skills are available
Only workspace skills with Active status appear in the Agent Builder picker and are injected at runtime. If you deactivate a skill, agents that reference it silently skip it — no error, no stale content. Re-activate the skill to restore injection.
Linking a workspace skill to an agent skill
- Go to Agent Builder → Skills and open or create an Agent Skill.
- Scroll to the Reference Skills section in the Configuration tab.
- Check the workspace skills you want this agent to always have available.
- Save the skill.
From that point on, every workflow node that uses this Agent Skill will have the linked workspace skill content prepended to the user message context.
Limitations
Plain text only
Skills are instructions, not executable code. For actions that require computation, API calls, or system access, use Tools instead.
Context window with $ mention
When injected via $ mention, the full skill content goes into the system prompt. A very long skill attached to a model with a small context window may crowd out conversation history.
Lazy loading requires function calling
Model-attached skills depend on the view_skill builtin tool, which requires native function calling to be enabled. Without it, the model receives only the manifest and cannot load the full instructions.