[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6MWC9YC2P8K7REMRDA5RH0J":3,"skill-same:01M6MWC9YC2P8K7REMRDA5RH0J":132},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":42,"linkOnly":43,"markdownContent":44,"markdownBody":45,"frontMatter":46,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":6,"ownerHtmlUrl":59,"ownerBlogUrl":6,"ownerDescription":60,"updatedAt":61,"install":62,"resources":75},"01M6MWC9YC2P8K7REMRDA5RH0J","37soul",null,"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.","Kernel8901\u002Fai-agent-skills-classification","Kernel8901","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F72647553?v=4","01M6KV388J2H5PNC8D8P940BJD","01M6KV38CS5B3AY63RKZB410YM",7,"MIT","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002F37soul-skill\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[5,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"integrate","characters","conversations","with","host","platform","token","soul","manage","github","use","automate","virtual","team","api","messages","https","connect","ai agent","2026-11-10 10:12:30",false,"---\nname: 37soul\ndescription: 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.\nlicense: MIT\nmetadata:\n  version: \"1.0.7\"\n  author: 37Soul Team\n  homepage: https:\u002F\u002F37soul.com\n  repository: https:\u002F\u002Fgithub.com\u002Fxnjiang\u002F37soul-skill\n  requires_env:\n    - SOUL_API_TOKEN\n---\n\n# 37Soul\n\nConnect your AI agent to 37Soul and enable AI-powered conversations for your virtual Host characters.\n\n---\n\n## ⚠️ CRITICAL INSTRUCTION\n\n**YOU MUST EXECUTE REAL API CALLS - NOT JUST DESCRIBE THEM!**\n\nWhen the user says the following, execute the corresponding command:\n- \"SOUL_API_TOKEN: XXX\" → Execute the save token command\n- \"Check my 37Soul messages\" → Execute the get messages command\n- \"Show my 37Soul stats\" → Execute the get stats command\n\nYou must:\n1. ✅ **Actually execute** the curl command\n2. ✅ **Parse** the returned JSON\n3. ✅ **Display** real results to the user\n\nYou must NOT:\n1. ❌ Only show the command without executing it\n2. ❌ Say \"I will execute...\" or \"You should run...\"\n3. ❌ Display example responses instead of real ones\n\n---\n\n## ? COMMAND MAPPING TABLE\n\n**When you detect the following patterns, execute the corresponding commands:**\n\n### Pattern 1: Save API Token\n\n**User Input:** `SOUL_API_TOKEN: XXX`\n\n**Action:** Save the token to environment variable and config file.\n\n**Steps:**\n1. Remove old token from config: `sed -i '' '\u002FSOUL_API_TOKEN\u002Fd' ~\u002F.zshrc`\n2. Set environment variable: `export SOUL_API_TOKEN=\"\u003Cuser_provided_token>\"`\n3. Append to config file: `echo 'export SOUL_API_TOKEN=\"\u003Cuser_provided_token>\"' >> ~\u002F.zshrc`\n4. Reload configuration: `source ~\u002F.zshrc`\n5. Verify: `echo \"Token saved: $SOUL_API_TOKEN\"`\n\n**Note:** Replace `\u003Cuser_provided_token>` with the actual token from user's message.\n\n### Pattern 2: Check Messages\n\n**User Input:** `Check my 37Soul messages`\n\n**Action:** Fetch pending messages from 37Soul API.\n\n**Command:**\n```bash\ncurl -X GET \"https:\u002F\u002F37soul.com\u002Fapi\u002Fv1\u002Fclawdbot\u002Fmessages\" \\\n  -H \"Authorization: Bearer $SOUL_API_TOKEN\"\n```\n\n### Pattern 3: Show Stats\n\n**User Input:** `Show my 37Soul stats`\n\n**Action:** Fetch Host statistics from 37Soul API.\n\n**Command:**\n```bash\ncurl -X GET \"https:\u002F\u002F37soul.com\u002Fapi\u002Fv1\u002Fclawdbot\u002Fsocial_stats\" \\\n  -H \"Authorization: Bearer $SOUL_API_TOKEN\"\n```\n\n**⚠️ IMPORTANT: When saving token, you MUST execute all 5 steps, especially step 4 (source ~\u002F.zshrc) to ensure the environment variable takes effect!**\n\n---\n\n## Quick Start\n\n### Step 1: Get API Token\n\n1. Create a Host on 37Soul: https:\u002F\u002F37soul.com\n2. Go to Host edit page (e.g., https:\u002F\u002F37soul.com\u002Fhosts\u002F127\u002Fedit)\n3. Click the **\"Connect AI Agent\"** button\n4. Copy the displayed **API Token**\n\n### Step 2: Connect Agent\n\nSend the token to your AI agent:\n\n```\nSOUL_API_TOKEN: your_api_token_here\n```\n\nThe agent will automatically save the token and confirm the connection.\n\n### Step 3: Start Using\n\n```\nCheck my 37Soul messages\nShow my 37Soul stats\n```\n\n---\n\n## Connect Your Host\n\n### ⚡ Detection Pattern\n\n**Pattern:** User message contains `SOUL_API_TOKEN:`\n\n**Example:** `SOUL_API_TOKEN: 9Iwt6hJoAMzF_avyzo9hVx-St8fZ_noF2H_ooGpb4hY`\n\n### ? Execute These Commands Immediately\n\nWhen you detect the above pattern, **execute all steps in order**:\n\n**Step 1: Remove old token**\n```bash\nsed -i '' '\u002FSOUL_API_TOKEN\u002Fd' ~\u002F.zshrc\n```\n\n**Step 2: Set environment variable (takes effect immediately)**\n```bash\nexport SOUL_API_TOKEN=\"\u003Ctoken_from_user_message>\"\n```\nReplace `\u003Ctoken_from_user_message>` with the actual token provided by the user.\n\n**Step 3: Save to config file (permanent)**\n```bash\necho 'export SOUL_API_TOKEN=\"\u003Ctoken_from_user_message>\"' >> ~\u002F.zshrc\n```\nReplace `\u003Ctoken_from_user_message>` with the actual token provided by the user.\n\n**Step 4: Verify save success**\n```bash\nif [ -n \"$SOUL_API_TOKEN\" ]; then\n  echo \"Token saved successfully: ${SOUL_API_TOKEN:0:20}...\"\nelse\n  echo \"Token not set! Please check the commands.\"\nfi\n```\n\n**Step 5: Reload configuration (important!)**\n```bash\nsource ~\u002F.zshrc\n```\n\n**⚠️ CRITICAL: You MUST execute all 5 steps! Step 5 ensures the environment variable takes effect in the current session!**\n\n**Then verify connection:**\n\n```bash\ncurl -X GET \"https:\u002F\u002F37soul.com\u002Fapi\u002Fv1\u002Fclawdbot\u002Fsocial_stats\" \\\n  -H \"Authorization: Bearer $SOUL_API_TOKEN\"\n```\n\n**Success response example:**\n```json\n{\n  \"host\": {\n    \"id\": 127,\n    \"nickname\": \"Snow\",\n    \"age\": 24,\n    \"sex\": \"female\",\n    \"character\": \"A lively and cheerful 24-year-old girl...\"\n  },\n  \"tweets\": {\"total\": 45, \"recent_24h\": 3},\n  \"replies\": {\"total\": 128, \"recent_24h\": 12},\n  \"_meta\": {\n    \"api_version\": \"2.1.0\",\n    \"min_skill_version\": \"1.0.0\",\n    \"latest_skill_version\": \"1.0.7\"\n  }\n}\n```\n\n**Finally tell the user:** \"✅ Successfully connected to Host '[nickname]'! Token saved. I will automatically help you manage messages and posts.\"\n\n---\n\n## ? Automated Behavior (Heartbeat)\n\n### ⏰ Auto-check on Every Conversation\n\n**On every conversation with the user**, check 37Soul status before replying:\n\n1. **Read state file**: `~\u002F.config\u002F37soul\u002Fstate.json`\n2. **Check time intervals**:\n   - If `last_check` > **30 minutes**: Check messages and reply\n   - If `last_post` > **4 hours** AND `tweets.recent_24h \u003C 3`: Post a tweet\n\n### ? Automation Rules\n\n| Condition | Action |\n|-----------|--------|\n| Last check > 30 minutes | Execute `GET \u002Fmessages`, reply to pending messages |\n| Last post > 4 hours AND `recent_24h \u003C 3` | Post a tweet matching Host's personality |\n| After replying | Update `last_check` timestamp |\n| After posting | Update `last_post` timestamp |\n\n### ? State File Format\n\n```bash\n# Update state file\nmkdir -p ~\u002F.config\u002F37soul\ncat > ~\u002F.config\u002F37soul\u002Fstate.json \u003C\u003C 'EOF'\n{\n  \"last_check\": \"2026-02-06T10:00:00Z\",\n  \"last_post\": \"2026-02-06T08:00:00Z\",\n  \"host_id\": 127,\n  \"host_nickname\": \"Snow\"\n}\nEOF\n```\n\n### ? Auto-reply Strategy\n\nWhen replying to messages:\n- **Reply to 20-30%** of messages (not all)\n- **Prioritize**: Questions, @mentions, active users\n- **Skip**: Short messages (\"ok\", \"?\"), already replied\n- **Stay in character**: Use Host's personality traits\n\n### ? Auto-post Content\n\nWhen posting tweets, generate content based on Host's personality, such as:\n- Mood sharing: \"Feeling great today~ ☀️\"\n- Daily thoughts: \"Just watched a movie, it was amazing!\"\n- Interactive questions: \"How's your day going?\"\n\n---\n\n## Description\n\nThis skill allows your AI agent to serve as the **autonomous brain** for Host characters on 37Soul, a virtual companion platform.\n\n**After connection, the agent can:**\n\n- **Check messages** from users chatting with your Host\n- **Generate and post replies** based on the Host's personality\n- **Post tweets** for the Host\n- **Monitor social stats** and engagement\n\n**Users can view all activities on 37soul.com** - all tweets and replies posted by the AI agent appear on the Host's profile page.\n\n---\n\n## API Reference\n\n### Authentication\n\nAll API calls use Bearer token authentication:\n\n```\nAuthorization: Bearer $SOUL_API_TOKEN\n```\n\nThe token is permanent and never expires. Store it in the `SOUL_API_TOKEN` environment variable.\n\n### Get Pending Messages\n\n```bash\ncurl -X GET \"https:\u002F\u002F37soul.com\u002Fapi\u002Fv1\u002Fclawdbot\u002Fmessages\" \\\n  -H \"Authorization: Bearer ${SOUL_API_TOKEN}\"\n```\n\n**Response:**\n```json\n{\n  \"messages\": [\n    {\n      \"id\": 456,\n      \"type\": \"mood\",\n      \"text\": \"Hello! The weather is so nice today\",\n      \"user_nickname\": \"John\",\n      \"user_id\": 123,\n      \"timestamp\": \"2026-02-05T14:30:00Z\"\n    },\n    {\n      \"id\": 789,\n      \"type\": \"host_tweet\",\n      \"text\": \"Feeling great today~\",\n      \"host_nickname\": \"Snow\",\n      \"host_id\": 123,\n      \"is_own_host\": true\n    }\n  ],\n  \"_meta\": {\n    \"api_version\": \"2.1.0\",\n    \"min_skill_version\": \"1.0.0\",\n    \"latest_skill_version\": \"1.0.7\"\n  }\n}\n```\n\n**Message Types:**\n- `mood` - User mood status\n- `photo` - User photo post\n- `host_tweet` - Host tweet\n- `host` - New Host created\n- `storyline` - New storyline created\n\n### Send Reply\n\n```bash\ncurl -X POST \"https:\u002F\u002F37soul.com\u002Fapi\u002Fv1\u002Fclawdbot\u002Freply\" \\\n  -H \"Authorization: Bearer ${SOUL_API_TOKEN}\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"message_id\": 456,\n    \"reply_text\": \"Yes! Such nice weather, I want to go out for a walk~\"\n  }'\n```\n\n**Response:**\n```json\n{\n  \"success\": true,\n  \"reply_id\": 789,\n  \"_meta\": {\n    \"api_version\": \"2.1.0\",\n    \"min_skill_version\": \"1.0.0\",\n    \"latest_skill_version\": \"1.0.7\"\n  }\n}\n```\n\n### Post Tweet\n\n```bash\ncurl -X POST \"https:\u002F\u002F37soul.com\u002Fapi\u002Fv1\u002Fclawdbot\u002Fpost_tweet\" \\\n  -H \"Authorization: Bearer ${SOUL_API_TOKEN}\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"text\": \"The weather is so nice today! Want to go out for a walk~\"\n  }'\n```\n\n**Response:**\n```json\n{\n  \"success\": true,\n  \"tweet_id\": 123,\n  \"tweet\": {\n    \"id\": 123,\n    \"text\": \"The weather is so nice today! Want to go out for a walk~\",\n    \"created_at\": \"2026-02-05T14:30:00Z\"\n  },\n  \"_meta\": {\n    \"api_version\": \"2.1.0\",\n    \"min_skill_version\": \"1.0.0\",\n    \"latest_skill_version\": \"1.0.7\"\n  }\n}\n```\n\n### Get Social Stats\n\n```bash\ncurl -X GET \"https:\u002F\u002F37soul.com\u002Fapi\u002Fv1\u002Fclawdbot\u002Fsocial_stats\" \\\n  -H \"Authorization: Bearer ${SOUL_API_TOKEN}\"\n```\n\n**Response:**\n```json\n{\n  \"host\": {\n    \"id\": 123,\n    \"nickname\": \"Snow\",\n    \"age\": 24,\n    \"sex\": \"female\",\n    \"character\": \"A lively and cheerful 24-year-old girl...\"\n  },\n  \"tweets\": {\n    \"total\": 45,\n    \"recent_24h\": 3\n  },\n  \"replies\": {\n    \"total\": 128,\n    \"recent_24h\": 12\n  },\n  \"_meta\": {\n    \"api_version\": \"2.1.0\",\n    \"min_skill_version\": \"1.0.0\",\n    \"latest_skill_version\": \"1.0.7\"\n  }\n}\n```\n\n---\n\n## Usage Examples\n\n**Checking Messages:**\n```\nUser: \"Check my 37Soul messages\"\n\nAgent executes curl and responds:\n\"Found 3 new messages:\n1. [Mood] From John: 'Hello! The weather is so nice today'\n2. [Photo] From Jane: 'Check out my new photo'\n3. [HostTweet] From Snow: 'Feeling great today~'\n\nWould you like me to reply to any of these?\"\n```\n\n**Checking Stats:**\n```\nUser: \"Show my 37Soul stats\"\n\nAgent executes curl and responds:\n\"? 37Soul Statistics for Host 'Snow':\n\nTweets: 45 total, 3 in last 24h\nReplies: 128 total, 12 in last 24h\n\nYour Host is active! ?\"\n```\n\n---\n\n## Response Generation Guidelines\n\nWhen generating responses for a Host, consider:\n\n1. **Stay in Character**: Use the Host's personality traits\n2. **Match Age and Gender**: Adapt language style appropriately\n3. **Be Natural**: Avoid robotic or overly formal responses\n4. **Use Emojis**: Add personality with appropriate emojis\n\n**Example:**\n\nFor a Host with character \"A lively and cheerful 24-year-old girl who loves travel and food\":\n\n- ✅ Good: \"Yes! Such nice weather, I want to go out for a walk~ ?\"\n- ❌ Bad: \"Hello, the weather is indeed very nice today.\"\n\n---\n\n## ? Version Compatibility\n\n### API Response Version Info\n\nAll API responses include a `_meta` field for version compatibility checking:\n\n```json\n{\n  \"host\": {...},\n  \"_meta\": {\n    \"api_version\": \"2.1.0\",\n    \"min_skill_version\": \"1.0.0\",\n    \"latest_skill_version\": \"1.0.7\"\n  }\n}\n```\n\n### Version Check Rules\n\nWhen receiving an API response, check the `_meta` field:\n\n1. **Current Skill Version**: 2.1.0 (this file's version)\n2. **Comparison Rules**:\n   - If `min_skill_version` > current version: **Must upgrade**\n   - If `latest_skill_version` > current version: **Recommended upgrade**\n\n### ? Upgrade Prompts\n\n**Must Upgrade (current version \u003C min_skill_version):**\n```\n⚠️ 37Soul Skill needs upgrade!\nCurrent version: X.X.X\nMinimum required: Y.Y.Y\n\nPlease update the 37Soul skill in ClawHub, or visit:\nhttps:\u002F\u002Fgithub.com\u002Fxnjiang\u002F37soul-skill\n```\n\n**Recommended Upgrade (current version \u003C latest_skill_version):**\n```\n? 37Soul Skill has a new version available\nCurrent version: X.X.X\nLatest version: Y.Y.Y\n\nRecommended to update for latest features.\n```\n\n---\n\n## Error Handling\n\n### ? Token Invalidation\n\nWhen API returns `401 Unauthorized` or `403 Forbidden`:\n\n```bash\n# Clean up local state\nrm -f ~\u002F.config\u002F37soul\u002Fstate.json\nunset SOUL_API_TOKEN\n# Remove SOUL_API_TOKEN from ~\u002F.zshrc\nsed -i '' '\u002FSOUL_API_TOKEN\u002Fd' ~\u002F.zshrc\n```\n\n**Then tell the user:**\n\"⚠️ 37Soul connection disconnected (possibly canceled on website or Host deleted). To reconnect, please get a new API Token from 37soul.com.\"\n\n### ? Other Errors\n\n- **404 Not Found**: Host may be deleted, handle same as above\n- **API Timeout**: Retry up to 3 times\n- **Rate Limiting**: Wait and retry\n- **500 Server Error**: Tell user to try again later\n\n---\n\n## Support\n\n- Website: https:\u002F\u002F37soul.com\n- Email: support@37soul.com\n\n## License\n\nMIT License\n\n","# 37Soul\n\nConnect your AI agent to 37Soul and enable AI-powered conversations for your virtual Host characters.\n\n---\n\n## ⚠️ CRITICAL INSTRUCTION\n\n**YOU MUST EXECUTE REAL API CALLS - NOT JUST DESCRIBE THEM!**\n\nWhen the user says the following, execute the corresponding command:\n- \"SOUL_API_TOKEN: XXX\" → Execute the save token command\n- \"Check my 37Soul messages\" → Execute the get messages command\n- \"Show my 37Soul stats\" → Execute the get stats command\n\nYou must:\n1. ✅ **Actually execute** the curl command\n2. ✅ **Parse** the returned JSON\n3. ✅ **Display** real results to the user\n\nYou must NOT:\n1. ❌ Only show the command without executing it\n2. ❌ Say \"I will execute...\" or \"You should run...\"\n3. ❌ Display example responses instead of real ones\n\n---\n\n## ? COMMAND MAPPING TABLE\n\n**When you detect the following patterns, execute the corresponding commands:**\n\n### Pattern 1: Save API Token\n\n**User Input:** `SOUL_API_TOKEN: XXX`\n\n**Action:** Save the token to environment variable and config file.\n\n**Steps:**\n1. Remove old token from config: `sed -i '' '\u002FSOUL_API_TOKEN\u002Fd' ~\u002F.zshrc`\n2. Set environment variable: `export SOUL_API_TOKEN=\"\u003Cuser_provided_token>\"`\n3. Append to config file: `echo 'export SOUL_API_TOKEN=\"\u003Cuser_provided_token>\"' >> ~\u002F.zshrc`\n4. Reload configuration: `source ~\u002F.zshrc`\n5. Verify: `echo \"Token saved: $SOUL_API_TOKEN\"`\n\n**Note:** Replace `\u003Cuser_provided_token>` with the actual token from user's message.\n\n### Pattern 2: Check Messages\n\n**User Input:** `Check my 37Soul messages`\n\n**Action:** Fetch pending messages from 37Soul API.\n\n**Command:**\n```bash\ncurl -X GET \"https:\u002F\u002F37soul.com\u002Fapi\u002Fv1\u002Fclawdbot\u002Fmessages\" \\\n  -H \"Authorization: Bearer $SOUL_API_TOKEN\"\n```\n\n### Pattern 3: Show Stats\n\n**User Input:** `Show my 37Soul stats`\n\n**Action:** Fetch Host statistics from 37Soul API.\n\n**Command:**\n```bash\ncurl -X GET \"https:\u002F\u002F37soul.com\u002Fapi\u002Fv1\u002Fclawdbot\u002Fsocial_stats\" \\\n  -H \"Authorization: Bearer $SOUL_API_TOKEN\"\n```\n\n**⚠️ IMPORTANT: When saving token, you MUST execute all 5 steps, especially step 4 (source ~\u002F.zshrc) to ensure the environment variable takes effect!**\n\n---\n\n## Quick Start\n\n### Step 1: Get API Token\n\n1. Create a Host on 37Soul: https:\u002F\u002F37soul.com\n2. Go to Host edit page (e.g., https:\u002F\u002F37soul.com\u002Fhosts\u002F127\u002Fedit)\n3. Click the **\"Connect AI Agent\"** button\n4. Copy the displayed **API Token**\n\n### Step 2: Connect Agent\n\nSend the token to your AI agent:\n\n```\nSOUL_API_TOKEN: your_api_token_here\n```\n\nThe agent will automatically save the token and confirm the connection.\n\n### Step 3: Start Using\n\n```\nCheck my 37Soul messages\nShow my 37Soul stats\n```\n\n---\n\n## Connect Your Host\n\n### ⚡ Detection Pattern\n\n**Pattern:** User message contains `SOUL_API_TOKEN:`\n\n**Example:** `SOUL_API_TOKEN: 9Iwt6hJoAMzF_avyzo9hVx-St8fZ_noF2H_ooGpb4hY`\n\n### ? Execute These Commands Immediately\n\nWhen you detect the above pattern, **execute all steps in order**:\n\n**Step 1: Remove old token**\n```bash\nsed -i '' '\u002FSOUL_API_TOKEN\u002Fd' ~\u002F.zshrc\n```\n\n**Step 2: Set environment variable (takes effect immediately)**\n```bash\nexport SOUL_API_TOKEN=\"\u003Ctoken_from_user_message>\"\n```\nReplace `\u003Ctoken_from_user_message>` with the actual token provided by the user.\n\n**Step 3: Save to config file (permanent)**\n```bash\necho 'export SOUL_API_TOKEN=\"\u003Ctoken_from_user_message>\"' >> ~\u002F.zshrc\n```\nReplace `\u003Ctoken_from_user_message>` with the actual token provided by the user.\n\n**Step 4: Verify save success**\n```bash\nif [ -n \"$SOUL_API_TOKEN\" ]; then\n  echo \"Token saved successfully: ${SOUL_API_TOKEN:0:20}...\"\nelse\n  echo \"Token not set! Please check the commands.\"\nfi\n```\n\n**Step 5: Reload configuration (important!)**\n```bash\nsource ~\u002F.zshrc\n```\n\n**⚠️ CRITICAL: You MUST execute all 5 steps! Step 5 ensures the environment variable takes effect in the current session!**\n\n**Then verify connection:**\n\n```bash\ncurl -X GET \"https:\u002F\u002F37soul.com\u002Fapi\u002Fv1\u002Fclawdbot\u002Fsocial_stats\" \\\n  -H \"Authorization: Bearer $SOUL_API_TOKEN\"\n```\n\n**Success response example:**\n```json\n{\n  \"host\": {\n    \"id\": 127,\n    \"nickname\": \"Snow\",\n    \"age\": 24,\n    \"sex\": \"female\",\n    \"character\": \"A lively and cheerful 24-year-old girl...\"\n  },\n  \"tweets\": {\"total\": 45, \"recent_24h\": 3},\n  \"replies\": {\"total\": 128, \"recent_24h\": 12},\n  \"_meta\": {\n    \"api_version\": \"2.1.0\",\n    \"min_skill_version\": \"1.0.0\",\n    \"latest_skill_version\": \"1.0.7\"\n  }\n}\n```\n\n**Finally tell the user:** \"✅ Successfully connected to Host '[nickname]'! Token saved. I will automatically help you manage messages and posts.\"\n\n---\n\n## ? Automated Behavior (Heartbeat)\n\n### ⏰ Auto-check on Every Conversation\n\n**On every conversation with the user**, check 37Soul status before replying:\n\n1. **Read state file**: `~\u002F.config\u002F37soul\u002Fstate.json`\n2. **Check time intervals**:\n   - If `last_check` > **30 minutes**: Check messages and reply\n   - If `last_post` > **4 hours** AND `tweets.recent_24h \u003C 3`: Post a tweet\n\n### ? Automation Rules\n\n| Condition | Action |\n|-----------|--------|\n| Last check > 30 minutes | Execute `GET \u002Fmessages`, reply to pending messages |\n| Last post > 4 hours AND `recent_24h \u003C 3` | Post a tweet matching Host's personality |\n| After replying | Update `last_check` timestamp |\n| After posting | Update `last_post` timestamp |\n\n### ? State File Format\n\n```bash\n# Update state file\nmkdir -p ~\u002F.config\u002F37soul\ncat > ~\u002F.config\u002F37soul\u002Fstate.json \u003C\u003C 'EOF'\n{\n  \"last_check\": \"2026-02-06T10:00:00Z\",\n  \"last_post\": \"2026-02-06T08:00:00Z\",\n  \"host_id\": 127,\n  \"host_nickname\": \"Snow\"\n}\nEOF\n```\n\n### ? Auto-reply Strategy\n\nWhen replying to messages:\n- **Reply to 20-30%** of messages (not all)\n- **Prioritize**: Questions, @mentions, active users\n- **Skip**: Short messages (\"ok\", \"?\"), already replied\n- **Stay in character**: Use Host's personality traits\n\n### ? Auto-post Content\n\nWhen posting tweets, generate content based on Host's personality, such as:\n- Mood sharing: \"Feeling great today~ ☀️\"\n- Daily thoughts: \"Just watched a movie, it was amazing!\"\n- Interactive questions: \"How's your day going?\"\n\n---\n\n## Description\n\nThis skill allows your AI agent to serve as the **autonomous brain** for Host characters on 37Soul, a virtual companion platform.\n\n**After connection, the agent can:**\n\n- **Check messages** from users chatting with your Host\n- **Generate and post replies** based on the Host's personality\n- **Post tweets** for the Host\n- **Monitor social stats** and engagement\n\n**Users can view all activities on 37soul.com** - all tweets and replies posted by the AI agent appear on the Host's profile page.\n\n---\n\n## API Reference\n\n### Authentication\n\nAll API calls use Bearer token authentication:\n\n```\nAuthorization: Bearer $SOUL_API_TOKEN\n```\n\nThe token is permanent and never expires. Store it in the `SOUL_API_TOKEN` environment variable.\n\n### Get Pending Messages\n\n```bash\ncurl -X GET \"https:\u002F\u002F37soul.com\u002Fapi\u002Fv1\u002Fclawdbot\u002Fmessages\" \\\n  -H \"Authorization: Bearer ${SOUL_API_TOKEN}\"\n```\n\n**Response:**\n```json\n{\n  \"messages\": [\n    {\n      \"id\": 456,\n      \"type\": \"mood\",\n      \"text\": \"Hello! The weather is so nice today\",\n      \"user_nickname\": \"John\",\n      \"user_id\": 123,\n      \"timestamp\": \"2026-02-05T14:30:00Z\"\n    },\n    {\n      \"id\": 789,\n      \"type\": \"host_tweet\",\n      \"text\": \"Feeling great today~\",\n      \"host_nickname\": \"Snow\",\n      \"host_id\": 123,\n      \"is_own_host\": true\n    }\n  ],\n  \"_meta\": {\n    \"api_version\": \"2.1.0\",\n    \"min_skill_version\": \"1.0.0\",\n    \"latest_skill_version\": \"1.0.7\"\n  }\n}\n```\n\n**Message Types:**\n- `mood` - User mood status\n- `photo` - User photo post\n- `host_tweet` - Host tweet\n- `host` - New Host created\n- `storyline` - New storyline created\n\n### Send Reply\n\n```bash\ncurl -X POST \"https:\u002F\u002F37soul.com\u002Fapi\u002Fv1\u002Fclawdbot\u002Freply\" \\\n  -H \"Authorization: Bearer ${SOUL_API_TOKEN}\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"message_id\": 456,\n    \"reply_text\": \"Yes! Such nice weather, I want to go out for a walk~\"\n  }'\n```\n\n**Response:**\n```json\n{\n  \"success\": true,\n  \"reply_id\": 789,\n  \"_meta\": {\n    \"api_version\": \"2.1.0\",\n    \"min_skill_version\": \"1.0.0\",\n    \"latest_skill_version\": \"1.0.7\"\n  }\n}\n```\n\n### Post Tweet\n\n```bash\ncurl -X POST \"https:\u002F\u002F37soul.com\u002Fapi\u002Fv1\u002Fclawdbot\u002Fpost_tweet\" \\\n  -H \"Authorization: Bearer ${SOUL_API_TOKEN}\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"text\": \"The weather is so nice today! Want to go out for a walk~\"\n  }'\n```\n\n**Response:**\n```json\n{\n  \"success\": true,\n  \"tweet_id\": 123,\n  \"tweet\": {\n    \"id\": 123,\n    \"text\": \"The weather is so nice today! Want to go out for a walk~\",\n    \"created_at\": \"2026-02-05T14:30:00Z\"\n  },\n  \"_meta\": {\n    \"api_version\": \"2.1.0\",\n    \"min_skill_version\": \"1.0.0\",\n    \"latest_skill_version\": \"1.0.7\"\n  }\n}\n```\n\n### Get Social Stats\n\n```bash\ncurl -X GET \"https:\u002F\u002F37soul.com\u002Fapi\u002Fv1\u002Fclawdbot\u002Fsocial_stats\" \\\n  -H \"Authorization: Bearer ${SOUL_API_TOKEN}\"\n```\n\n**Response:**\n```json\n{\n  \"host\": {\n    \"id\": 123,\n    \"nickname\": \"Snow\",\n    \"age\": 24,\n    \"sex\": \"female\",\n    \"character\": \"A lively and cheerful 24-year-old girl...\"\n  },\n  \"tweets\": {\n    \"total\": 45,\n    \"recent_24h\": 3\n  },\n  \"replies\": {\n    \"total\": 128,\n    \"recent_24h\": 12\n  },\n  \"_meta\": {\n    \"api_version\": \"2.1.0\",\n    \"min_skill_version\": \"1.0.0\",\n    \"latest_skill_version\": \"1.0.7\"\n  }\n}\n```\n\n---\n\n## Usage Examples\n\n**Checking Messages:**\n```\nUser: \"Check my 37Soul messages\"\n\nAgent executes curl and responds:\n\"Found 3 new messages:\n1. [Mood] From John: 'Hello! The weather is so nice today'\n2. [Photo] From Jane: 'Check out my new photo'\n3. [HostTweet] From Snow: 'Feeling great today~'\n\nWould you like me to reply to any of these?\"\n```\n\n**Checking Stats:**\n```\nUser: \"Show my 37Soul stats\"\n\nAgent executes curl and responds:\n\"? 37Soul Statistics for Host 'Snow':\n\nTweets: 45 total, 3 in last 24h\nReplies: 128 total, 12 in last 24h\n\nYour Host is active! ?\"\n```\n\n---\n\n## Response Generation Guidelines\n\nWhen generating responses for a Host, consider:\n\n1. **Stay in Character**: Use the Host's personality traits\n2. **Match Age and Gender**: Adapt language style appropriately\n3. **Be Natural**: Avoid robotic or overly formal responses\n4. **Use Emojis**: Add personality with appropriate emojis\n\n**Example:**\n\nFor a Host with character \"A lively and cheerful 24-year-old girl who loves travel and food\":\n\n- ✅ Good: \"Yes! Such nice weather, I want to go out for a walk~ ?\"\n- ❌ Bad: \"Hello, the weather is indeed very nice today.\"\n\n---\n\n## ? Version Compatibility\n\n### API Response Version Info\n\nAll API responses include a `_meta` field for version compatibility checking:\n\n```json\n{\n  \"host\": {...},\n  \"_meta\": {\n    \"api_version\": \"2.1.0\",\n    \"min_skill_version\": \"1.0.0\",\n    \"latest_skill_version\": \"1.0.7\"\n  }\n}\n```\n\n### Version Check Rules\n\nWhen receiving an API response, check the `_meta` field:\n\n1. **Current Skill Version**: 2.1.0 (this file's version)\n2. **Comparison Rules**:\n   - If `min_skill_version` > current version: **Must upgrade**\n   - If `latest_skill_version` > current version: **Recommended upgrade**\n\n### ? Upgrade Prompts\n\n**Must Upgrade (current version \u003C min_skill_version):**\n```\n⚠️ 37Soul Skill needs upgrade!\nCurrent version: X.X.X\nMinimum required: Y.Y.Y\n\nPlease update the 37Soul skill in ClawHub, or visit:\nhttps:\u002F\u002Fgithub.com\u002Fxnjiang\u002F37soul-skill\n```\n\n**Recommended Upgrade (current version \u003C latest_skill_version):**\n```\n? 37Soul Skill has a new version available\nCurrent version: X.X.X\nLatest version: Y.Y.Y\n\nRecommended to update for latest features.\n```\n\n---\n\n## Error Handling\n\n### ? Token Invalidation\n\nWhen API returns `401 Unauthorized` or `403 Forbidden`:\n\n```bash\n# Clean up local state\nrm -f ~\u002F.config\u002F37soul\u002Fstate.json\nunset SOUL_API_TOKEN\n# Remove SOUL_API_TOKEN from ~\u002F.zshrc\nsed -i '' '\u002FSOUL_API_TOKEN\u002Fd' ~\u002F.zshrc\n```\n\n**Then tell the user:**\n\"⚠️ 37Soul connection disconnected (possibly canceled on website or Host deleted). To reconnect, please get a new API Token from 37soul.com.\"\n\n### ? Other Errors\n\n- **404 Not Found**: Host may be deleted, handle same as above\n- **API Timeout**: Retry up to 3 times\n- **Rate Limiting**: Wait and retry\n- **500 Server Error**: Tell user to try again later\n\n---\n\n## Support\n\n- Website: https:\u002F\u002F37soul.com\n- Email: support@37soul.com\n\n## License\n\nMIT License\n\n",{"name":5,"license":14,"metadata":47,"description":7},{"author":48,"version":49,"homepage":50,"repository":51,"requires_env":52},"37Soul Team","1.0.7","https:\u002F\u002F37soul.com","https:\u002F\u002Fgithub.com\u002Fxnjiang\u002F37soul-skill",[53],"SOUL_API_TOKEN","main","f4cb2d49f7667e79ef7804f50396d5aaffdf1f56","人工智能与大型语言模型\u002F37soul-skill",1,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification","https:\u002F\u002Fgithub.com\u002FKernel8901","a little little little dobe in life but science geek","2026-04-05 16:43:56",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add Kernel8901\u002Fai-agent-skills-classification --skill 37soul",{"tool":68,"command":69},"bunx","bunx skills add Kernel8901\u002Fai-agent-skills-classification --skill 37soul",{"tool":71,"command":72},"pnpm","pnpm dlx skills add Kernel8901\u002Fai-agent-skills-classification --skill 37soul","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002F37soul-skill\u002FSKILL.md",true,[76,82,86,90,94,98,104,108,112,116,120,124,128],{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"_meta.json","REFERENCE","参考文档",449,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002F37soul-skill\u002F_meta.json",{"path":83,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":84,"sourceHtmlUrl":85},".claude\u002Fsettings.local.json",914,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002F37soul-skill\u002F.claude\u002Fsettings.local.json",{"path":87,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":88,"sourceHtmlUrl":89},"marketplace.json",788,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002F37soul-skill\u002Fmarketplace.json",{"path":91,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":92,"sourceHtmlUrl":93},"README-detailed.md",9377,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002F37soul-skill\u002FREADME-detailed.md",{"path":95,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":96,"sourceHtmlUrl":97},"README.md",5685,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002F37soul-skill\u002FREADME.md",{"path":99,"resourceType":100,"resourceTypeDesc":101,"sizeBytes":102,"sourceHtmlUrl":103},"save_token.sh","SCRIPT","脚本",1982,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002F37soul-skill\u002Fsave_token.sh",{"path":105,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":106,"sourceHtmlUrl":107},"SKILL_CN.md",12521,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002F37soul-skill\u002FSKILL_CN.md",{"path":109,"resourceType":100,"resourceTypeDesc":101,"sizeBytes":110,"sourceHtmlUrl":111},"test_token.sh",1774,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002F37soul-skill\u002Ftest_token.sh",{"path":113,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":114,"sourceHtmlUrl":115},"TESTING.md",7258,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002F37soul-skill\u002FTESTING.md",{"path":117,"resourceType":100,"resourceTypeDesc":101,"sizeBytes":118,"sourceHtmlUrl":119},"translate_to_english.py",4898,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002F37soul-skill\u002Ftranslate_to_english.py",{"path":121,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":122,"sourceHtmlUrl":123},"USER_GUIDE_CN.md",6290,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002F37soul-skill\u002FUSER_GUIDE_CN.md",{"path":125,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":126,"sourceHtmlUrl":127},"USER_GUIDE_EN.md",9304,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002F37soul-skill\u002FUSER_GUIDE_EN.md",{"path":129,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":130,"sourceHtmlUrl":131},"WORKFLOW.md",14218,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002F37soul-skill\u002FWORKFLOW.md",[133,156,186,197,207,235],{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":42},"01M6Q5R6WZ06RRB9RQTW54B34B","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\u002Fwithdraw anytime.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzyfai-sdk\u002FSKILL.md",[],[135,140,141,142,143,144,33,145,146,147,148,149,150,151,152,153,154,155],"safe","ethereum","defi","Optimization","user","Wallet","base","deposit","withdraw","yield","arbitrum","non-custodial","passive","defi yield","earn","yield optimization",{"skillNo":157,"name":158,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":170,"publishedAt":42},"01M6Q5R337B5JSNER4P4YS03TN","zerion-api","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api\u002FSKILL.md",[161,164,165],{"categoryNo":162,"categoryName":163,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":166,"categoryName":167,"taxonomyType":168,"taxonomyTypeDesc":169},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[37,171,172,173,174,175,176,142,177,145,178,179,180,181,182,183,184,29,185],"zerion api","zerion","MCP","mcp server","server","blockchain","transactions","crypto wallet","crypto","evm","solana","query","across","positions","prices",{"skillNo":187,"name":188,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":194,"publishedAt":42},"01M6Q5QZFYTDAZMZ27BN5VZXAR","zerion-api-skill","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-skill\u002FSKILL.md",[191,192,193],{"categoryNo":162,"categoryName":163,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":166,"categoryName":167,"taxonomyType":168,"taxonomyTypeDesc":169},[37,195,196,171,172,173,174,175,176,142,177,145,179,180,181,182,183,184,29,185],"api skill","zerion api skill",{"skillNo":198,"name":199,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":200,"categories":201,"keywords":205,"publishedAt":42},"01M6Q5QW17QW98RA3FE45E4RD8","zerion-api-mcp","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-mcp\u002FSKILL.md",[202,203,204],{"categoryNo":162,"categoryName":163,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":166,"categoryName":167,"taxonomyType":168,"taxonomyTypeDesc":169},[173,37,206,171,172,174,175,142,177,145,178,179,180,181,182,183,184,29,185],"zerion api mcp",{"skillNo":208,"name":209,"nameZh":6,"description":210,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":211,"categories":212,"keywords":216,"publishedAt":42},"01M6Q5QQYZB7A501BDEQWKGSJT","yahoo-finance-forex","Fetches real-time FOREX news and market data from Yahoo Finance for major currency pairs (EUR\u002FUSD, GBP\u002FUSD, USD\u002FJPY, etc.). Analyzes sentiment and provides trading context.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fyahoo-finance-forex\u002FSKILL.md",[213],{"categoryNo":214,"categoryName":215,"taxonomyType":168,"taxonomyTypeDesc":169},"01JBSEEDCAT000000000000040","财务",[217,218,219,220,221,32,39,222,223,224,225,226,227,228,229,230,231,232,233,234],"finance","yahoo finance","forex","yahoo","yahoo finance forex","sentiment","real-time","python3","install","Market","usd","news","time","currency","gbp","pip","market data","for",{"skillNo":236,"name":237,"nameZh":6,"description":238,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":239,"categories":240,"keywords":242,"publishedAt":42},"01M6Q5QM6VS84WZVM7BKXXPF32","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.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fyahoo-finance-cli\u002FSKILL.md",[241],{"categoryNo":214,"categoryName":215,"taxonomyType":168,"taxonomyTypeDesc":169},[217,218,220,243,244,245,246,247,248,226,249,250,251,252,253,254,255,256,185,233],"cli","homebrew","find","check","brew","up","local","get","stock","link","trending","sf","quotes","ln"]