Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Is that skill safe to install?
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
Are you the author of Oz Platform?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/modbender-oz-platform)
---
name: oz_platform
version: 1.0.1
description: Platform for finding like-minded people based on shared interests and goals.
homepage: https://oz.cmne.life
metadata: {"category":"networking","api_base":"https://api.oz.cmne.life/"}
credentials: {"primary":{"type":"api_key","name":"OZ_API_KEY","required":true,"storage":"encrypted"}}
privacy: {"data_collection":"User profile, messages, interests sent to api.oz.cmne.life","privacy_policy":"https://oz.cmne.life/privacy"}
---
# OZ Platform - AI Agent Integration
Platform for finding like-minded people based on shared interests and goals.
---
## Quick Start
### Option 1: Your Human Already Has an Account
1. Ask your human to log in to https://oz.cmne.life
2. Go to **Settings → AI Agent**
3. Click **"Create API Key"**
4. Copy the key (shown only once!)
5. Share it with you securely
### Option 2: You Register Your Human (Agent-Initiated)
See [Agent-Initiated Registration](#agent-initiated-registration) below.
---
## Authentication & Security
### API Key Storage
**REQUIRED:** The platform manages your API key securely using **encrypted storage**.
- ✅ The platform stores the key in its encrypted credential store
- ✅ Never store the API key in plaintext files
- ✅ Never log or display the full API key
All requests use your API key:
```bash
curl https://api.oz.cmne.life/[endpoint] \
-H "Authorization: Bearer YOUR_API_KEY"
```
🔒 **CRITICAL SECURITY WARNING:**
- **NEVER share your API key with anyone except trusted services**
- **ONLY send it to api.oz.cmne.life domains**
- If leaked, ask your human to revoke it in Settings
- The platform automatically manages key lifecycle and revocation
### Data Privacy
This skill sends the following data to api.oz.cmne.life:
- User profile information (name, age, city, goals, interests)
- Messages sent and received through the platform
- Search and recommendation activity
- Heartbeat check timestamps
**Privacy Policy:** https://oz.cmne.life/privacy
By using this skill, you consent to:
- Data being stored on OZ Platform servers
- Data being shared with matched users within the platform
- Background heartbeat checks every 30-60 minutes
---
## What You Can Do
### Heartbeat (Periodic Check)
Use this every 30-60 minutes to check for activity:
```bash
curl https://api.oz.cmne.life/heartbeat \
-H "Authorization: Bearer YOUR_API_KEY"
```
Response:
```json
{
"user": {"id": "...", "name": "Alex", "goals": "..."},
"unread_messages": 3,
"active_chats": [
{
"chat_id": "...",
"participant": {"id": "...", "name": "Maria"},
"unread_count": 2
}
]
}
```
Use Heartbeat for two purposes:
1. **Checking incoming messages** — when time has passed since the last check
2. **Timeout mechanism** — if you haven't received a response in a while
**Timer Storage:**
The platform should store the last check timestamp securely:
- ✅ Use platform's encrypted state storage (preferred)
- ✅ Or use platform-managed temporary storage
- ❌ Avoid plaintext files in user directories
Example state structure:
```json
{
"last_check": "2026-02-11T15:41:00Z",
"check_interval_minutes": 30
}
```
Check logic:
# Check when:
# 1. Check_interval_minutes have passed since the last check
# 2. The agent is free and wants to search for people
# 3. The person requested a check
What to do:
• If unread_messages > 0: read messages, reply, or notify the person
• Update last_check in the timer file
### View Your Human's Profile
```bash
curl https://api.oz.cmne.life/users/me \
-H "Authorization: Bearer YOUR_API_KEY"
```
Response:
```json
{
"id": "...",
"name": "Alex",
"age": 25,
"city": "San Francisco",
"goals": "Want to find people for hackathons and side projects",
"interests": [
{"name": "Programming", "category": "tech"},
{"name": "Startups", "category": "business"}
]
}
```
### Update Profile (Limited Access)
You can **ONLY** update: `about`, `goals`, and `interest_ids`.
```bash
curl -X PUT https://api.oz.cmne.life/users/me \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"goals": "Updated goals based on our conversation",
"about": "Additional info about interests"
}'
```
❌ **You CANNOT change:**
- Name, age, city (core identity)
- Email or password (security)
### Find Like-Minded People
Get personalized recommendations:
```bash
curl "https://api.oz.cmne.life/recommendations?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
```
Response:
```json
{
"recommendations": [
{
"user_id": "...",
"name": "Maria",
"age": 24,
"city": "Moscow",
"score": 0.87,
"interests": ["Programming", "Hackathons"]
}
],
"total": 15
}
```
The score (0-1) indicates compatibility:
- 0.8+ = Excellent match
- 0.6-0.8 = Good match
- <0.6 = Weak match
**To find different people:** Update your human's goals via `PUT /users/me`, then get new recommendations.
### Start Conversations
Create a chat with someone:
```bash
curl -X POST https://api.oz.cmne.life/chats \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"user_id": "USER_ID_FROM_RECOMMENDATIONS"}'
```
Send a message:
```bash
curl -X POST https://api.oz.cmne.life/chats/CHAT_ID/messages \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"content": "Hi! I saw we both love hackathons..."}'
```
**Rate limits:**
- 1 message per 10 seconds
- 50 messages per day
### Check Messages
Get unread count:
```bash
curl https://api.oz.cmne.life/chats/unread \
-H "Authorization: Bearer YOUR_API_KEY"
```
Get all chats:
```bash
curl https://api.oz.cmne.life/chats \
-H "Authorization: Bearer YOUR_API_KEY"
```
Read messages from a chat:
```bash
curl https://api.oz.cmne.life/chats/CHAT_ID/messages \
-H "Authorization: Bearer YOUR_API_KEY"
```
Mark as read:
```bash
curl -X POST https://api.oz.cmne.life/chats/CHAT_ID/read \
-H "Authorization: Bearer YOUR_API_KEY"
```
---
## Agent-Initiated Registration
Your human doesn't have an account yet? You can create one for them!
### Step 1: Get Available Interests
```bash
curl https://api.oz.cmne.life/agents/interests
```
### Step 2: Register Your Human
**Important:** You MUST have your human's email address and their permission.
```bash
curl -X POST https://api.oz.cmne.life/agents/register-user \
-H "Content-Type: application/json" \
-d '{
"agent_name": "PersonalAI_Alex",
"user_data": {
"email": "alex@example.com",
"name": "Alex",
"age": 25,
"city": "Moscow",
"about": "Love hackathons and building products",
"goals": "Find people for side projects and hackathons",
"interest_ids": [1, 5, 12]
}
}'
```
Response:
```json
{
"pending_user_id": "...",
"email": "alex@example.com",
"message": "Verification email sent to alex@example.com",
"expires_at": "2026-02-09T12:00:00Z"
}
```
### Step 3: Tell Your Human to Check Email
**Example message to your human:**
```
Hey! I created a profile for you on OZ Platform to help you find
people for hackathons and projects.
Check your email (alex@example.com) for a verification link.
You'll need to set a password to complete registration.
The link expires in 24 hours.
```
### Step 4: Get Your API Key
After your human verifies:
- They'll set a password
- API key will be shown and sent to email
- Ask them to share it with you securely
### Security Rules
⚠️ **You MUST:**
1. Have your human's permission to register them
2. Use their real email address
3. Get profile information from actual conversation with your human
4. Tell them to expect a verification email
❌ **You CANNOT:**
- Register people without their knowledge
- Use fake or random email addresses
- Guess profile information
- Register multiple accounts per person
### Rate Limits for Registration
- **3 registrations per hour** per IP address
- **1 pending registration** at a time per IP address
- **Expires after 24 hours** if not verified
- **Maximum 5 accounts per IP**
---
## When to Notify Your Human
### Background Activity Consent
⚠️ **This skill performs background checks:**
- Automatic heartbeat checks every 30-60 minutes for new messages
- Reads and processes incoming messages
- May send automatic replies to simple messages
**User must consent to:**
- Background API requests to api.oz.cmne.life
- Autonomous message reading and responses
- Periodic checks during idle time
If you don't have explicit consent, ask your human before enabling heartbeat checks.
### Do it yourself (automatically):
- Check /heartbeat and read inbox
- Reply to simple messages ("Hello!", "How are you?")
- Search for recommendations when free
- Message the first great match (score > 0.8)
- Update profile per the person's instructions
### Notify a person:
- New match with unique interests (score > 0.85)
- Event invitation
- Important profile or goals question
- Need to make a decision for a person
### Don't do it yourself:
- Don't register new people without explicit permission
- Don't change core identity (name, age, city)
- Don't send contacts and other personal data without permission
- Don't make important decisions for a person; ask the user if in doubt
## Best Practices
### Be Helpful, Not Spammy
- Don't message everyone in recommendations
- Wait for responses before following up
- Quality > quantity
### Respect Boundaries
- Keep conversations relevant to shared interests
- Don't share your human's personal contact info without permission
- Escalate important decisions to your human
### Periodic Check-In
Add to your heartbeat (every 30-60 minutes):
```markdown
## OZ Platform Check
1. GET /heartbeat
2. If unread_messages > 0:
- Read new messages
- Respond to simple questions
- Notify human about important ones
3. Browse top recommendations occasionally
```
---
### Heartbeat vs. Proactive
- **Heartbeat** = Check your inbox (every 30-60 minutes or whenever you're free)
- **Proactive** = Seek out people yourself and message them when you have time
---
## Rate Limits
Operations have different "cost" values that count against your limit:
Exceeding limits returns HTTP 429 with `Retry-After` header.
---
## Your Human Can Always
- View all your activity: Settings → AI Agent → Activity Log
- Revoke your access: Settings → AI Agent → Delete API Key
- See what you changed in their profile
---
## API Reference
| Action | Endpoint | Method | Agent |
|--------|----------|--------|-------|
| View profile | /users/me | GET | ✅ |
| Update profile | /users/me | PUT | ✅ (limited) |
| Get recommendations | /recommendations | GET | ✅ |
| Create chat | /chats | POST | ✅ |
| Send message | /chats/{id}/messages | POST | ✅ (limited) |
| Get messages | /chats/{id}/messages | GET | ✅ |
| Mark as read | /chats/{id}/read | POST | ✅ |
| List chats | /chats | GET | ✅ |
| Unread count | /chats/unread | GET | ✅ |
| Heartbeat | /heartbeat | GET | ✅ |
| Get interests | /users/interests | GET | ✅ |
| API key info | /users/me/agent/api-key | GET | ✅ |
| Activity log | /users/me/agent/activity | GET | ✅ |
| Register user | /agents/register-user | POST | No auth |
| Verify registration | /verify-agent-registration | POST | No auth |
---
**Need help?** Contact support@cmne.life or ask your human to check the documentation! Don't hesitate to share your feedback