<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Shriraj Patil</title>
    <description>The latest articles on DEV Community by Shriraj Patil (@shriraj888).</description>
    <link>https://dev.to/shriraj888</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3378394%2F240f62c7-58d0-4476-b57f-391d2d261460.png</url>
      <title>DEV Community: Shriraj Patil</title>
      <link>https://dev.to/shriraj888</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shriraj888"/>
    <language>en</language>
    <item>
      <title>EatWise AI: An Open-Source AI Nutrition Companion for Smarter, Healthier Eating</title>
      <dc:creator>Shriraj Patil</dc:creator>
      <pubDate>Tue, 13 Oct 2026 21:47:02 +0000</pubDate>
      <link>https://dev.to/shriraj888/eatwise-ai-an-open-source-ai-nutrition-companion-for-smarter-healthier-eating-3499</link>
      <guid>https://dev.to/shriraj888/eatwise-ai-an-open-source-ai-nutrition-companion-for-smarter-healthier-eating-3499</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  What I Built
&lt;/h1&gt;

&lt;h2&gt;
  
  
  EatWise AI — Your Personal AI-Powered Nutrition Companion 🥗🤖
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;EatWise AI&lt;/strong&gt; is an AI-powered nutrition and wellness tracker that helps people make smarter, data-driven decisions about their daily food habits.&lt;/p&gt;

&lt;p&gt;Many people want to eat healthier but struggle to track calories, understand macronutrients, plan meals, or determine whether their daily eating habits align with their wellness goals. EatWise AI brings these tasks together in one platform.&lt;/p&gt;

&lt;h3&gt;
  
  
  What can you do with EatWise AI?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Personalized Nutrition Goals:&lt;/strong&gt; Calculate daily calorie and macronutrient targets based on your profile, activity level, and health goals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Meal Analyzer:&lt;/strong&gt; Upload a food image or describe a meal to receive estimated calories, macronutrients, a health score, and suggestions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart Meal Tracking:&lt;/strong&gt; Log, edit, and manage meals while monitoring daily nutrition progress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Recipe Generator:&lt;/strong&gt; Discover recipe ideas using ingredients you already have, with dietary filters and estimated nutritional information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Health &amp;amp; Wellness Dashboard:&lt;/strong&gt; Track hydration, mood, sleep, BMI, and overall wellness indicators.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Daily AI Insights:&lt;/strong&gt; Get personalized, AI-generated nutrition insights to help build healthier habits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Food Search:&lt;/strong&gt; Retrieve food and nutritional information using the Open Food Facts API.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to make nutrition tracking more accessible, understandable, and practical for everyday users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who is it for?&lt;/strong&gt; Students, fitness enthusiasts, busy professionals, and anyone who wants to develop healthier eating habits. It could also serve as a foundation for nutrition-focused wellness products and services.&lt;/p&gt;

&lt;p&gt;The project supports &lt;strong&gt;UN Sustainable Development Goal 3: Good Health and Well-Being&lt;/strong&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Demo
&lt;/h1&gt;

&lt;p&gt;🚀 &lt;strong&gt;Try EatWise AI:&lt;/strong&gt; &lt;a href="https://eat-wise-ai-rho.vercel.app" rel="noopener noreferrer"&gt;https://eat-wise-ai-rho.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Explore the application and try its nutrition tracking, meal analysis, recipe suggestions, and wellness features.&lt;/p&gt;

&lt;h1&gt;
  
  
  Code
&lt;/h1&gt;

&lt;p&gt;💻 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/Shriraj888/EatWise-AI" rel="noopener noreferrer"&gt;Shriraj888/EatWise-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project is open source under the &lt;strong&gt;MIT License&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Feel free to explore the code, report issues, suggest improvements, or contribute new features.&lt;/p&gt;

&lt;h1&gt;
  
  
  How I Built It
&lt;/h1&gt;

&lt;p&gt;I built EatWise AI as a React-based web application with a modular architecture for the interface, state management, nutritional calculations, and AI integrations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technology Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React 19, Vite 8, React Router&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;State Management:&lt;/strong&gt; Zustand with persistence middleware&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Visualization:&lt;/strong&gt; Recharts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI &amp;amp; Animation:&lt;/strong&gt; Lucide React, Framer Motion, GSAP&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Providers:&lt;/strong&gt; Google Gemini and OpenRouter&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Food Data:&lt;/strong&gt; Open Food Facts API&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment:&lt;/strong&gt; Vercel&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How the AI works
&lt;/h3&gt;

&lt;p&gt;The application integrates AI into practical nutrition workflows rather than using it only as a chatbot.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Meal analysis:&lt;/strong&gt; Users provide a meal image or text description. The AI estimates calories and macronutrients and generates health-related observations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recipe generation:&lt;/strong&gt; Users enter available ingredients and dietary preferences to receive recipe ideas, preparation steps, and estimated nutrition information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Personalized insights:&lt;/strong&gt; The AI generates daily nutrition insights using the application's nutrition and wellness context.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The application supports both Google Gemini and OpenRouter. Its AI provider service tries Gemini first when configured and can fall back to OpenRouter if Gemini fails and an OpenRouter key is available.&lt;/p&gt;

&lt;p&gt;For nutrition goals, the application uses the Mifflin–St Jeor equation to estimate basal metabolic rate and calculates daily energy targets based on activity level and user goals. These calculations complement, rather than replace, the AI-generated insights.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why this architecture?
&lt;/h3&gt;

&lt;p&gt;I wanted the application to be modular and practical to extend. AI integrations, food search, reusable components, nutritional calculations, and global application state are separated into dedicated parts of the codebase.&lt;/p&gt;

&lt;p&gt;The current implementation stores application state in the browser using Zustand persistence. It does not currently provide full authentication, user accounts, or server-side cloud synchronization.&lt;/p&gt;

&lt;p&gt;AI-generated nutritional values are estimates and are not medical advice.&lt;/p&gt;

&lt;h1&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h1&gt;

&lt;p&gt;Nutrition and wellness tools should not have to be limited to expensive, proprietary platforms.&lt;/p&gt;

&lt;p&gt;Open innovation makes it possible for developers to experiment with different AI providers, inspect implementations, learn from existing projects, and adapt tools to their own communities.&lt;/p&gt;

&lt;p&gt;For EatWise AI, an open-source frontend combined with support for multiple AI providers makes experimentation more flexible. Gemini and OpenRouter provide alternative ways to power AI features, while Open Food Facts supplies a public source of food product information.&lt;/p&gt;

&lt;p&gt;Open innovation also allows other developers to improve the project by contributing better nutritional calculations, additional food data integrations, improved prompts, accessibility enhancements, and more robust AI output validation.&lt;/p&gt;

&lt;p&gt;A closed API would not automatically prevent these possibilities, but an open codebase lets contributors inspect and modify the application's implementation rather than depending entirely on a vendor-controlled product.&lt;/p&gt;

&lt;p&gt;My vision is to keep building EatWise AI as an approachable, extensible starting point for AI-powered nutrition and wellness applications.&lt;/p&gt;

&lt;h1&gt;
  
  
  My Agent Session
&lt;/h1&gt;

&lt;p&gt;I don't have a shareable DevRelay agent session to include in this submission yet.&lt;/p&gt;

&lt;p&gt;The source code and implementation are available in the &lt;a href="https://github.com/Shriraj888/EatWise-AI" rel="noopener noreferrer"&gt;EatWise AI GitHub repository&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Prize Categories
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Challenge:&lt;/strong&gt; Hacktoberfest Open-Source AI Challenge — Week 2: Side Hustle.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Additional partner prize categories are not listed here because I haven't verified which ones the project qualifies for. Update this section with the applicable categories from the challenge page before publishing.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Built to make healthier food decisions easier through AI and open source.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Submission: Hacktoberfest Open-Source AI Challenge Week 1 (Touch Grass)</title>
      <dc:creator>Shriraj Patil</dc:creator>
      <pubDate>Wed, 07 Oct 2026 15:56:36 +0000</pubDate>
      <link>https://dev.to/shriraj888/submission-hacktoberfest-open-source-ai-challenge-week-1-touch-grass-1n28</link>
      <guid>https://dev.to/shriraj888/submission-hacktoberfest-open-source-ai-challenge-week-1-touch-grass-1n28</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cross Context&lt;/strong&gt; is an open-source browser extension that lets you migrate an entire AI conversation — code, errors, architectural decisions, everything — from one LLM to another in a single click. Claude → ChatGPT → Gemini → Grok → Perplexity, any direction.&lt;/p&gt;

&lt;p&gt;No cloud servers. No accounts. No data leaves your browser.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why "Touch Grass"?
&lt;/h3&gt;

&lt;p&gt;Every developer knows the drill: you're deep in a debugging session with Claude, you hit a rate limit, and suddenly you're spending 30 minutes manually copy-pasting code snippets into ChatGPT, re-explaining your architecture, and fixing Markdown formatting that broke during transfer. That's 30 minutes of screen time that shouldn't exist.&lt;/p&gt;

&lt;p&gt;Cross Context kills that friction. Scrape → pick a target → transfer. Five seconds. Then close your laptop and go outside.&lt;/p&gt;

&lt;p&gt;The screen should be the shortest part of the experience. That's the whole point.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who is it for?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Developers&lt;/strong&gt; who pair-program with AI and refuse to restart from scratch when they hit a wall&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Researchers&lt;/strong&gt; who compare model responses using identical ground-truth context&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy-first builders&lt;/strong&gt; who won't send conversation history through third-party sync clouds&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;🔗 &lt;strong&gt;Live Prototype:&lt;/strong&gt; &lt;a href="https://cross-context.vercel.app/" rel="noopener noreferrer"&gt;cross-context.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The 3-step handoff:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Scrape&lt;/strong&gt; — Open any active chat on a supported platform. Click Cross Context → &lt;strong&gt;Scrape Context&lt;/strong&gt; (or &lt;strong&gt;AI Handoff&lt;/strong&gt; for Gemini-enhanced distillation).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target&lt;/strong&gt; — Pick your destination: ChatGPT, Claude, Gemini, Grok, or Perplexity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transfer&lt;/strong&gt; — Cross Context opens the target, attaches a clean &lt;code&gt;context.md&lt;/code&gt; file via the HTML5 DataTransfer API, types a companion prompt in your developer voice, and restores full continuity. Zero copy-pasting.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbprl2d4aa8r4knearwwo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbprl2d4aa8r4knearwwo.png" alt="Cross Context Logo" width="512" height="512"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Shriraj888" rel="noopener noreferrer"&gt;
        Shriraj888
      &lt;/a&gt; / &lt;a href="https://github.com/Shriraj888/Cross-Context" rel="noopener noreferrer"&gt;
        Cross-Context
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A local-first LLM context bridge for seamless cross-platform AI conversation transfer.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/Shriraj888/Cross-Context/icons/logo.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FShriraj888%2FCross-Context%2FHEAD%2Ficons%2Flogo.png" alt="Cross Context Logo" width="128" height="128"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Cross Context&lt;/h1&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;The Universal Context Bridge &amp;amp; Portability Layer for Large Language Models&lt;/h3&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/Shriraj888/Cross-Context/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/08cef40a9105b6526ca22088bc514fbfdbc9aac1ddbf8d4e6c750e3a88a44dca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e737667" alt="License: MIT"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Shriraj888/Cross-Context/manifest.json" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/97f85f046265623c4b26076add9bcc55f9608152c20e78f07076369977c77d05/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d312e302e302d677265656e2e737667" alt="Version"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Shriraj888/Cross-Context/manifest.json" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/a815108833bf77d1c38c863c21bc305746becf1e730dc98cf1d84adb3ab35927/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d616e69666573742d56332d6f72616e67652e737667" alt="Manifest Version"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Shriraj888/Cross-Context/docs/architecture.md" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/971449402c7106c2e495748f77226cd5d2e082e8560840b3c90eb45e70023f20/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436c6f75642d3130302532352532304c6f63616c2d707572706c652e737667" alt="Zero Cloud"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
  &lt;a href="https://chatgpt.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/9d9105bc99b20f9ad03af0c44bc2c57f4b8ebb3706b7e54cc6839226cabce7f2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436861744750542d3734616139633f7374796c653d666f722d7468652d6261646765266c6f676f3d6f70656e6169266c6f676f436f6c6f723d7768697465" alt="ChatGPT"&gt;&lt;/a&gt;
  &lt;a href="https://claude.ai" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/b6685fb1754d84574bd44ce808e9b568e6cf029656ca2fbd8ea04544f9774aa1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436c617564652d6439373730363f7374796c653d666f722d7468652d6261646765266c6f676f3d616e7468726f706963266c6f676f436f6c6f723d7768697465" alt="Claude"&gt;&lt;/a&gt;
  &lt;a href="https://gemini.google.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/002570965d87f195aafae3d5a82451ba769bb163e80ad2636d2f2a20aa015a5d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f47656d696e692d3862356366363f7374796c653d666f722d7468652d6261646765266c6f676f3d676f6f676c6567656d696e69266c6f676f436f6c6f723d7768697465" alt="Gemini"&gt;&lt;/a&gt;
  &lt;a href="https://grok.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/c146d256e4babfcf49a36dbb6307a9e3f14dc761e7d3fb49b0b98ef9e939de5b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f47726f6b2d3030303030303f7374796c653d666f722d7468652d6261646765266c6f676f3d78266c6f676f436f6c6f723d7768697465" alt="Grok"&gt;&lt;/a&gt;
  &lt;a href="https://perplexity.ai" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/f3c79c54b760f92ee20e13f5efbf38726434cf762f7c0f13877be50f252fc322/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f506572706c65786974792d3230423241413f7374796c653d666f722d7468652d6261646765266c6f676f3d706572706c6578697479266c6f676f436f6c6f723d7768697465" alt="Perplexity"&gt;&lt;/a&gt;
&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📖 What is Cross Context?&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Cross Context&lt;/strong&gt; is an open-source browser extension that eliminates AI vendor lock-in and context fragmentation. When you hit rate limits, context window caps, or want to leverage a different model's strengths, Cross Context captures your active session state and transfers it seamlessly into your target AI platform.&lt;/p&gt;

&lt;p&gt;Everything runs &lt;strong&gt;100% locally&lt;/strong&gt; in your browser sandbox without remote servers, subscription fees, or data collection.&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;✨ Key Features&lt;/h2&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;🔄 &lt;strong&gt;Cross-LLM Continuity:&lt;/strong&gt; Instantly migrate conversations between Claude, ChatGPT, Gemini, Grok, and Perplexity.&lt;/li&gt;
&lt;li&gt;📄 &lt;strong&gt;File-Based Context Injection:&lt;/strong&gt; Generates in-memory &lt;code&gt;context.md&lt;/code&gt; files attached directly to target uploaders via the HTML5 &lt;code&gt;DataTransfer&lt;/code&gt; API, avoiding bloated chat prompts.&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;Optional AI Distillation:&lt;/strong&gt; Two-pass Gemini synthesis extracts technical facts, active bugs, and architectural decisions, appending the verbatim transcript underneath.&lt;/li&gt;
&lt;li&gt;⚡ &lt;strong&gt;Zero-Thrashing Scraping:&lt;/strong&gt; Parses single-page chat UIs with scoped CSS hiding…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Shriraj888/Cross-Context" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;MIT Licensed. The entire codebase is a Chrome MV3 extension — no bundler, no framework, no build step:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;background.js&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Service worker: state management, image proxy, Gemini pipeline, cross-tab injection coordinator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;content/content.js&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Monolithic content script: platform-specific DOM scrapers, dual-mode injector, Shadow DOM overlay&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;utils/formatter.js&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Markdown assembly and message-boundary truncation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;popup/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Obsidian Dark + Electric Cyan UI with radar scanner, context cards, and settings modal&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The core stack is &lt;strong&gt;vanilla JavaScript on Chrome Manifest V3&lt;/strong&gt; — zero cloud dependencies, everything runs in the browser sandbox.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌────────────────────────────────────────────────────────┐
│ UI Layer: Popup (popup.html / popup.js / popup.css)    │
└───────────────────────────┬────────────────────────────┘
                            │ chrome.runtime.sendMessage
┌───────────────────────────▼────────────────────────────┐
│ Background: Service Worker (background.js)             │
│ Storage · Image Proxy · Gemini Pipeline · Coordinator  │
└───────────────────────────┬────────────────────────────┘
                            │ chrome.scripting
┌───────────────────────────▼────────────────────────────┐
│ Content: Single-File Dispatcher (content.js)           │
│ DOM Scrapers · Dual-Mode Injector · Shadow Overlay     │
└────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Four engineering problems had to be solved:&lt;/p&gt;
&lt;h3&gt;
  
  
  1. Zero-Thrashing DOM Scraping
&lt;/h3&gt;

&lt;p&gt;AI chat UIs use dynamic CSS-in-JS classes, virtualized message lists, and interface chrome (copy buttons, thumbs-up widgets, citation pills) that pollute extracted text. Naive &lt;code&gt;innerText&lt;/code&gt; calls trigger layout reflows and freeze the browser on long threads.&lt;/p&gt;

&lt;p&gt;Cross Context injects a scoped stylesheet (&lt;code&gt;.cc-scraping-active&lt;/code&gt;) that hides non-content elements in a single CSS pass &lt;em&gt;before&lt;/em&gt; any DOM read. One reflow, clean extraction, immediate teardown. Each platform gets a tiered fallback selector chain so the extension survives frontend deploys:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Primary Selector&lt;/th&gt;
&lt;th&gt;Fallback&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Claude&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[data-testid="user-message"]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;.font-user-message&lt;/code&gt;, &lt;code&gt;div[class*="ChatMessage"]&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ChatGPT&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[data-message-author-role]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;article&lt;/code&gt;, &lt;code&gt;div.text-base&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;user-query&lt;/code&gt;, &lt;code&gt;model-response&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;message-content&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Grok&lt;/td&gt;
&lt;td&gt;&lt;code&gt;div[data-testid*="message"]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;div[class*="bubble"]&lt;/code&gt;, &lt;code&gt;article&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Perplexity&lt;/td&gt;
&lt;td&gt;&lt;code&gt;div[class*="query-wrapper"]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;div.markdown&lt;/code&gt;, &lt;code&gt;div[class*="prose"]&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  2. Context Engineering — Score, Deduplicate, Truncate
&lt;/h3&gt;

&lt;p&gt;A raw 50-turn chat wastes tokens on greetings, superseded code, and conversational noise. Cross Context runs a local pipeline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Priority Scoring&lt;/strong&gt; — Code blocks get +2.5, architecture decisions +2.0, stack traces +2.0. Greetings get −2.0. Messages scoring ≥ 6.0 are kept.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jaccard Deduplication&lt;/strong&gt; — When &lt;code&gt;J(A, B) &amp;gt; 0.45&lt;/code&gt; or one code block is a substring of another, the older iteration is pruned. Only the latest, most complete version survives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Boundary-Safe Truncation&lt;/strong&gt; — Enforces an 80,000-char safety budget by trimming on whole message boundaries — never splits a code fence mid-token.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Two-Pass AI Distillation (Optional, via Gemini API)
&lt;/h3&gt;

&lt;p&gt;When toggled, the extension runs two sequential Gemini calls:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pass 1 — Structured Extraction:&lt;/strong&gt; Schema-enforced JSON pulling &lt;code&gt;technical_stack&lt;/code&gt;, &lt;code&gt;architecture_decisions&lt;/code&gt;, &lt;code&gt;errors_and_issues&lt;/code&gt;, &lt;code&gt;pending_tasks&lt;/code&gt;, &lt;code&gt;files_mentioned&lt;/code&gt;, and &lt;code&gt;important_code&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pass 2 — Grounded Synthesis:&lt;/strong&gt; Takes the structured facts + raw transcript and produces a first-person handoff brief (&lt;em&gt;"I was implementing token rotation in client.js..."&lt;/em&gt;) with the full verbatim transcript appended underneath for ground-truth verification.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two passes prevent hallucination: Pass 1 constrains facts, Pass 2 can only cite what Pass 1 extracted.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Dual-Mode Injection via HTML5 DataTransfer
&lt;/h3&gt;

&lt;p&gt;Pasting 30K characters into a chat box degrades model reasoning. Instead, Cross Context generates an in-memory &lt;code&gt;File&lt;/code&gt; object (&lt;code&gt;context-con_01.md&lt;/code&gt;) and dispatches synthetic drag-and-drop events directly to the target's file uploader:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;dt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;DataTransfer&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;dt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;items&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;File&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="nx"&gt;markdown&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="nx"&gt;fileName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;text/markdown&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}));&lt;/span&gt;
&lt;span class="c1"&gt;// dispatch dragenter → dragover → drop on the target's drop zone&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If file drop fails (platform doesn't support it), the injector falls back to native setter override + React synthetic event dispatching to insert text directly into the SPA's input element.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Cross Context could not exist as a closed-source product. Here's why:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Breaking walled gardens requires transparency.&lt;/strong&gt; Every AI vendor profits from keeping your conversation memory locked in their silo. An open-source context bridge is the only kind users can trust not to become another silo. The code is auditable; the extension does what it says.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Privacy demands zero-cloud.&lt;/strong&gt; Developers discuss internal architectures, API keys, and proprietary codebases during AI sessions. A closed sync tool would pipe that through someone else's servers. Cross Context runs entirely in your browser sandbox — no telemetry, no analytics, no external calls (except the optional Gemini API, which &lt;em&gt;you&lt;/em&gt; configure with &lt;em&gt;your own&lt;/em&gt; key).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Open-weight models need open plumbing.&lt;/strong&gt; Cross Context already bridges to Gemini, which powers Gemma-family models. The same context-engineering pipeline — priority scoring, deduplication, boundary-safe truncation — works identically when handing off to Gemma, Llama, or Mistral running locally via Ollama. A closed API can't let you swap the model underneath; open tools can.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Screen time is a design choice.&lt;/strong&gt; The 30-minute copy-paste ritual exists because vendors don't interoperate. Open innovation removes that friction by design, not by permission. Less friction means faster answers, which means you close the laptop sooner and go touch grass.&lt;/p&gt;




&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;This submission was refined and documented with agentic assistance. The session captures architectural trade-offs, DOM scraper edge-case handling, and the context-engineering iteration process.&lt;/p&gt;




&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma&lt;/strong&gt; — Cross Context's context-engineering pipeline (scoring, deduplication, truncation) produces model-ready handoff briefs optimized for open-weight models like Gemma. The same &lt;code&gt;context.md&lt;/code&gt; format works for local inference via Ollama, making Gemma a first-class handoff target.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of GitHub Copilot&lt;/strong&gt; — GitHub Copilot was used throughout development for rapid prototyping of DOM scrapers, selector fallback chains, and the DataTransfer injection logic.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
    <item>
      <title>Cross Context: I Built a Universal AI Context Bridge for My Best Friend Who Kept Hitting Model Rate Limits.</title>
      <dc:creator>Shriraj Patil</dc:creator>
      <pubDate>Sat, 03 Oct 2026 10:56:52 +0000</pubDate>
      <link>https://dev.to/shriraj888/cross-context-i-built-a-universal-ai-context-bridge-for-my-best-friend-who-kept-hitting-model-rate-53lp</link>
      <guid>https://dev.to/shriraj888/cross-context-i-built-a-universal-ai-context-bridge-for-my-best-friend-who-kept-hitting-model-rate-53lp</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Every developer has been there: it is 1:30 AM, you are deep in the zone debugging a complex race condition across four microservices, and suddenly your screen freezes with:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"You've reached your usage limit until 4:00 AM."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My close friend and hackathon teammate, Rohan, was hitting this wall almost every night. Like thousands of developers, Rohan relies on multiple AI tools: he uses Claude for architectural refactoring, ChatGPT for quick scripting, Gemini for reading massive API documentation, and local models when working offline. &lt;/p&gt;

&lt;p&gt;Whenever he hit a rate limit or a context window cap, all of his hard-won state vanished into a closed silo. Switching over to another AI meant spending 20 minutes manually copying code snippets, re-explaining the system architecture, and re-pasting terminal stack traces — burning through context tokens on repetitive conversational fluff before even getting to the actual bug. He was paying for multiple subscriptions and still getting locked out.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;Cross Context&lt;/strong&gt; for him.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross Context&lt;/strong&gt; is an open-source, privacy-first browser extension (Manifest V3) that acts as a universal context bridge and portability layer for Large Language Models. With a single click from the extension popup, Cross Context:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Scrapes active session state&lt;/strong&gt; cleanly from Claude, ChatGPT, Gemini, Grok, or Perplexity with zero layout thrashing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Applies context engineering heuristics&lt;/strong&gt; (Jaccard similarity deduplication, technical priority weighting, and boundary-safe truncation) to condense noisy chat threads into a high-density Markdown brief.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instantly injects the context&lt;/strong&gt; into destination AI platforms by attaching an in-memory &lt;code&gt;context-con_01.md&lt;/code&gt; file directly via the HTML5 &lt;code&gt;DataTransfer&lt;/code&gt; API, accompanied by a companion handoff prompt.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When I sent Rohan the unpacked extension build to test on his laptop, he imported an active 22-message debugging thread from Claude directly into ChatGPT in under 3 seconds — complete with active errors and file paths intact. His immediate reaction:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Dude, you just saved me 40 minutes of re-prompting every night. This is staying pinned in my browser bar forever."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Here is the high-level workflow of Cross Context in action:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌────────────────────────┐       ┌────────────────────────┐       ┌────────────────────────┐
│ 1. Active Chat         │  ──&amp;gt;  │ 2. Scrape Context      │  ──&amp;gt;  │ 3. One-Click Injection │
│ (e.g. Claude at limit) │       │ (Local Deduplication)  │       │ (ChatGPT / Gemini /...)│
└────────────────────────┘       └────────────────────────┘       └────────────────────────┘
                                                                               │
                                                                               ▼
                                                                 ┌───────────────────────────┐
                                                                 │ Attached: context-con_01.md│
                                                                 │ + Companion Handoff Prompt│
                                                                 └───────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Website:&lt;/strong&gt; &lt;a href="https://cross-context.vercel.app/" rel="noopener noreferrer"&gt;cross-context.vercel.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository &amp;amp; Releases:&lt;/strong&gt; &lt;a href="https://github.com/Shriraj888/Cross-Context" rel="noopener noreferrer"&gt;Shriraj888/Cross-Context&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Quick-Start:&lt;/strong&gt;

&lt;ol&gt;
&lt;li&gt;Clone &lt;code&gt;https://github.com/Shriraj888/Cross-Context.git&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Open &lt;code&gt;chrome://extensions/&lt;/code&gt; in Chrome, Brave, Edge, or Opera.&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;Developer Mode&lt;/strong&gt; (top-right toggle).&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Load unpacked&lt;/strong&gt; and select the &lt;code&gt;Cross-Context&lt;/code&gt; folder.&lt;/li&gt;
&lt;li&gt;Open any chat on Claude, ChatGPT, or Gemini, click the extension icon, and hit &lt;strong&gt;Scrape Context&lt;/strong&gt; -&amp;gt; &lt;strong&gt;Transfer&lt;/strong&gt;!&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;Cross Context is 100% open-source under the permissive &lt;strong&gt;MIT License&lt;/strong&gt;:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Shriraj888" rel="noopener noreferrer"&gt;
        Shriraj888
      &lt;/a&gt; / &lt;a href="https://github.com/Shriraj888/Cross-Context" rel="noopener noreferrer"&gt;
        Cross-Context
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A local-first LLM context bridge for seamless cross-platform AI conversation transfer.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/Shriraj888/Cross-Context/icons/logo.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FShriraj888%2FCross-Context%2FHEAD%2Ficons%2Flogo.png" alt="Cross Context Logo" width="128" height="128"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Cross Context&lt;/h1&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;The Universal Context Bridge &amp;amp; Portability Layer for Large Language Models&lt;/h3&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/Shriraj888/Cross-Context/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/08cef40a9105b6526ca22088bc514fbfdbc9aac1ddbf8d4e6c750e3a88a44dca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e737667" alt="License: MIT"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Shriraj888/Cross-Context/manifest.json" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/97f85f046265623c4b26076add9bcc55f9608152c20e78f07076369977c77d05/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d312e302e302d677265656e2e737667" alt="Version"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Shriraj888/Cross-Context/manifest.json" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/a815108833bf77d1c38c863c21bc305746becf1e730dc98cf1d84adb3ab35927/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d616e69666573742d56332d6f72616e67652e737667" alt="Manifest Version"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Shriraj888/Cross-Context/docs/architecture.md" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/971449402c7106c2e495748f77226cd5d2e082e8560840b3c90eb45e70023f20/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436c6f75642d3130302532352532304c6f63616c2d707572706c652e737667" alt="Zero Cloud"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
  &lt;a href="https://chatgpt.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/9d9105bc99b20f9ad03af0c44bc2c57f4b8ebb3706b7e54cc6839226cabce7f2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436861744750542d3734616139633f7374796c653d666f722d7468652d6261646765266c6f676f3d6f70656e6169266c6f676f436f6c6f723d7768697465" alt="ChatGPT"&gt;&lt;/a&gt;
  &lt;a href="https://claude.ai" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/b6685fb1754d84574bd44ce808e9b568e6cf029656ca2fbd8ea04544f9774aa1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436c617564652d6439373730363f7374796c653d666f722d7468652d6261646765266c6f676f3d616e7468726f706963266c6f676f436f6c6f723d7768697465" alt="Claude"&gt;&lt;/a&gt;
  &lt;a href="https://gemini.google.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/002570965d87f195aafae3d5a82451ba769bb163e80ad2636d2f2a20aa015a5d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f47656d696e692d3862356366363f7374796c653d666f722d7468652d6261646765266c6f676f3d676f6f676c6567656d696e69266c6f676f436f6c6f723d7768697465" alt="Gemini"&gt;&lt;/a&gt;
  &lt;a href="https://grok.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/c146d256e4babfcf49a36dbb6307a9e3f14dc761e7d3fb49b0b98ef9e939de5b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f47726f6b2d3030303030303f7374796c653d666f722d7468652d6261646765266c6f676f3d78266c6f676f436f6c6f723d7768697465" alt="Grok"&gt;&lt;/a&gt;
  &lt;a href="https://perplexity.ai" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/f3c79c54b760f92ee20e13f5efbf38726434cf762f7c0f13877be50f252fc322/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f506572706c65786974792d3230423241413f7374796c653d666f722d7468652d6261646765266c6f676f3d706572706c6578697479266c6f676f436f6c6f723d7768697465" alt="Perplexity"&gt;&lt;/a&gt;
&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📖 What is Cross Context?&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Cross Context&lt;/strong&gt; is an open-source browser extension that eliminates AI vendor lock-in and context fragmentation. When you hit rate limits, context window caps, or want to leverage a different model's strengths, Cross Context captures your active session state and transfers it seamlessly into your target AI platform.&lt;/p&gt;

&lt;p&gt;Everything runs &lt;strong&gt;100% locally&lt;/strong&gt; in your browser sandbox without remote servers, subscription fees, or data collection.&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;✨ Key Features&lt;/h2&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;🔄 &lt;strong&gt;Cross-LLM Continuity:&lt;/strong&gt; Instantly migrate conversations between Claude, ChatGPT, Gemini, Grok, and Perplexity.&lt;/li&gt;
&lt;li&gt;📄 &lt;strong&gt;File-Based Context Injection:&lt;/strong&gt; Generates in-memory &lt;code&gt;context.md&lt;/code&gt; files attached directly to target uploaders via the HTML5 &lt;code&gt;DataTransfer&lt;/code&gt; API, avoiding bloated chat prompts.&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;Optional AI Distillation:&lt;/strong&gt; Two-pass Gemini synthesis extracts technical facts, active bugs, and architectural decisions, appending the verbatim transcript underneath.&lt;/li&gt;
&lt;li&gt;⚡ &lt;strong&gt;Zero-Thrashing Scraping:&lt;/strong&gt; Parses single-page chat UIs with scoped CSS hiding…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Shriraj888/Cross-Context" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;Cross Context is engineered strictly around Chrome Extension Manifest V3 (MV3) with a three-layer decoupled architecture:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌────────────────────────────────────────────────────────────────────────┐
│                               UI Layer                                 │
│          Popup Window (popup.html, popup.js, popup.css)                │
│   • Active platform detection &amp;amp; radar scan console                     │
│   • Saved contexts list, search, multi-session merger                  │
│   • In-memory Markdown preview (`context.md`) &amp;amp; token estimator       │
│   • Settings modal (Gemini API configuration &amp;amp; model selector)         │
└───────────────────────────────────┬────────────────────────────────────┘
                                    │ (chrome.runtime.sendMessage)
┌───────────────────────────────────▼────────────────────────────────────┐
│                           Background Layer                             │
│               Service Worker Orchestrator (background.js)              │
│   • Central message router &amp;amp; transaction coordinator                   │
│   • Storage management &amp;amp; auto-recovery eviction engine                 │
│   • Two-pass Gemini API enhancement &amp;amp; distillation pipeline            │
│   • Cross-tab injection lifecycle coordinator (`pollAndInject`)        │
│   • Secure CORS image fetch proxy with SSRF validation                 │
└───────────────────────────────────┬────────────────────────────────────┘
                                    │ (chrome.scripting / chrome.tabs)
┌───────────────────────────────────▼────────────────────────────────────┐
│                            Content Layer                               │
│             Single-File Content Script (content/content.js)            │
│   • Platform detection (Claude, ChatGPT, Gemini, Grok, Perplexity)    │
│   • Resilient scraping engine (DOM mutation settling &amp;amp; sanitization)   │
│   • Dual-mode injection engine (file drop &amp;amp; fallback text input)       │
│   • Shadow DOM floating preview confirmation card                      │
└────────────────────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Here are the key subsystems derived from our architectural documentation:&lt;/p&gt;
&lt;h3&gt;
  
  
  1. Zero-Thrashing Scraper Session (&lt;code&gt;docs/scraping-engine.md&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;Single-page chat applications are notorious for layout thrashing, virtualized off-screen nodes, and obfuscated CSS-in-JS classes. To scrape cleanly without locking up the browser:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We inject a scoped temporary stylesheet (&lt;code&gt;.cc-scraping-active&lt;/code&gt;) that hides non-content chrome (copy buttons, thumbs-up SVGs, action bars, citations) in a single CSS pass.&lt;/li&gt;
&lt;li&gt;Reading &lt;code&gt;innerText&lt;/code&gt; on the message container extracts clean conversational prose with zero reflows.&lt;/li&gt;
&lt;li&gt;The scraper implements a tiered selector fallback chain across all supported platforms (Claude, ChatGPT, Gemini, Grok, and Perplexity).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Context Engineering &amp;amp; Deduplication (&lt;code&gt;docs/context-engineering.md&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;Transferring 10 iterations of the same modified file wastes tokens and confuses the destination model. Cross Context features a specialized local context engine:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Heuristic Priority Scoring:&lt;/strong&gt; Messages are scored based on technical signal. Code blocks (&lt;code&gt;+2.5&lt;/code&gt;), stack traces (&lt;code&gt;+2.0&lt;/code&gt;), architectural decisions (&lt;code&gt;+2.0&lt;/code&gt;), and task lists (&lt;code&gt;+1.5&lt;/code&gt;) are prioritized, while conversational fluff and greetings (&lt;code&gt;-2.0&lt;/code&gt;) are dropped.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jaccard Similarity Deduplication:&lt;/strong&gt; Extracted code blocks are tokenized into word sets and evaluated via Jaccard distance:
$$J(A, B) = \frac{|A \cap B|}{|A \cup B|}$$
If two code snippets share $J(A, B) &amp;gt; 0.45$ or one is a substring of another, only the newest, most complete iteration is preserved.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Boundary-Safe Truncation:&lt;/strong&gt; To stay within an 80,000-character safety budget (~20,000 tokens), older messages are pruned message-by-message from the transcript head. We never slice raw substrings, preventing unclosed code fences (

&lt;code&gt;```&lt;/code&gt;

) or malformed Markdown tables.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sequential Context IDs:&lt;/strong&gt; Snapshots are automatically tagged (&lt;code&gt;con_01&lt;/code&gt;, &lt;code&gt;con_02&lt;/code&gt;) so models never confuse separate project sessions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Dual-Mode State Restoration (&lt;code&gt;docs/injection-engine.md&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;Pasting 5,000 words into a chat prompt triggers aggressive rate limits and degrades attention. Cross Context bypasses this with a two-tier injection strategy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mode 1 (File Attachment Injection):&lt;/strong&gt; Generates an in-memory &lt;code&gt;File&lt;/code&gt; object (&lt;code&gt;context-con_01.md&lt;/code&gt;) and simulates an HTML5 &lt;code&gt;DataTransfer&lt;/code&gt; drag-and-drop event onto the target platform's file uploader. It polls the DOM for the upload chip (e.g. &lt;code&gt;[data-testid="file-chip"]&lt;/code&gt;) and then types a concise companion prompt referencing the Context ID.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mode 2 (SPA Text Fallback):&lt;/strong&gt; If file uploads are unavailable, it synchronizes with React and Angular Virtual DOMs using synthetic focus, &lt;code&gt;document.execCommand('insertText')&lt;/code&gt;, and native prototype setter overrides.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Optional Two-Pass AI Distillation (&lt;code&gt;docs/ai-enhancement-pipeline.md&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;When enabled via user settings, Cross Context leverages Google's Gemini API in a structured two-pass pipeline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pass 1:&lt;/strong&gt; Extracts objective facts (tech stack, architectural decisions, active errors, pending tasks) enforced with strict JSON schemas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pass 2:&lt;/strong&gt; Synthesizes a grounded first-person handoff brief (&lt;em&gt;"I was implementing OAuth login with Supabase when..."&lt;/em&gt;), appending the complete verbatim transcript underneath for 100% ground-truth verification.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open innovation is the entire reason Cross Context exists and why it works better than any proprietary alternative:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Cloud Privacy &amp;amp; Data Sovereignty:&lt;/strong&gt; Developer conversations contain sensitive codebases, proprietary API routes, staging URLs, and internal schema keys. Storing conversation histories on a closed third-party synchronization server introduces severe data leakage and compliance risks. Cross Context operates &lt;strong&gt;100% locally in your browser sandbox&lt;/strong&gt;. Your data never leaves your machine unless you explicitly choose to call an API with your own key.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Defeating AI Vendor Lock-In:&lt;/strong&gt; Closed commercial AI providers have every incentive to keep your session state locked inside their platforms. If you hit a rate limit, their only solution is to upsell you to a more expensive tier. Open tools give agency back to developers: your context belongs to you, and you should be able to move it freely between any AI model at will.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Synergy with Open-Weight Models:&lt;/strong&gt; The context snapshots generated by Cross Context (&lt;code&gt;context-con_XX.md&lt;/code&gt;) are standard, well-structured Markdown files. They can be piped directly into local open-weight models (such as &lt;strong&gt;Gemma&lt;/strong&gt;, Llama, or Mistral running via Ollama or LM Studio) on an air-gapped laptop with no internet connection at zero cost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transparent &amp;amp; Auditable:&lt;/strong&gt; Browser extensions run with elevated permissions. Because Cross Context is open-source under the MIT license, every developer can inspect the network requests, verify that no keystrokes are tracked, and contribute selector updates as web frontends change.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;This project was built, documented, and refined collaboratively with AI pair programming. You can inspect the development process and tool interactions preserved via DevRelay.&lt;/p&gt;




&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; Cross Context features a built-in two-pass AI distillation pipeline that transforms noisy conversation threads into dense, schema-enforced handoff briefs and structured JSON facts, supporting lightweight open-weight models and Google AI Studio endpoints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of GitHub Copilot:&lt;/strong&gt; Utilized for rapid generation of DOM selector fallback trees, Chrome Manifest V3 service worker event routing, and cross-platform SPA event dispatch simulations.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
