mirror of
https://github.com/browseros-ai/BrowserOS.git
synced 2026-05-13 23:53:25 +00:00
194 lines
7.3 KiB
Plaintext
194 lines
7.3 KiB
Plaintext
---
|
|
title: "Skills"
|
|
description: "Teach your BrowserOS agent new abilities with reusable, custom instructions"
|
|
---
|
|
|
|
Skills let you teach the BrowserOS agent how to handle specific tasks. Each skill is a set of instructions written in plain Markdown that the agent loads when it recognizes a matching task. Think of skills as recipes: you write the steps once, and the agent follows them whenever that type of task comes up.
|
|
|
|
BrowserOS implements the open [Agent Skills specification](https://agentskills.io/specification), so skills you create are portable across any AI agent that supports the standard.
|
|
|
|
## How Skills Work
|
|
|
|
<Steps>
|
|
<Step title="You create a skill">
|
|
Give it a name, a short description of when to use it, and write the instructions in Markdown.
|
|
</Step>
|
|
<Step title="The agent sees the skill catalog">
|
|
When a conversation starts, the agent loads a list of all your enabled skills with their names and descriptions.
|
|
</Step>
|
|
<Step title="The agent matches a task">
|
|
When your request matches a skill's description, the agent loads that skill's full instructions and follows them.
|
|
</Step>
|
|
</Steps>
|
|
|
|
## Creating a Skill
|
|
|
|
<Steps>
|
|
<Step title="Open Skills settings">
|
|
Click **Skills** in the sidebar.
|
|
</Step>
|
|
<Step title="Click New Skill">
|
|
Click the **New Skill** button to open the creation form.
|
|
</Step>
|
|
<Step title="Fill in the details">
|
|
- **Name**: A short, descriptive name (e.g., "Morning Status Report")
|
|
- **Description**: Tell the agent when to use this skill. Be specific. For example: "When the user wants to read status updates from work across Notion, Linear, and Slack"
|
|
- **Content**: Write your instructions in Markdown. Include step-by-step directions, examples, and edge cases.
|
|
</Step>
|
|
<Step title="Save and enable">
|
|
Click **Create**. The skill is enabled by default and will be available to the agent immediately.
|
|
</Step>
|
|
</Steps>
|
|
|
|
<Tip>
|
|
Write your description like a trigger. The agent uses it to decide whether to activate the skill. A good description says both **what** the skill does and **when** to use it.
|
|
</Tip>
|
|
|
|
## Example Skills
|
|
|
|
<AccordionGroup>
|
|
<Accordion title="Morning status report">
|
|
**Description:** When the user wants to read status updates from work
|
|
|
|
**Instructions:**
|
|
```markdown
|
|
Always look for updates in 3 sources:
|
|
1. **Notion** - Check the team updates page for any new entries from today
|
|
2. **Linear** - Look at issues assigned to the user that were updated in the last 24 hours
|
|
3. **Slack** - Check the #team-updates and #engineering channels for unread messages
|
|
|
|
Summarize everything in a single report grouped by source.
|
|
If a source has no updates, say so.
|
|
```
|
|
</Accordion>
|
|
|
|
<Accordion title="PDF processing">
|
|
**Description:** Extract text and tables from PDF files, fill PDF forms, and merge multiple PDFs. Use when the user mentions PDFs, forms, or document extraction.
|
|
|
|
**Instructions:**
|
|
```markdown
|
|
When extracting text from a PDF:
|
|
1. Download or open the PDF in the browser
|
|
2. Use the page content tool to extract visible text
|
|
3. Preserve table structure using Markdown tables
|
|
4. If the PDF has multiple pages, process each page
|
|
|
|
When filling a PDF form:
|
|
- Ask the user for the values if not provided
|
|
- Fill each field carefully and confirm before submitting
|
|
|
|
See references/FORMS.md for common form templates.
|
|
```
|
|
</Accordion>
|
|
|
|
<Accordion title="Code review checklist">
|
|
**Description:** When the user asks to review code, a pull request, or wants feedback on code quality
|
|
|
|
**Instructions:**
|
|
```markdown
|
|
Follow this checklist for every code review:
|
|
1. Check for security issues (XSS, injection, hardcoded secrets)
|
|
2. Look for performance problems (N+1 queries, unnecessary re-renders)
|
|
3. Verify error handling is present and meaningful
|
|
4. Check that naming is clear and consistent
|
|
5. Look for missing tests for new logic
|
|
|
|
Format your review as a list of findings with severity: Critical, Warning, or Suggestion.
|
|
Always start with what the code does well.
|
|
```
|
|
</Accordion>
|
|
</AccordionGroup>
|
|
|
|
## Managing Skills
|
|
|
|
From the Skills page, you can:
|
|
|
|
- **Enable or disable** a skill using the toggle switch. Disabled skills are not loaded by the agent.
|
|
- **Edit** a skill's name, description, or instructions by clicking the edit icon.
|
|
- **Delete** a skill by clicking the trash icon. This removes the skill permanently.
|
|
|
|
## Skill File Format
|
|
|
|
Under the hood, each skill is stored as a `SKILL.md` file following the [Agent Skills specification](https://agentskills.io/specification):
|
|
|
|
```markdown
|
|
---
|
|
name: morning-status-report
|
|
description: When the user wants to read status updates from work
|
|
metadata:
|
|
display-name: Morning Status Report
|
|
enabled: "true"
|
|
---
|
|
Always look for updates in 3 sources:
|
|
1. Notion - Check the team updates page
|
|
2. Linear - Look at assigned issues updated in the last 24 hours
|
|
3. Slack - Check #team-updates and #engineering channels
|
|
|
|
Summarize everything in a single report grouped by source.
|
|
```
|
|
|
|
The file uses YAML frontmatter for metadata and Markdown for the instructions.
|
|
|
|
### Frontmatter fields
|
|
|
|
| Field | Required | Description |
|
|
|---|---|---|
|
|
| `name` | Yes | Lowercase, hyphenated identifier (e.g., `morning-status-report`) |
|
|
| `description` | Yes | When and how the agent should use this skill |
|
|
| `license` | No | License for the skill |
|
|
| `compatibility` | No | Environment requirements |
|
|
| `metadata` | No | Extra fields like `display-name`, `enabled`, `version` |
|
|
| `allowed-tools` | No | Restrict which tools the skill can use (experimental) |
|
|
|
|
### Supporting files
|
|
|
|
A skill can include additional directories alongside `SKILL.md`:
|
|
|
|
- **`scripts/`** for executable code the agent can run
|
|
- **`references/`** for detailed documentation loaded on demand
|
|
- **`assets/`** for templates, images, or data files
|
|
|
|
```
|
|
morning-status-report/
|
|
├── SKILL.md
|
|
├── scripts/
|
|
│ └── format-report.py
|
|
└── references/
|
|
└── REFERENCE.md
|
|
```
|
|
|
|
The agent loads the main `SKILL.md` first. Supporting files are only loaded when the instructions reference them, keeping context usage efficient.
|
|
|
|
## Where Skills Live
|
|
|
|
Skills are stored as folders inside your BrowserOS configuration directory:
|
|
|
|
| OS | Path |
|
|
|---|---|
|
|
| macOS | `~/.browseros/skills/` |
|
|
| Windows | `%USERPROFILE%\.browseros\skills\` |
|
|
| Linux | `~/.browseros/skills/` |
|
|
|
|
Each skill gets its own folder named after the skill's `name` field.
|
|
|
|
## Tips for Writing Good Skills
|
|
|
|
<CardGroup cols={2}>
|
|
<Card title="Be specific in descriptions" icon="crosshairs">
|
|
Include keywords the agent can match against. "When the user asks about PDFs, forms, or document extraction" is better than "Helps with documents."
|
|
</Card>
|
|
<Card title="Keep instructions focused" icon="scissors">
|
|
A skill should do one thing well. Split complex workflows into multiple skills rather than one large one.
|
|
</Card>
|
|
<Card title="Include examples" icon="lightbulb">
|
|
Show the agent what good output looks like. Examples reduce ambiguity and improve results.
|
|
</Card>
|
|
<Card title="Use supporting files" icon="folder-tree">
|
|
Move detailed references to separate files. The agent loads them only when needed, saving context space.
|
|
</Card>
|
|
</CardGroup>
|
|
|
|
<Note>
|
|
Skills follow the open [Agent Skills specification](https://agentskills.io/specification). Skills you create in BrowserOS work with any agent that supports the standard.
|
|
</Note>
|