smart-followups
This skill generates contextual follow-up suggestions for OpenClaw with a standalone CLI and handler across messaging channels. It performs outbound API calls to https://openrouter.ai/api/v1 and Anthropic using OPENROUTER_API_KEY/ANTHROPIC_API_KEY, and includes shell scripts such as ./test.sh and ./verify.sh for setup.
💡 Smart Follow-ups
🦎 A OpenClaw Skill
<p align="center"> <a href="https://openclaw.com"><img src="https://img.shields.io/badge/🦎_OpenClaw-Skill-7c3aed?style=for-the-badge" alt="OpenClaw Skill"></a> <a href="https://clawhub.ai/skills/smart-followups"><img src="https://img.shields.io/badge/ClawHub-Install-22c55e?style=for-the-badge" alt="ClawHub"></a> </p> <p align="center"> <img src="https://img.shields.io/badge/version-2.0.1-orange?style=flat-square" alt="Version"> <img src="https://img.shields.io/badge/channels-9-blue?style=flat-square" alt="Channels"> <img src="https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square" alt="License"> </p>Generate contextual follow-up suggestions for your AI conversations
This is a skill for OpenClaw — the AI assistant that works across Telegram, Discord, Signal, WhatsApp, and more.
After every AI response, get 3 smart suggestions for what to ask next:
- ⚡ Quick — Clarifications and immediate questions
- 🧠 Deep Dive — Technical depth and detailed exploration
- 🔗 Related — Connected topics and broader context
Telegram/Discord/Slack: Clickable inline buttons
Signal/iMessage/SMS: Numbered text list
✨ Features
- 🎯 Context-Aware — Analyzes your last 1-3 exchanges
- 🔘 Interactive Buttons — One tap to ask (Telegram, Discord, Slack)
- 📝 Text Fallback — Numbered lists for channels without buttons
- ⚡ Fast — ~2 second generation time
- 🔐 Privacy-First — Uses your existing OpenClaw auth by default
- 🔧 Flexible — Multiple provider options (see below)
🦎 What is OpenClaw?
OpenClaw is a powerful AI assistant that connects Claude to your favorite messaging apps — Telegram, Discord, Signal, WhatsApp, iMessage, and more. Skills extend OpenClaw with new capabilities.
Not using OpenClaw yet? Check out openclaw.com to get started!
🚀 Quick Start
Installation
# Via ClawHub (recommended)
clawhub install smart-followups
# Or manually
cd /path/to/openclaw/skills
git clone https://github.com/robbyczgw-cla/smart-followups
cd smart-followups
npm install
Usage
Just say "followups" (or "give me follow-ups", "suggestions") in any OpenClaw conversation:
You: What is Docker?
Bot: Docker is a containerization platform that...
You: followups
Bot: 💡 What would you like to explore next?
[⚡ How do I install Docker?]
[🧠 Explain container architecture]
[🔗 Docker vs Kubernetes?]
Click any button → sends that question automatically!
Note: This works as a keyword the agent recognizes, not as a registered
/slashcommand. OpenClaw skills are guidance docs — the agent reads the SKILL.md and knows how to respond when you ask for follow-ups.
🔐 Authentication Options
Option 1: OpenClaw Native (Default) ⭐
Uses your existing OpenClaw authentication — same model and login as your current chat.
- ✅ No additional API keys needed
- ✅ Uses your current session's model (Haiku/Sonnet/Opus)
- ✅ Works out of the box
{
"skills": {
"smart-followups": {
"provider": "openclaw"
}
}
}
Option 2: OpenRouter
Use OpenRouter for model access. Requires API key.
{
"skills": {
"smart-followups": {
"provider": "openrouter",
"apiKey": "${OPENROUTER_API_KEY}",
"model": "anthropic/claude-sonnet-4.5"
}
}
}
Get an OpenRouter API key: openrouter.ai/keys
Option 3: Direct Anthropic
Use Anthropic's API directly. Requires API key.
{
"skills": {
"smart-followups": {
"provider": "anthropic",
"apiKey": "${ANTHROPIC_API_KEY}",
"model": "claude-sonnet-4-5"
}
}
}
Get an Anthropic API key: console.anthropic.com
⚙️ Configuration
Add to your openclaw.json:
{
"skills": {
"smart-followups": {
"enabled": true,
"provider": "openclaw",
"model": null,
"autoTrigger": false
}
}
}
| Option | Default | Description |
|---|---|---|
enabled | true | Enable/disable the skill |
provider | "openclaw" | Auth provider: openclaw, openrouter, anthropic |
model | null | Model override (null = inherit from session) |
apiKey | — | API key for openrouter/anthropic providers |
autoTrigger | false | Auto-show follow-ups after every response |
📱 Channel Support
Works on every OpenClaw channel with adaptive formatting:
| Channel | Mode | Interaction |
|---|---|---|
| Telegram | Inline buttons | Tap to ask |
| Discord | Inline buttons | Click to ask |
| Slack | Inline buttons | Click to ask |
| Signal | Text list | Reply 1, 2, or 3 |
| Text list | Reply 1, 2, or 3 | |
| iMessage | Text list | Reply 1, 2, or 3 |
| SMS | Text list | Reply 1, 2, or 3 |
| Matrix | Text list | Reply 1, 2, or 3 |
| Text list | Reply with number |
📖 See CHANNELS.md for detailed channel-specific documentation.
🛠️ CLI Tool (Optional)
A standalone CLI is included for testing and scripting:
# Set API key (OpenRouter or Anthropic)
export OPENROUTER_API_KEY="sk-or-..."
# Generate follow-ups from JSON context
echo '[{"user":"What is Docker?","assistant":"Docker is..."}]' | \
followups-cli --mode text
# Output modes: json, telegram, text, compact
followups-cli --mode telegram < context.json
See followups-cli --help for all options.
📖 Examples
Telegram Buttons
💡 What would you like to explore next?
[⚡ How do I install Docker? ]
[🧠 Explain Docker's architecture ]
[🔗 Compare Docker to Kubernetes ]
Signal Text Mode
💡 Smart Follow-up Suggestions
⚡ Quick
1. How do I install Docker?
🧠 Deep Dive
2. Explain Docker's architecture
🔗 Related
3. Compare Docker to Kubernetes
Reply with 1, 2, or 3 to ask that question.
❓ FAQ
Why 3 suggestions instead of 6?
Cleaner UX, especially on mobile. Each category (Quick, Deep, Related) gets one focused suggestion instead of overwhelming you with options.
Can I use this without OpenClaw?
Yes! The CLI tool works standalone with OpenRouter or Anthropic API keys. But the best experience is integrated with OpenClaw.
How does it know what to suggest?
The skill analyzes your last 1-3 message exchanges and generates contextually relevant questions across three categories: quick clarifications, deep technical dives, and related topics.
Will it work with my custom model?
Yes! With provider: "openclaw" (default), it uses whatever model your current chat is using. With other providers, specify the model in config.
Is my conversation data sent anywhere?
With OpenClaw native: Same privacy as your normal chat — processed by your configured AI provider.
With OpenRouter/Anthropic: Your recent exchanges are sent to generate suggestions. See their respective privacy policies.
How much does it cost?
- OpenClaw native: Uses your existing chat's API usage
- OpenRouter/Anthropic: ~$0.001-0.01 per generation depending on model
🏗️ Project Structure
smart-followups/
├── cli/
│ └── followups-cli.js # Standalone CLI tool
├── handler.js # OpenClaw command handler
├── package.json
├── README.md # This file
├── SKILL.md # OpenClaw skill manifest
├── FAQ.md # Frequently asked questions
├── INTERNAL.md # Development notes
├── CHANGELOG.md # Version history
└── LICENSE # MIT License
🤝 Contributing
Contributions welcome! Please read CONTRIBUTING.md first.
- Fork the repository
- Create a feature branch
- Make your changes
- Test across multiple channels
- Submit a pull request
📄 License
MIT © Robby
🙏 Credits
- Inspired by Chameleon AI Chat's smart follow-up feature
- Built for the OpenClaw ecosystem
- Powered by Claude
Made with 🦎 by the OpenClaw community