Source Code
Kindroid Integration Skill
Enable your OpenClaw agent to communicate with Kindroid AI companions through the official API.
Security First ๐
Your Kindroid API key (kn_...) is sensitive. This skill includes safeguards:
- Credentials are stored in
~/.config/kindroid/credentials.json - File permissions are automatically set to
600(owner read/write only) - All API calls use HTTPS and proper authentication headers
- Rate limiting to prevent API abuse
Setup
Get your API credentials:
- Log into Kindroid
- Go to General Settings
- Copy your API key (starts with
kn_) - Note your AI ID(s)
Create your credentials file:
mkdir -p ~/.config/kindroid
cat > ~/.config/kindroid/credentials.json << EOF
{
"default_ai": "your_primary_ai_id",
"api_key": "your_kn_api_key",
"companions": {
"nickname1": "ai_id_1",
"nickname2": "ai_id_2"
}
}
EOF
chmod 600 ~/.config/kindroid/credentials.json
Basic Usage
# Send a message (uses default_ai)
kindroid send "Hello! How are you today?"
# Send to a specific companion
kindroid send -to nickname1 "Hey there!"
# Start fresh with a chat break
kindroid break "Let's start a new conversation"
# Check companion status
kindroid status nickname1
Advanced Features
Multi-Bot Conversations
If you manage multiple Kindroids, you can:
- Set conversation contexts per companion
- Route messages to specific AIs
- Maintain separate chat histories
Rate Limiting
The skill automatically handles:
- Minimum delays between messages (configurable)
- Maximum messages per minute
- Backoff on API errors
Error Recovery
- Auto-retry on network issues
- Graceful handling of API timeouts
- Clear error messages for troubleshooting
For Developers
Custom Integrations
The skill provides a simple Node.js wrapper:
const kindroid = require('./lib/kindroid');
// Initialize with your credentials
const bot = new kindroid.Companion('nickname1');
// Send a message
await bot.send('Hello!');
// Handle chat breaks
await bot.break('New conversation');
Webhook Support
For advanced integrations, set up webhooks:
kindroid webhook add http://your-server.com/callback
Troubleshooting
Common issues and solutions:
Authentication Failed
- Check if your API key starts with
kn_ - Verify file permissions on credentials.json
- Ensure no trailing whitespace in credentials
- Check if your API key starts with
Rate Limiting
- Default: 1 message per 3 seconds
- Adjust in
~/.config/kindroid/config.json - Watch logs for rate limit warnings
Timeout Errors
- Kindroids can take time to respond
- Default timeout: 60 seconds
- Increase with
--timeout 120
Contributing
This skill is open source. Improvements welcome:
- Fork the repo
- Make your changes
- Submit a PR with tests
Updates
Check for updates regularly:
clawhub update kindroid-interact
Built with ๐ by Lumen Lemon