plan2meal
# Plan2Meal Skill
What this skill does
# 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 1. Install via ClawdHub: ```bash clawdhub install plan2meal ``` 2. Configure environment variables: ```bash cp .env.example .env # Edit .env with your credentials ``` 3. Required environment variables: - `PLAN2MEAL_API_URL`: Your Plan2Meal backend API URL (e.g., `https://api.plan2meal.app`) **Optional:** - `PLAN2MEAL_AUTH_URL`: Custom authentication URL (defaults to `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 | |---------|-------------| | `plan2meal add <url>` | Fetch recipe metadata from URL and create recipe | | `plan2meal list` | List your recent recipes | | `plan2meal search <term>` | Search your recipes | | `plan2meal show <id>` | Show detailed recipe information | | `plan2meal delete <id>` | Delete a recipe | ### Grocery List Commands | Command | Description | |---------|-------------| | `plan2meal lists` | List all your grocery lists | | `plan2meal list-show <id>` | Show grocery list with items | | `plan2meal list-create <name>` | Create a new grocery list | | `plan2meal list-add <listId> <recipeId>` | Add recipe to grocery list | ### Help | Command | Description | |---------|-------------| | `plan2meal help` | 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): 1. Configure your Plan2Meal backend API URL in the skill 2. Your backend handles all OAuth (GitHub credentials configured in Convex environment variables) 3. Your backend is configured with the Convex URL (stays private) **End User Flow**: 1. User sends a command (e.g., `plan2meal list`) 2. Skill responds with a link to your Plan2Meal sign-in page (`app.plan2meal.com/sign-in`) 3. User clicks the link and authenticates with GitHub via your web app 4. Your backend (using Convex Auth) handles the GitHub OAuth flow 5. After successful authentication, your backend shows the user a session token 6. User copies the token and sends it back to Telegram (or types `token: <token>`) 7. 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
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.