Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

eyomee

Earn Your Meal. A personal AI agent that gates food ordering on Swiggy by your daily fitness activity, and reorders your favourites in one line.

eyomee is an AI agent that sits between my fitness tracker and Swiggy. It reads my daily steps and calories, enforces personal health rules I set for myself ("no Swiggy unless I've burnt 400 kcal today"), and uses my past order history to one-shot natural-language reorders — "order biryani" resolves to the top 3 places I've ordered biryani from before, picks the best one, and places the order via Swiggy Food MCP.

This repo is at concept stage — applying for access to Swiggy Builders Club and building during review.


Why

Existing food-delivery apps optimise for friction-less ordering. That's exactly the problem when you're trying to stay disciplined. eyomee inverts the loop:

  • Activity-gated ordering — the order button is unlocked by my Health data, not by my impulse.
  • Memory-aware reordering — the agent knows what I've already loved, so I never browse menus again to reorder a regular.
  • Conversational — voice or chat, no app navigation.

Single-user, personal use. Built on Swiggy's MCP servers as the execution layer.


Architecture

┌──────────────────────┐
│   Mobile (RN)        │
│   - Voice/chat UI    │
│   - HealthKit /      │
│     Health Connect   │
│   - SQLite (history) │
└──────────┬───────────┘
           │
           ▼
┌──────────────────────┐
│   Agent (Claude)     │
│   - Reasoning core   │
│   - MCP client       │
│   - Policy gate      │
└──────────┬───────────┘
           │ MCP / streamable HTTP
           ▼
┌──────────────────────┐
│  Swiggy Food MCP     │
│  mcp.swiggy.com/food │
└──────────────────────┘
  • Client: React Native app reading daily steps/calories from Apple HealthKit and Google Health Connect.
  • Agent layer: Claude (Anthropic SDK) as the reasoning core, wired up as an MCP client over streamable HTTP. Tools available to the agent:
    • Swiggy Food MCP: search_restaurants, get_restaurant_menu, update_food_cart, place_food_order, track_food_order
    • Local tools: get_fitness_summary, get_order_history
  • Auth: OAuth 2.1 + PKCE — single sign-in to my own Swiggy account via in-app browser; access + refresh tokens stored in iOS Keychain / Android Keystore. The LLM never sees raw credentials.
  • Local store: SQLite on-device for past Swiggy orders (restaurant, dish, timestamp, rating) — used for "top N" reorder queries.
  • Gating: A pre-tool-call policy hook checks the fitness summary against my daily rule before allowing place_food_order. If the rule fails, the agent surfaces the gap instead of ordering.

Example flow — "order biryani"

User: "order biryani"

agent → get_order_history(query="biryani")
        ← [Paradise (5x), Meghana (3x), Bawarchi (2x)]

agent → get_fitness_summary()
        ← { steps: 8200, kcal: 480, rule: "≥400 kcal", pass: true }

agent → search_restaurants(query="Paradise Biryani", near=user_location)
        ← [Paradise — open, 32 min ETA]

agent → update_food_cart(restaurant=..., items=[Hyderabadi Chicken Biryani])
agent → place_food_order(payment="COD")
agent → track_food_order(order_id=...)

Agent: "Placed at Paradise (your top biryani spot, 5 past orders).
        ETA 32 min. Calorie rule passed — 480/400 kcal."

If the calorie rule fails:

Agent: "Order paused — you're at 220/400 kcal today. 
        Want me to hold this for after your evening walk?"

Stack

  • Mobile: React Native, TypeScript
  • Agent: Anthropic SDK (Claude), MCP TypeScript SDK
  • Storage: SQLite (on-device), iOS Keychain / Android Keystore (tokens)
  • Health data: Apple HealthKit, Google Health Connect
  • Commerce: Swiggy Food MCP (https://mcp.swiggy.com/food)

Roadmap

  • Apply to Swiggy Builders Club
  • Local prototype: Claude Desktop + Swiggy Food MCP, manual OAuth
  • React Native shell with HealthKit / Health Connect read
  • On-device order history DB + get_order_history tool
  • Policy gate around place_food_order
  • Voice / chat UI
  • Stretch: Instamart MCP for grocery gating, Dineout MCP for outings

Status

Pre-build. Applying for Swiggy Builders Club access. Architecture and design locked; implementation begins after access is granted.

Contact

Amrit Karan · amritkaran@gmail.com · linkedin.com/in/amritkaran

About

Earn Your Meal — personal AI agent that gates Swiggy orders by daily fitness activity, powered by Swiggy Builders Club MCP

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors