Inspiration
The core motivation for EcoMeter stems from a critical blind spot in modern AI usage: the environmental cost of LLM inference. Individually, a single user's prompt seems insignificant, leading to a pervasive sense of apathy, the "my one prompt won't change anything" mindset. We recognized that users lack the tangible feedback needed to link their conversational habits to real-world resource consumption. Our goal was to solve this awareness gap by making abstract concepts like carbon emissions and water usage visible and immediate, thus transforming a passive, high-impact activity into a conscious, environmentally responsible one.
What it does
EcoMeter is a Chrome extension designed to transform passive LLM usage into active, resource-aware engagement. As a user types a prompt into popular platforms like ChatGPT or Claude, the extension leverages client-side token estimation and pre-calculated factors to display the real-time carbon emissions and water consumption associated with that input. Crucially, it monitors the conversational context of the current chat. When the thread becomes excessively long or the topic drifts, EcoMeter provides a timely, data-driven nudge to the user, suggesting they start a fresh, optimized workstream to conserve tokens, reduce computational load, and save money.
How we built it
We developed EcoMeter using Windsurf for rapid development and employed Code Rabbit for automated code reviews. To minimize server-side dependencies and reduce our own carbon footprint, the core environmental calculations and prompt analysis features were engineered to run entirely on the client. This approach involved extensive manual refinement to ensure the heuristic rules were both highly accurate and minimally invasive to the user experience.
Challenges we ran into
Our primary challenge was achieving a tangible environmental impact without offsetting our contributions by running a resource-intensive agent. To solve the problem of measuring and suggesting semantic compression, most methods rely on calling another LLM (like a more lightweight Llama model), which would negate our compute savings. This forced us to be highly inventive. We had to implement critical functions like detecting semantic drift and identifying redundant text using lightweight, custom-built heuristics that relied on linguistic rules and non-LLM computation, effectively proving that meaningful change is possible with minimal computational overhead.
Accomplishments that we're proud of
We are most proud of successfully implementing a non-LLM method for semantic similarity scoring to detect conversation drift. We vectorized the contents of the chat history and the current prompt using a static embedding model (a technique inspired by our machine learning coursework). This allowed us to calculate similarity scores efficiently. Furthermore, we successfully integrated an accurate token counting mechanism using tiktoken to create a clear, actionable threshold that reliably suggests to the user the optimal moment to migrate to a new chat.
What we learned
This project was a masterclass in AI development efficiency. We learned that it is remarkably fast to build and ship functional applications using modern AI-enabled tooling. However, the experience provided deep insights beyond tool integration. We gained practical experience in architecting custom API integrations while experimenting with services like Creao. We also learned how to turn classroom project concepts into impactful applications for social change.
What's next for GeoMeter
Our immediate next step is tackling the compute-heavy problem of image-based prompting, aiming to provide environmental feedback when users upload visual data. On the prompt efficiency front, we are committed to implementing active, automated prompt shortening. The challenge remains how to perform this shortening and going beyond simple heuristics to truly preserve context, without the computational cost of an abstractive LLM. We plan to explore highly optimized, tiny Transformer encoders specifically for token classification to determine which tokens to keep, ensuring that our compression strategy maintains its environmental integrity.
Built With
- chatgpt
- claude
- coderabbit
- extension
- html
- javascript
- tiktoken
- windsurf

Log in or sign up for Devpost to join the conversation.