openclawv1.0.0
Agent Meeting Skill
@Diomede81⭐ 0 stars· last commit 5mo ago· 0 open issues
OpenClaw skill from Diomede81
7.4/10
Verified
Invalid Date// RATINGS
🟢ProSkills ScoreAI Verified
7.4/10📍
Not yet listed on ClawHub or SkillsMP
// README
# Agent Meeting Skill
**Fully isolated, API-configurable meeting skill for OpenClaw agents**
Join meetings, transcribe with speaker identification, and save notes automatically.
## Design Principles
| Principle | Description |
|-----------|-------------|
| 🔌 **Isolated** | No hardcoded paths or agent-specific code |
| 🌐 **API-First** | All configuration via REST API |
| 📦 **Portable** | Install on any OpenClaw agent |
| 🎨 **UI-Ready** | JSON Schema for form generation |
## Quick Start
```bash
# Install
git clone https://github.com/Diomede81/agent-meeting-skill.git
cd agent-meeting-skill
npm install
# 1. Store Recall.ai API key (credentials managed by token-manager-skill)
echo "your-recall-api-key" > ~/.secrets/recall-api-key.txt
chmod 600 ~/.secrets/recall-api-key.txt
# 2. Register in token-manager
curl -X POST http://localhost:3021/api/tokens \
-H "Content-Type: application/json" \
-d '{
"service": "Recall.ai",
"name": "API Key",
"category": "api",
"locationType": "file",
"location": "~/.secrets/recall-api-key.txt"
}'
# 3. Start API server
npm start
# → http://localhost:3030
# 4. Configure skill
curl -X PUT http://localhost:3030/api/config \
-H "Content-Type: application/json" \
-d '{
"bot": {"name": "Max"},
"calendar": {"source": "api", "endpoint": "http://localhost:3007/api/calendar", "agent": "luca"}
}'
# 5. Verify tokens are configured
curl http://localhost:3030/api/tokens/verify
```
## API Reference
### Configuration
```bash
# Get current config
GET /api/config
# Update config
PUT /api/config
Content-Type: application/json
{"bot": {"name": "Max"}, ...}
# Get JSON Schema (for UI forms)
GET /api/config/schema
# Validate config without saving
POST /api/config/validate
Content-Type: application/json
{"bot": {"name": "Max"}, ...}
```
### Tokens (via token-manager-skill)
```bash
# Check required tokens status
GET /api/tokens
# Verify all required tokens are configured
GET /api/tokens/verify
# Test a specific token
POST /api/tokens/test/Recall.ai
```
**Note:** Credentials are managed by `token-manager-skill` (port 3021), not stored locally.
### Calendar
```bash
# Get upcoming meetings
GET /api/calendar/upcoming
# Test calendar connection
POST /api/calendar/test
```
### Meetings
```bash
# List saved transcripts
GET /api/meetings
# Get specific transcript
GET /api/meetings/2026-03-20_weekly-standup
# Get active meeting status
GET /api/meetings/active
# Join meeting manually
POST /api/meetings/join
Content-Type: application/json
{"url": "https://teams.microsoft.com/l/meetup-join/..."}
# Leave current meeting
POST /api/meetings/leave
# Live transcript (Server-Sent Events)
GET /api/transcript/live
```
### Status
```bash
# Health check
GET /api/status
```
## UI Integration
The skill is designed for any UI to configure it:
```javascript
// 1. Fetch schema
const schema = await fetch('/api/config/schema').then(r => r.json());
// 2. Generate form from JSON Schema
// (use react-jsonschema-form, ajv, or similar)
// 3. Save configuration
await fetch('/api/config', {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(formData)
});
```
## Configuration Options
### Calendar Configuration
```json
{
"calendar": {
"source": "api",
"endpoint": "http://localhost:3007/api/calendar",
"agent": "luca",
"joinWindowMinutes": 5
}
}
```
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `source` | string | `"api"` | Calendar source (`api`, `microsoft`, `google`, `ical`) |
| `endpoint` | string | required | Calendar API endpoint URL |
| `agent` | string | required | Agent identifier for calendar API |
| `joinWindowMinutes` | number | `5` | Time window for joining meetings |
### Join Window Behavior
The skill will **only** attempt to join meetings where the start time falls within the configured join window:
- **Default window:** 5 minutes before to 5 minutes after the meeting start time
- **Example:** For a meeting starting at 10:00 AM:
- ✅ Will join between 9:55 AM and 10:05 AM
- ❌ Will NOT join at 9:50 AM (too early)
- ❌ Will NOT join at 10:10 AM (too late)
**Why this matters:** Prevents the bot from trying to join meetings hours after they've started or long after they've ended.
**Adjusting the window:**
```json
{
"calendar": {
"joinWindowMinutes": 10 // Wider window: 10 minutes before/after
}
}
```
## Architecture
```
┌─────────────────────────────────────────────────────────────┐
│ UI / Mission Control │
└─────────────────────────────┬───────────────────────────────┘
│ HTTP/REST
▼
┌─────────────────────────────────────────────────────────────┐
│ Agent Meeting Skill API │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Config │ │ Calendar │ │ Meetings │ │ Credentials│ │
│ │ Manager │ │ Client │ │ Bot │ │ Store │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────┬───────────────────────────────┘
│
┌─────────────────────┼─────────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Calendar API │ │ Recall.ai │ │ Storage │
│ (Middleware) │ │ (Meeting Bot)│ │ (data/*.md) │
└──────────────┘ └──────────────┘ └──────────────┘
```
## Data Storage
All data stored within skill directory (portable):
```
data/
├── config.json # User configuration
├── credentials.enc # Encrypted credentials
├── state.json # Runtime state
└── meetings/ # Saved transcripts
├── 2026-03-20_weekly-standup.md
└── 2026-03-21_project-review.md
```
## Transcript Format
```markdown
# Meeting: Weekly Standup
**Date:** 2026-03-20 10:00 AM
**Duration:** 45 minutes
**Platform:** Microsoft Teams
**Attendees:** Luca, Masum, Austin
---
## Transcript
**Luca (10:00:15):** Good morning everyone, let's get started.
**Masum (10:00:22):** Morning! I'll go first with the Empathika update...
---
## Summary
- Empathika v2.3 release scheduled for next week
- Action item: Masum to finalize API documentation
- Next standup: Thursday 10 AM
---
*Transcribed by Max*
```
## Required Tokens (via token-manager)
| Service | Location | Required | Description |
|---------|----------|----------|-------------|
| `Recall.ai` | `~/.secrets/recall-api-key.txt` | Yes | Meeting bot API |
Register tokens via token-manager-skill (port 3021) before using this skill.
## Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| `PORT` | 3030 | API server port |
| `DATA_DIR` | `./data` | Override data directory |
| `TOKEN_MANAGER_URL` | `http://localhost:3021` | Token manager API URL |
| `SECRETS_DIR` | `~/.secrets` | Override secrets directory |
## License
MIT
// HOW IT'S BUILT
TECHNOLOGY STACK
Node.js
This skill is built with Node.js. The repo includes a Node.js package, and includes automated tests.
KEY FILES
README.mdSKILL.mdtests
// REPO STATS
0 stars
0 open issues
Last commit: 5mo ago
// SHARE
// SOURCE
View on GitHub// ACTIONS
Rate this skill
login to rate
// PROSKILLS SCORE
7.4/10
Good
BREAKDOWN
Code Quality7.5/10
Documentation7/10
Functionality8.5/10
Maintenance8/10
Security6.5/10
Uniqueness7/10
Usefulness7/10
// DETAILS
Categoryother
AuthorDiomede81
Versionv1.0.0
PriceFree
Securityclean