install
source · Clone the upstream repo
git clone https://github.com/sundial-org/awesome-openclaw-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/plan2meal" ~/.claude/skills/sundial-org-awesome-openclaw-skills-plan2meal && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/plan2meal" ~/.openclaw/skills/sundial-org-awesome-openclaw-skills-plan2meal && rm -rf "$T"
manifest:
skills/plan2meal/SKILL.mdsource content
Plan2Meal Skill
A ClawdHub skill for managing recipes and grocery lists via Plan2Meal, a React Native recipe app.
Features
- Recipe Management: Add recipes from URLs, search, view, and delete your recipes
- Grocery Lists: Create and manage shopping lists with recipes
- Backend Authentication: Secure authentication via Plan2Meal web app (no secrets in skill)
- Recipe Extraction: Automatically fetch recipe metadata from URLs
- Telegram Formatting: Pretty-printed output for Telegram
Setup
-
Install via ClawdHub:
clawdhub install plan2meal -
Configure environment variables:
cp .env.example .env # Edit .env with your credentials -
Required environment variables:
: Your Plan2Meal backend API URL (e.g.,PLAN2MEAL_API_URL
)https://api.plan2meal.app
Optional:
: Custom authentication URL (defaults toPLAN2MEAL_AUTH_URL
)https://app.plan2meal.com/sign-in
Important:
- Public Skill: This skill is published on ClawdHub. No secrets are stored in the skill.
- Authentication: Users authenticate via your Plan2Meal web app, then copy a session token back to Telegram.
- Backend Security: All OAuth credentials (GitHub, Convex) are configured in your backend only, never exposed.
Commands
Recipe Commands
| Command | Description |
|---|---|
| Fetch recipe metadata from URL and create recipe |
| List your recent recipes |
| Search your recipes |
| Show detailed recipe information |
| Delete a recipe |
Grocery List Commands
| Command | Description |
|---|---|
| List all your grocery lists |
| Show grocery list with items |
| Create a new grocery list |
| Add recipe to grocery list |
Help
| Command | Description |
|---|---|
| Show all available commands |
Usage Examples
Adding a Recipe
plan2meal add https://www.allrecipes.com/recipe/12345/pasta
Output:
✅ Recipe added successfully! 📖 Recipe Details ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Name: Classic Pasta Source: allrecipes.com Method: firecrawl-json (credit used) Time: 15 min prep + 20 min cook 🥘 Ingredients (4 servings) • 1 lb pasta • 2 cups marinara sauce • 1/2 cup parmesan 🔪 Steps 1. Boil water...
Searching Recipes
plan2meal search pasta
Creating a Grocery List
plan2meal list-create Weekly Shopping
Adding Recipe to List
plan2meal list-add <listId> <recipeId>
Recipe Limits
The free tier allows up to 5 recipes. You'll receive a warning when approaching this limit.
Authentication Architecture
How It Works
Skill Owner Setup (one-time):
- Configure your Plan2Meal backend API URL in the skill
- Your backend handles all OAuth (GitHub credentials configured in Convex environment variables)
- Your backend is configured with the Convex URL (stays private)
End User Flow:
- User sends a command (e.g.,
)plan2meal list - Skill responds with a link to your Plan2Meal sign-in page (
)app.plan2meal.com/sign-in - User clicks the link and authenticates with GitHub via your web app
- Your backend (using Convex Auth) handles the GitHub OAuth flow
- After successful authentication, your backend shows the user a session token
- User copies the token and sends it back to Telegram (or types
)token: <token> - Skill validates the token with your backend and stores it securely
Backend Processing:
- Your Plan2Meal backend uses Convex Auth with GitHub provider
- GitHub OAuth credentials are stored in Convex environment variables (never exposed)
- After GitHub auth, backend generates a session token for the user
- Skill sends session token to your backend API for all requests
- Your backend validates the token and makes Convex API calls on behalf of the user
- Convex URL is never exposed to users or the skill
Key Points
- Public Skill: No secrets in the skill - safe to publish on ClawdHub
- Backend OAuth: All OAuth credentials (GitHub, Convex) stay in your backend
- User Identification: Your backend maps session tokens to Convex users internally
- Privacy: Convex URL stays private in your backend only
- Security: Session tokens are validated with your backend before use
License
MIT