Custom Skill Development
Skills are YAML-defined behaviors that extend Riverse's capabilities. They can be triggered by keywords or run on a schedule.
Skill File Location
Place .yaml files in agent/skills/. They are loaded automatically on startup.
Skill Types
Instruction Skill (keyword-triggered)
A simple skill that provides instructions to the LLM when triggered:
name: explain_code
description: Auto-explain code when user sends a snippet
trigger:
type: keyword
keywords: ["explain code", "what does this do"]
instruction: |
Explain the code step by step:
1. Summarize what the code does in one sentence
2. Explain key logic line by line
3. Point out potential improvements
enabled: true
Workflow Skill (scheduled)
A skill with steps that runs on a cron schedule:
name: weekly_summary
description: Send a warm weekend greeting every Sunday
trigger:
type: schedule
cron: "0 20 * * 0" # Every Sunday at 20:00
steps:
- respond: |
Write a short, warm weekend greeting.
enabled: true
Fields Reference
| Field | Required | Description |
|---|---|---|
name |
Yes | Unique identifier for the skill |
description |
Yes | What the skill does (helps LLM decide when to use it) |
trigger.type |
Yes | keyword or schedule |
trigger.keywords |
For keyword type | List of trigger phrases |
trigger.cron |
For schedule type | Cron expression |
instruction |
For keyword type | Instructions for the LLM |
steps |
For schedule type | List of actions to execute |
enabled |
Yes | true / false |
variables |
No | Key-value map of variables available in templates |
Creating Skills via Chat
You can create skills by telling the bot directly in conversation:
"Create a skill that reminds me to drink water every 2 hours"
"Make a skill that summarizes my day every evening at 9pm"
The bot will generate the YAML and save it to agent/skills/.
Tip
For Telegram scheduled skills, install the job queue extension: pip install "python-telegram-bot[job-queue]"