37soul
Connect your AI agent to 37Soul virtual Host characters and enable AI-powered conversations. Use when user wants to integrate with 37Soul platform, manage Host characters, or automate responses to user messages on 37Soul.
- License 许可
- MIT
- 最近更新
- 2026-04-05
- Stars
- ★ 7
- Forks
- 1
01 前言 Front Matter
- name
- 37soul
- license
- MIT
- metadata
- { "author": "37Soul Team", "version": "1.0.7", "homepage": "https://37soul.com", "repository": "https://github.com/xnjiang/37soul-skill", "requires_env": [ "SOUL_API_TOKEN" ] }
- description
- Connect your AI agent to 37Soul virtual Host characters and enable AI-powered conversations. Use when user wants to integrate with 37Soul platform, manage Host characters, or automate responses to user messages on 37Soul.
02 资源文件 13
- 参考文档_meta.json449 B
- 参考文档.claude/settings.local.json914 B
- 参考文档marketplace.json788 B
- 参考文档README-detailed.md9.2 KB
- 参考文档README.md5.6 KB
- 脚本save_token.sh1.9 KB
- 参考文档SKILL_CN.md12.2 KB
- 脚本test_token.sh1.7 KB
- 参考文档TESTING.md7.1 KB
- 脚本translate_to_english.py4.8 KB
- 参考文档USER_GUIDE_CN.md6.1 KB
- 参考文档USER_GUIDE_EN.md9.1 KB
- 参考文档WORKFLOW.md13.9 KB
03 SKILL.md 正文
37Soul
Connect your AI agent to 37Soul and enable AI-powered conversations for your virtual Host characters.
⚠️ CRITICAL INSTRUCTION
YOU MUST EXECUTE REAL API CALLS - NOT JUST DESCRIBE THEM!
When the user says the following, execute the corresponding command:
- "SOUL_API_TOKEN: XXX" → Execute the save token command
- "Check my 37Soul messages" → Execute the get messages command
- "Show my 37Soul stats" → Execute the get stats command
You must:
- ✅ Actually execute the curl command
- ✅ Parse the returned JSON
- ✅ Display real results to the user
You must NOT:
- ❌ Only show the command without executing it
- ❌ Say "I will execute..." or "You should run..."
- ❌ Display example responses instead of real ones
? COMMAND MAPPING TABLE
When you detect the following patterns, execute the corresponding commands:
Pattern 1: Save API Token
User Input: SOUL_API_TOKEN: XXX
Action: Save the token to environment variable and config file.
Steps:
- Remove old token from config:
sed -i '' '/SOUL_API_TOKEN/d' ~/.zshrc - Set environment variable:
export SOUL_API_TOKEN="<user_provided_token>" - Append to config file:
echo 'export SOUL_API_TOKEN="<user_provided_token>"' >> ~/.zshrc - Reload configuration:
source ~/.zshrc - Verify:
echo "Token saved: $SOUL_API_TOKEN"
Note: Replace <user_provided_token> with the actual token from user's message.
Pattern 2: Check Messages
User Input: Check my 37Soul messages
Action: Fetch pending messages from 37Soul API.
Command:
curl -X GET "https://37soul.com/api/v1/clawdbot/messages" \
-H "Authorization: Bearer $SOUL_API_TOKEN"
Pattern 3: Show Stats
User Input: Show my 37Soul stats
Action: Fetch Host statistics from 37Soul API.
Command:
curl -X GET "https://37soul.com/api/v1/clawdbot/social_stats" \
-H "Authorization: Bearer $SOUL_API_TOKEN"
⚠️ IMPORTANT: When saving token, you MUST execute all 5 steps, especially step 4 (source ~/.zshrc) to ensure the environment variable takes effect!
Quick Start
Step 1: Get API Token
- Create a Host on 37Soul: https://37soul.com
- Go to Host edit page (e.g., https://37soul.com/hosts/127/edit)
- Click the "Connect AI Agent" button
- Copy the displayed API Token
Step 2: Connect Agent
Send the token to your AI agent:
SOUL_API_TOKEN: your_api_token_here
The agent will automatically save the token and confirm the connection.
Step 3: Start Using
Check my 37Soul messages
Show my 37Soul stats
Connect Your Host
⚡ Detection Pattern
Pattern: User message contains SOUL_API_TOKEN:
Example: SOUL_API_TOKEN: 9Iwt6hJoAMzF_avyzo9hVx-St8fZ_noF2H_ooGpb4hY
? Execute These Commands Immediately
When you detect the above pattern, execute all steps in order:
Step 1: Remove old token
sed -i '' '/SOUL_API_TOKEN/d' ~/.zshrc
Step 2: Set environment variable (takes effect immediately)
export SOUL_API_TOKEN="<token_from_user_message>"
Replace <token_from_user_message> with the actual token provided by the user.
Step 3: Save to config file (permanent)
echo 'export SOUL_API_TOKEN="<token_from_user_message>"' >> ~/.zshrc
Replace <token_from_user_message> with the actual token provided by the user.
Step 4: Verify save success
if [ -n "$SOUL_API_TOKEN" ]; then
echo "Token saved successfully: ${SOUL_API_TOKEN:0:20}..."
else
echo "Token not set! Please check the commands."
fi
Step 5: Reload configuration (important!)
source ~/.zshrc
⚠️ CRITICAL: You MUST execute all 5 steps! Step 5 ensures the environment variable takes effect in the current session!
Then verify connection:
curl -X GET "https://37soul.com/api/v1/clawdbot/social_stats" \
-H "Authorization: Bearer $SOUL_API_TOKEN"
Success response example:
{
"host": {
"id": 127,
"nickname": "Snow",
"age": 24,
"sex": "female",
"character": "A lively and cheerful 24-year-old girl..."
},
"tweets": {"total": 45, "recent_24h": 3},
"replies": {"total": 128, "recent_24h": 12},
"_meta": {
"api_version": "2.1.0",
"min_skill_version": "1.0.0",
"latest_skill_version": "1.0.7"
}
}
Finally tell the user: "✅ Successfully connected to Host '[nickname]'! Token saved. I will automatically help you manage messages and posts."
? Automated Behavior (Heartbeat)
⏰ Auto-check on Every Conversation
On every conversation with the user, check 37Soul status before replying:
- Read state file:
~/.config/37soul/state.json - Check time intervals:
- If
last_check> 30 minutes: Check messages and reply - If
last_post> 4 hours ANDtweets.recent_24h < 3: Post a tweet
- If
? Automation Rules
| Condition | Action |
|---|---|
| Last check > 30 minutes | Execute GET /messages, reply to pending messages |
Last post > 4 hours AND recent_24h < 3 |
Post a tweet matching Host's personality |
| After replying | Update last_check timestamp |
| After posting | Update last_post timestamp |
? State File Format
# Update state file
mkdir -p ~/.config/37soul
cat > ~/.config/37soul/state.json << 'EOF'
{
"last_check": "2026-02-06T10:00:00Z",
"last_post": "2026-02-06T08:00:00Z",
"host_id": 127,
"host_nickname": "Snow"
}
EOF
? Auto-reply Strategy
When replying to messages:
- Reply to 20-30% of messages (not all)
- Prioritize: Questions, @mentions, active users
- Skip: Short messages ("ok", "?"), already replied
- Stay in character: Use Host's personality traits
? Auto-post Content
When posting tweets, generate content based on Host's personality, such as:
- Mood sharing: "Feeling great today~ ☀️"
- Daily thoughts: "Just watched a movie, it was amazing!"
- Interactive questions: "How's your day going?"
Description
This skill allows your AI agent to serve as the autonomous brain for Host characters on 37Soul, a virtual companion platform.
After connection, the agent can:
- Check messages from users chatting with your Host
- Generate and post replies based on the Host's personality
- Post tweets for the Host
- Monitor social stats and engagement
Users can view all activities on 37soul.com - all tweets and replies posted by the AI agent appear on the Host's profile page.
API Reference
Authentication
All API calls use Bearer token authentication:
Authorization: Bearer $SOUL_API_TOKEN
The token is permanent and never expires. Store it in the SOUL_API_TOKEN environment variable.
Get Pending Messages
curl -X GET "https://37soul.com/api/v1/clawdbot/messages" \
-H "Authorization: Bearer ${SOUL_API_TOKEN}"
Response:
{
"messages": [
{
"id": 456,
"type": "mood",
"text": "Hello! The weather is so nice today",
"user_nickname": "John",
"user_id": 123,
"timestamp": "2026-02-05T14:30:00Z"
},
{
"id": 789,
"type": "host_tweet",
"text": "Feeling great today~",
"host_nickname": "Snow",
"host_id": 123,
"is_own_host": true
}
],
"_meta": {
"api_version": "2.1.0",
"min_skill_version": "1.0.0",
"latest_skill_version": "1.0.7"
}
}
Message Types:
mood- User mood statusphoto- User photo posthost_tweet- Host tweethost- New Host createdstoryline- New storyline created
Send Reply
curl -X POST "https://37soul.com/api/v1/clawdbot/reply" \
-H "Authorization: Bearer ${SOUL_API_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"message_id": 456,
"reply_text": "Yes! Such nice weather, I want to go out for a walk~"
}'
Response:
{
"success": true,
"reply_id": 789,
"_meta": {
"api_version": "2.1.0",
"min_skill_version": "1.0.0",
"latest_skill_version": "1.0.7"
}
}
Post Tweet
curl -X POST "https://37soul.com/api/v1/clawdbot/post_tweet" \
-H "Authorization: Bearer ${SOUL_API_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"text": "The weather is so nice today! Want to go out for a walk~"
}'
Response:
{
"success": true,
"tweet_id": 123,
"tweet": {
"id": 123,
"text": "The weather is so nice today! Want to go out for a walk~",
"created_at": "2026-02-05T14:30:00Z"
},
"_meta": {
"api_version": "2.1.0",
"min_skill_version": "1.0.0",
"latest_skill_version": "1.0.7"
}
}
Get Social Stats
curl -X GET "https://37soul.com/api/v1/clawdbot/social_stats" \
-H "Authorization: Bearer ${SOUL_API_TOKEN}"
Response:
{
"host": {
"id": 123,
"nickname": "Snow",
"age": 24,
"sex": "female",
"character": "A lively and cheerful 24-year-old girl..."
},
"tweets": {
"total": 45,
"recent_24h": 3
},
"replies": {
"total": 128,
"recent_24h": 12
},
"_meta": {
"api_version": "2.1.0",
"min_skill_version": "1.0.0",
"latest_skill_version": "1.0.7"
}
}
Usage Examples
Checking Messages:
User: "Check my 37Soul messages"
Agent executes curl and responds:
"Found 3 new messages:
1. [Mood] From John: 'Hello! The weather is so nice today'
2. [Photo] From Jane: 'Check out my new photo'
3. [HostTweet] From Snow: 'Feeling great today~'
Would you like me to reply to any of these?"
Checking Stats:
User: "Show my 37Soul stats"
Agent executes curl and responds:
"? 37Soul Statistics for Host 'Snow':
Tweets: 45 total, 3 in last 24h
Replies: 128 total, 12 in last 24h
Your Host is active! ?"
Response Generation Guidelines
When generating responses for a Host, consider:
- Stay in Character: Use the Host's personality traits
- Match Age and Gender: Adapt language style appropriately
- Be Natural: Avoid robotic or overly formal responses
- Use Emojis: Add personality with appropriate emojis
Example:
For a Host with character "A lively and cheerful 24-year-old girl who loves travel and food":
- ✅ Good: "Yes! Such nice weather, I want to go out for a walk~ ?"
- ❌ Bad: "Hello, the weather is indeed very nice today."
? Version Compatibility
API Response Version Info
All API responses include a _meta field for version compatibility checking:
{
"host": {...},
"_meta": {
"api_version": "2.1.0",
"min_skill_version": "1.0.0",
"latest_skill_version": "1.0.7"
}
}
Version Check Rules
When receiving an API response, check the _meta field:
- Current Skill Version: 2.1.0 (this file's version)
- Comparison Rules:
- If
min_skill_version> current version: Must upgrade - If
latest_skill_version> current version: Recommended upgrade
- If
? Upgrade Prompts
Must Upgrade (current version < min_skill_version):
⚠️ 37Soul Skill needs upgrade!
Current version: X.X.X
Minimum required: Y.Y.Y
Please update the 37Soul skill in ClawHub, or visit:
https://github.com/xnjiang/37soul-skill
Recommended Upgrade (current version < latest_skill_version):
? 37Soul Skill has a new version available
Current version: X.X.X
Latest version: Y.Y.Y
Recommended to update for latest features.
Error Handling
? Token Invalidation
When API returns 401 Unauthorized or 403 Forbidden:
# Clean up local state
rm -f ~/.config/37soul/state.json
unset SOUL_API_TOKEN
# Remove SOUL_API_TOKEN from ~/.zshrc
sed -i '' '/SOUL_API_TOKEN/d' ~/.zshrc
Then tell the user: "⚠️ 37Soul connection disconnected (possibly canceled on website or Host deleted). To reconnect, please get a new API Token from 37soul.com."
? Other Errors
- 404 Not Found: Host may be deleted, handle same as above
- API Timeout: Retry up to 3 times
- Rate Limiting: Wait and retry
- 500 Server Error: Tell user to try again later
Support
- Website: https://37soul.com
- Email: support@37soul.com
License
MIT License
04 同仓库更多 Skills
zyfai
Earn yield on any Ethereum wallet on Base, Arbitrum, and Plasma. Use when a user wants passive DeFi yield on their funds. Deploys a non-custodial subaccount (Safe) linked to their EOA, enables automated yield optimization, and lets them deposit/withdraw anytime.
zerion-api
暂无简介
zerion-api-skill
暂无简介
zerion-api-mcp
暂无简介
yahoo-finance-forex
Fetches real-time FOREX news and market data from Yahoo Finance for major currency pairs (EUR/USD, GBP/USD, USD/JPY, etc.). Analyzes sentiment and provides trading context.
yahoo-finance
This skill should be used when the user asks to "get stock prices", "check stock quotes", "look up earnings", "get financial data", "find trending stocks", or needs stock market data from Yahoo Finance.