MoltBot Skills System

Extend your AI assistant with custom skills. Install pre-built skills or create your own.

🎯 What are Skills?

Skills are modular extensions that give MoltBot new capabilities. Think of them as plugins or tools the AI can use.

Skill Types

  • Tools: Functions AI can call (web search, calculations, etc.)
  • Integrations: Connect to external services (GitHub, Jira, etc.)
  • Workflows: Multi-step automation sequences
  • Prompts: Specialized system prompts for specific tasks

Skill Architecture

~/.MoltBot/skills/
├── web-search/
│   ├── SKILL.md          # Skill documentation
│   ├── skill.yaml        # Configuration
│   └── index.js          # Implementation
├── github-integration/
└── custom-skill/

📥 Installing Skills

Method 1: From Skill Registry

# List available skills
MoltBot skills list

# Install a skill
MoltBot skills install web-search

# Install multiple skills
MoltBot skills install web-search github-integration calendar

Method 2: From GitHub

# Install from GitHub repo
MoltBot skills install https://github.com/user/MoltBot-skill-name

# Install specific version
MoltBot skills install web-search@1.2.0

Method 3: Local Installation

# Install from local directory
MoltBot skills install ./my-custom-skill

# Link for development
MoltBot skills link ./my-skill-dev

Managing Skills

# List installed skills
MoltBot skills list --installed

# Update skill
MoltBot skills update web-search

# Update all skills
MoltBot skills update --all

# Uninstall skill
MoltBot skills uninstall web-search

# Enable/disable skill
MoltBot skills enable web-search
MoltBot skills disable web-search

🔧 Built-in Skills

MoltBot comes with several pre-installed skills:

1. Web Search

You: Search for latest AI news
Bot: [Uses web-search skill to find current information]

2. File Operations

You: Read the file config.yaml
Bot: [Reads and displays file content]

You: Create a new file hello.py with a print statement
Bot: [Creates file with code]

3. Code Execution

You: Run this Python code: print(2+2)
Bot: [Executes code safely]
Output: 4

4. Browser Automation

You: Go to example.com and screenshot it
Bot: [Opens browser, takes screenshot]

See: Browser Automation Guide

5. Terminal Commands

You: List files in current directory
Bot: [Runs ls command]

🌟 Popular Community Skills

Productivity Skills

Skill Description Install
calendar Google Calendar integration MoltBot skills install calendar
email Send/read emails MoltBot skills install email
notion Notion database access MoltBot skills install notion
todoist Task management MoltBot skills install todoist

Developer Skills

Skill Description Install
github GitHub API integration MoltBot skills install github
docker Docker container management MoltBot skills install docker
database SQL database queries MoltBot skills install database
api-tester Test REST APIs MoltBot skills install api-tester

Data & Research Skills

  • arxiv - Search academic papers
  • wikipedia - Wikipedia integration
  • wolfram - Wolfram Alpha queries
  • weather - Weather information

🛠️ Creating Custom Skills

Skill Structure

my-skill/
├── SKILL.md              # Documentation (required)
├── skill.yaml            # Configuration (required)
├── index.js              # Main implementation
├── package.json          # Dependencies
└── examples/             # Usage examples

SKILL.md Example

---
name: weather-checker
description: Get weather information for any location
version: 1.0.0
author: Your Name
---

# Weather Checker Skill

This skill allows MoltBot to fetch weather information.

## Usage

```
You: What's the weather in Tokyo?
Bot: [Uses weather-checker skill]
```

## Configuration

Add your API key to config.yaml:

```yaml
skills:
  weather-checker:
    apiKey: "your-api-key"
```

skill.yaml Example

name: weather-checker
version: 1.0.0
description: Get weather information

# Tool definition
tools:
  - name: get_weather
    description: Get current weather for a location
    parameters:
      type: object
      properties:
        location:
          type: string
          description: City name or coordinates
        units:
          type: string
          enum: [celsius, fahrenheit]
          default: celsius
      required: [location]

# Configuration schema
config:
  apiKey:
    type: string
    required: true
    description: Weather API key

# Dependencies
dependencies:
  - axios

# Permissions
permissions:
  - network
  - config

index.js Example

// index.js
const axios = require('axios');

module.exports = {
  name: 'weather-checker',
  
  async get_weather({ location, units = 'celsius' }) {
    const apiKey = this.config.apiKey;
    const url = `https://api.weather.com/v1/current?location=${location}&units=${units}&key=${apiKey}`;
    
    try {
      const response = await axios.get(url);
      return {
        temperature: response.data.temp,
        conditions: response.data.conditions,
        humidity: response.data.humidity
      };
    } catch (error) {
      throw new Error(`Failed to fetch weather: ${error.message}`);
    }
  }
};

Testing Your Skill

# Link skill for development
cd my-skill
MoltBot skills link .

# Test skill
MoltBot test-skill weather-checker

# Use in conversation
MoltBot chat "What's the weather in Paris?"

💡 Skill Examples

Simple Calculator Skill

// calculator-skill/index.js
module.exports = {
  name: 'calculator',
  
  tools: {
    calculate: {
      description: 'Perform mathematical calculations',
      parameters: {
        expression: { type: 'string', description: 'Math expression' }
      },
      handler: async ({ expression }) => {
        // Safe eval using math.js or similar
        const result = eval(expression); // Use proper library in production!
        return { result };
      }
    }
  }
};

GitHub Issue Creator

// github-skill/index.js
const { Octokit } = require('@octokit/rest');

module.exports = {
  name: 'github',
  
  async create_issue({ repo, title, body }) {
    const octokit = new Octokit({ auth: this.config.githubToken });
    
    const [owner, repoName] = repo.split('/');
    
    const issue = await octokit.issues.create({
      owner,
      repo: repoName,
      title,
      body
    });
    
    return {
      url: issue.data.html_url,
      number: issue.data.number
    };
  }
};

❓ Skills FAQ

Are skills safe to install?
Skills run with permissions you grant. Review skill code before installing, especially from unknown sources.
Can skills access my files?
Only if you grant file system permissions. Check skill.yaml for required permissions.
How do I share my skill?
Publish to GitHub and submit to MoltBot skill registry via pull request.
Can I monetize skills?
Yes, you can create paid skills or offer premium features.

📚 Related Guides