Add Kimi browser and X-via-Kimi skills
This commit is contained in:
@@ -0,0 +1,35 @@
|
|||||||
|
# Kimi Integration Skills
|
||||||
|
|
||||||
|
Skills for accessing Kimi AI and X/Twitter via Kimi.
|
||||||
|
|
||||||
|
## Skills
|
||||||
|
|
||||||
|
### kimi-browser
|
||||||
|
Browser automation for Kimi.com using Chrome Relay.
|
||||||
|
|
||||||
|
### x-via-kimi
|
||||||
|
Access X (Twitter) content through Kimi AI without X API key.
|
||||||
|
|
||||||
|
## Why Use These?
|
||||||
|
|
||||||
|
- **No X API costs** ($200-5000/month)
|
||||||
|
- **Real-time web search** via Kimi
|
||||||
|
- **Simple setup** - just API key or browser
|
||||||
|
- **Cost-effective** - ~$0.01 per query
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
1. Get Kimi API key: https://platform.moonshot.cn/console/api-keys
|
||||||
|
2. Use `x-via-kimi` skill to search X
|
||||||
|
3. Or use `kimi-browser` for web automation
|
||||||
|
|
||||||
|
## Cost Comparison
|
||||||
|
|
||||||
|
| Method | Monthly Cost |
|
||||||
|
|--------|-------------|
|
||||||
|
| X API Basic | $200 |
|
||||||
|
| X API Pro | $5,000 |
|
||||||
|
| xAI Grok | $0-10 |
|
||||||
|
| **Kimi API** | **~$5-10** |
|
||||||
|
| Kimi Browser | Free |
|
||||||
|
|
||||||
@@ -0,0 +1,155 @@
|
|||||||
|
---
|
||||||
|
name: kimi-browser
|
||||||
|
description: Query Kimi AI (kimi.com) via browser automation. Use when you need to ask Kimi questions, get AI responses, or use Kimi's search capabilities. Works with Chrome Browser Relay.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Kimi Browser Skill
|
||||||
|
|
||||||
|
Query Kimi (kimi.com) via Chrome browser automation.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- Chrome with Browser Relay extension
|
||||||
|
- Use `profile=chrome` (never `profile=clawd`)
|
||||||
|
|
||||||
|
## How It Works
|
||||||
|
|
||||||
|
Since Kimi.com is a web interface, we can automate it using the same browser relay approach as Grok.
|
||||||
|
|
||||||
|
## Setup Steps
|
||||||
|
|
||||||
|
### 1. Open Chrome with Kimi
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Open Chrome and navigate to Kimi
|
||||||
|
google-chrome "https://kimi.com" &
|
||||||
|
sleep 5
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Attach Browser Relay
|
||||||
|
|
||||||
|
Click the OpenClaw Browser Relay extension icon in Chrome to attach the current tab.
|
||||||
|
|
||||||
|
### 3. Verify Connection
|
||||||
|
|
||||||
|
```
|
||||||
|
browser action=status profile=chrome
|
||||||
|
```
|
||||||
|
|
||||||
|
Should show `cdpReady: true`
|
||||||
|
|
||||||
|
## Usage Workflow
|
||||||
|
|
||||||
|
### 1. Get Tab ID
|
||||||
|
|
||||||
|
```
|
||||||
|
browser action=tabs profile=chrome
|
||||||
|
```
|
||||||
|
|
||||||
|
Look for Kimi tab, note the `targetId`.
|
||||||
|
|
||||||
|
### 2. Input Query
|
||||||
|
|
||||||
|
Kimi uses a textarea or contenteditable input. Try:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// Method 1: Find textarea
|
||||||
|
browser action=act profile=chrome targetId=<id> request={
|
||||||
|
"kind": "evaluate",
|
||||||
|
"fn": "(() => { const ta = document.querySelector('textarea'); if(ta) { ta.focus(); ta.value = 'YOUR_QUERY'; return 'textarea'; } return 'not found'; })()"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method 2: Find contenteditable
|
||||||
|
browser action=act profile=chrome targetId=<id> request={
|
||||||
|
"kind": "evaluate",
|
||||||
|
"fn": "(() => { const ed = document.querySelector('[contenteditable=\"true\"]'); if(ed) { ed.focus(); ed.innerText = 'YOUR_QUERY'; return 'contenteditable'; } return 'not found'; })()"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Submit
|
||||||
|
|
||||||
|
```
|
||||||
|
browser action=act profile=chrome targetId=<id> request={"kind":"press","key":"Enter"}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Wait for Response
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sleep 10-20 # Kimi can take time for complex queries
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Extract Response
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// Get response text
|
||||||
|
browser action=act profile=chrome targetId=<id> request={
|
||||||
|
"kind": "evaluate",
|
||||||
|
"fn": "(() => { const responses = document.querySelectorAll('.response-text, .message-content, [class*=\"message\"], [class*=\"response\"]'); return responses.length > 0 ? responses[responses.length-1].innerText : 'not found'; })()"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Alternative: Use Kimi API Directly
|
||||||
|
|
||||||
|
Instead of browser automation, you can use the Kimi API:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Set API key
|
||||||
|
export KIMI_API_KEY="your-api-key"
|
||||||
|
|
||||||
|
# Query Kimi
|
||||||
|
curl https://api.moonshot.cn/v1/chat/completions \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-H "Authorization: Bearer $KIMI_API_KEY" \
|
||||||
|
-d '{
|
||||||
|
"model": "kimi-k2.5",
|
||||||
|
"messages": [{"role": "user", "content": "Your question here"}]
|
||||||
|
}'
|
||||||
|
```
|
||||||
|
|
||||||
|
## Kimi Claw (Recommended)
|
||||||
|
|
||||||
|
Kimi now has native OpenClaw integration called "Kimi Claw":
|
||||||
|
|
||||||
|
- URL: https://kimi.com/bot
|
||||||
|
- Features: 5,000+ skills, 40GB cloud storage
|
||||||
|
- Access: Built into Kimi.com (no browser relay needed)
|
||||||
|
- Status: Beta for Allegretto members and above
|
||||||
|
|
||||||
|
## Comparison
|
||||||
|
|
||||||
|
| Method | Setup | Cost | Best For |
|
||||||
|
|--------|-------|------|----------|
|
||||||
|
| **Kimi Claw** | None (web) | Free with Kimi | Native integration |
|
||||||
|
| **Kimi API** | API key | Pay per token | Programmatic access |
|
||||||
|
| **Browser Relay** | Chrome extension | Free | Automation |
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Browser Relay Not Connecting
|
||||||
|
- Ensure Chrome extension is installed
|
||||||
|
- Click extension icon to attach tab
|
||||||
|
- Check `browser action=status profile=chrome`
|
||||||
|
|
||||||
|
### Input Not Working
|
||||||
|
- Try different selectors (textarea, contenteditable)
|
||||||
|
- Check page structure with `browser action=snapshot`
|
||||||
|
|
||||||
|
### Response Not Extracting
|
||||||
|
- Update selector based on current Kimi UI
|
||||||
|
- Use `browser action=snapshot` to find correct element
|
||||||
|
|
||||||
|
## Example: Search X via Kimi
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// Ask Kimi to search X for you
|
||||||
|
browser action=act profile=chrome targetId=<id> request={
|
||||||
|
"kind": "evaluate",
|
||||||
|
"fn": "(() => { const ed = document.querySelector('[contenteditable=\"true\"]'); if(ed) { ed.focus(); ed.innerText = 'Search X (Twitter) for recent posts from @alexmikhalev and summarize what they shared in the last 30 days'; return 'ok'; } return 'fail'; })()"
|
||||||
|
}
|
||||||
|
|
||||||
|
browser action=act profile=chrome targetId=<id> request={"kind":"press","key":"Enter"}
|
||||||
|
|
||||||
|
sleep 30 # Wait for search and response
|
||||||
|
```
|
||||||
|
|
||||||
|
Kimi has real-time web search and can access X content directly!
|
||||||
@@ -0,0 +1,183 @@
|
|||||||
|
---
|
||||||
|
name: x-via-kimi
|
||||||
|
description: Access X (Twitter) content through Kimi AI using web search or browser automation. No X API key needed - Kimi can search and summarize X posts in real-time.
|
||||||
|
---
|
||||||
|
|
||||||
|
# X via Kimi - No API Key Needed
|
||||||
|
|
||||||
|
Access X (Twitter) content through Kimi AI without needing X API access.
|
||||||
|
|
||||||
|
## Why This Works
|
||||||
|
|
||||||
|
Kimi has **real-time web search** capabilities and can access X content directly:
|
||||||
|
- ✅ No X API key required
|
||||||
|
- ✅ No X API costs ($200-5000/month)
|
||||||
|
- ✅ Real-time access to public posts
|
||||||
|
- ✅ Can search by user, hashtag, topic
|
||||||
|
- ✅ Summarizes and analyzes content
|
||||||
|
|
||||||
|
## Method 1: Kimi API (Recommended)
|
||||||
|
|
||||||
|
### Step 1: Get Kimi API Key
|
||||||
|
|
||||||
|
1. Go to https://platform.moonshot.cn/console/api-keys
|
||||||
|
2. Create a new API key
|
||||||
|
3. **Free credits**: 15 CNY (~$2) for testing
|
||||||
|
|
||||||
|
### Step 2: Query X Content
|
||||||
|
|
||||||
|
```bash
|
||||||
|
export KIMI_API_KEY="your-api-key"
|
||||||
|
|
||||||
|
curl https://api.moonshot.cn/v1/chat/completions \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-H "Authorization: Bearer $KIMI_API_KEY" \
|
||||||
|
-d '{
|
||||||
|
"model": "kimi-k2.5",
|
||||||
|
"messages": [
|
||||||
|
{
|
||||||
|
"role": "user",
|
||||||
|
"content": "Search X (Twitter) for recent posts from @alexmikhalev in the last 30 days. List the main topics they discussed and any interesting insights they shared."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tools": [{
|
||||||
|
"type": "builtin_function",
|
||||||
|
"function": {
|
||||||
|
"name": "web_search"
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
}'
|
||||||
|
```
|
||||||
|
|
||||||
|
### Example Queries
|
||||||
|
|
||||||
|
**Get posts from specific user:**
|
||||||
|
```
|
||||||
|
Search X for posts by @alexmikhalev from the last 30 days.
|
||||||
|
What topics did they discuss? What links did they share?
|
||||||
|
```
|
||||||
|
|
||||||
|
**Find trending topics:**
|
||||||
|
```
|
||||||
|
What are the trending topics on X (Twitter) in AI/ML space
|
||||||
|
from the last 7 days? Who are the key voices?
|
||||||
|
```
|
||||||
|
|
||||||
|
**Research specific topic:**
|
||||||
|
```
|
||||||
|
Search X for discussions about "knowledge graphs" and "AI agents"
|
||||||
|
from the last 30 days. Summarize the key insights and debates.
|
||||||
|
```
|
||||||
|
|
||||||
|
## Method 2: Kimi.com Web Interface
|
||||||
|
|
||||||
|
### Using Browser Relay
|
||||||
|
|
||||||
|
1. **Open Chrome with Kimi:**
|
||||||
|
```bash
|
||||||
|
google-chrome "https://kimi.com" &
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Attach Browser Relay:**
|
||||||
|
- Click OpenClaw Browser Relay extension icon
|
||||||
|
- Wait for `cdpReady: true`
|
||||||
|
|
||||||
|
3. **Query X through Kimi:**
|
||||||
|
```javascript
|
||||||
|
// Type query
|
||||||
|
browser action=act profile=chrome targetId=<id> request={
|
||||||
|
"kind": "evaluate",
|
||||||
|
"fn": "(() => { const ed = document.querySelector('textarea'); if(ed) { ed.focus(); ed.value = 'Search X for @alexmikhalev posts from last 30 days'; return 'ok'; } return 'not found'; })()"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Submit
|
||||||
|
browser action=act profile=chrome targetId=<id> request={"kind":"press","key":"Enter"}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Method 3: Kimi Claw (Native Integration)
|
||||||
|
|
||||||
|
If you have access to Kimi Claw (https://kimi.com/bot):
|
||||||
|
|
||||||
|
1. Go to https://kimi.com/bot
|
||||||
|
2. Ask directly: "Search X for posts from @alexmikhalev last 30 days"
|
||||||
|
3. Kimi Claw has built-in web search and X access
|
||||||
|
|
||||||
|
## Cost Comparison
|
||||||
|
|
||||||
|
| Method | Cost | Setup | Reliability |
|
||||||
|
|--------|------|-------|-------------|
|
||||||
|
| **X API v2** | $200-5000/mo | Developer account | High |
|
||||||
|
| **xAI Grok API** | $0-10/mo | API key | High |
|
||||||
|
| **Kimi API** | ~$0.01/query | API key | Medium |
|
||||||
|
| **Kimi Browser** | Free | Chrome + relay | Medium |
|
||||||
|
| **Kimi Claw** | Free | Web access | High |
|
||||||
|
|
||||||
|
## Limitations
|
||||||
|
|
||||||
|
1. **Public posts only** - Can't access private accounts
|
||||||
|
2. **Search-dependent** - Relies on X's search indexing
|
||||||
|
3. **Rate limits** - Kimi API has usage limits
|
||||||
|
4. **Not real-time** - Slight delay vs direct API
|
||||||
|
|
||||||
|
## Recommended Approach
|
||||||
|
|
||||||
|
For your use case (fetching posts from people you follow):
|
||||||
|
|
||||||
|
**Option A: Kimi API (Best Balance)**
|
||||||
|
- Cost: ~$5-10/month for regular use
|
||||||
|
- Setup: Simple API key
|
||||||
|
- Reliability: Good
|
||||||
|
|
||||||
|
**Option B: Kimi Claw (If Available)**
|
||||||
|
- Cost: Free
|
||||||
|
- Setup: None (web-based)
|
||||||
|
- Reliability: Best
|
||||||
|
|
||||||
|
**Option C: Grok API (Alternative)**
|
||||||
|
- Cost: $0 (with free credits)
|
||||||
|
- Setup: xAI account
|
||||||
|
- Reliability: Good
|
||||||
|
|
||||||
|
## Quick Start Script
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
|
# x-via-kimi.sh - Search X through Kimi
|
||||||
|
|
||||||
|
KIMI_API_KEY="${KIMI_API_KEY:-}"
|
||||||
|
USER="${1:-alexmikhalev}"
|
||||||
|
DAYS="${2:-30}"
|
||||||
|
|
||||||
|
if [ -z "$KIMI_API_KEY" ]; then
|
||||||
|
echo "Error: Set KIMI_API_KEY environment variable"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
curl -s https://api.moonshot.cn/v1/chat/completions \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-H "Authorization: Bearer $KIMI_API_KEY" \
|
||||||
|
-d "{
|
||||||
|
\"model\": \"kimi-k2.5\",
|
||||||
|
\"messages\": [{
|
||||||
|
\"role\": \"user\",
|
||||||
|
\"content\": \"Search X (Twitter) for posts from @$USER in the last $DAYS days. Summarize the main topics, insights, and any shared links.\"
|
||||||
|
}]
|
||||||
|
}" | jq -r '.choices[0].message.content'
|
||||||
|
```
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
```bash
|
||||||
|
chmod +x x-via-kimi.sh
|
||||||
|
KIMI_API_KEY="your-key" ./x-via-kimi.sh alexmikhalev 30
|
||||||
|
```
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. **Get Kimi API key**: https://platform.moonshot.cn/console/api-keys
|
||||||
|
2. **Test query**: Try searching for your X handle
|
||||||
|
3. **Automate**: Set up cron job for daily/weekly digest
|
||||||
|
|
||||||
|
**Want me to:**
|
||||||
|
- Create a skill for automated X research via Kimi?
|
||||||
|
- Set up a cron job for daily X digest?
|
||||||
|
- Create a comparison of all X access methods?
|
||||||
Reference in New Issue
Block a user