Sno Station
Sno Station은 AI 에이전트를 하나의 팀으로 묶는 오픈소스 워크스테이션으로, 로컬 머신에서 에이전트 협업을 가능하게 함
EcoMeter AI - Track token usage, cost & environmental impact across AI conversations — by Legerly
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Track token usage, cost, and environmental impact across your AI conversations — automatically.
EcoMeter AI is a Manifest V3 Chrome extension with a side-panel UI that tracks token usage, cost, and water impact in real time across Claude, ChatGPT, Gemini, Grok, Mistral, Perplexity, Copilot, Poe, and DeepSeek. No account required — everything runs locally in your browser.README 전문 보기 ↗Track token usage, cost, and environmental impact across your AI conversations — automatically.
EcoMeter AI is a Manifest V3 Chrome extension with a side-panel UI that tracks token usage, cost, and water impact in real time across Claude, ChatGPT, Gemini, Grok, Mistral, Perplexity, Copilot, Poe, and DeepSeek. No account required — everything runs locally in your browser.
It also feeds Legerly's Subscription Auditor. With opt-in, local, lifetime usage tracking enabled, the extension accumulates message counts and token volume per platform/model (no message content). The ⤓ Export for Auditor button downloads this as ecometer-usage.json. The Auditor (audit.html) reads that file client-side via FileReader — never uploaded anywhere — and pre-fills its quiz with measured usage instead of self-reported estimates, so its recommendation engine works off real volume data.
AI runs on asymmetric information: providers know exactly what each conversation costs — in dollars, energy, and water — and structure things so you don't. That gap is a market failure, and it's helping AI concentrate wealth rather than spread it. Legerly builds privacy-first, ad-free tools that hand that information back to the people using AI, so the benefit flows to them. EcoMeter AI is one of those tools; the full set (AI Price Tracker, the AI Clock, Subscription Auditor, AI Transparency Index) lives at legerlyai.com.
This repo holds two products. EcoMeter AI (extension/) is the one this README is about; the rest of the tree is the Legerly website, four self-contained static pages served straight to GitHub Pages from main:
| Page | What it does |
|---|---|
pricing.html | AI Price Tracker — per-token rates, subscriptions, free tiers, plus what a plan is actually worth |
audit.html | Subscription Auditor — which plan fits your real usage, and the student/teacher routes that genuinely exist |
ai-clock.html | The AI Clock — modelled global AI usage and footprint counters (a projection, re-anchored quarterly) |
transparency-index.html | AI Transparency Index — how openly each provider discloses its environmental impact |
They share extension/prices.json as the single source of truth for prices, which is what ties the extension to the site: EcoMeter measures your real local usage, the Auditor prices it.
Two docs carry the context: PROJECT-CONTEXT.md is the architecture and how-to-ship deep dive, and FRESHNESS.md lists everything in here that goes stale — prices, plan caps, student offers, clock anchors, DOM selectors, store state — with the check that proves each one.
Seven guard scripts, four of them in CI. Run them after touching data:
node scripts/check-prices.js && node scripts/check-auditor.js && node scripts/test-auditor.js && node scripts/check-clock.js && node scripts/test-cost-model.js && node scripts/calibrate-tokenizer.js && node scripts/validate-site.js
Each exists because something was wrong and nothing caught it. They have found a 2× billing error, a 51× image-token error, a false accuracy claim, prices drifting between six files, and a recommendation that sent image users to a tier that throttles image generation.
| Provider | Models |
|---|---|
| Anthropic | Claude Opus 5.5, Opus 5, Opus 4.8 / 4.7 / 4.6, Sonnet 5.5, Sonnet 5, Sonnet 4.6, Haiku 5.5, Haiku 4.5, plus Fable 5 / 5.1 & Mythos 5 / 5.1 |
| Gemini 4 Argon, Gemini 3.8 / 3.6 Flash, 3.5 Flash-Lite, 3.1 Pro, 3.1 Flash-Lite, 2.5 Pro / Flash / Flash-Lite | |
| OpenAI | GPT-6 Astra / 6.1 Sol / Sol / Luna, GPT-5.6 Sol / Terra / Luna, GPT-5.5 (+ Pro), GPT-5.4 (+ mini / nano / Pro), GPT-4o (+ mini), GPT-4.1 (+ mini / nano), o3, o4-mini |
| xAI | Grok 4.7, Grok 4.6, Grok 4.5, Grok 4.3, Grok 4.20, Grok 4, Grok 3, Grok 3 Mini |
| Mistral | Large 3, Medium 3.5, Small 4, Codestral |
| DeepSeek | V4 Pro, V4 Flash, V3, R1 |
The full catalog (including advanced/paid frontier models) lives in extension/prices.json — the single source of truth for pricing, shared by the extension and the Legerly website.
chrome://extensionsextension/ folderInstall the published extension directly: EcoMeter AI on the Chrome Web Store.
ecometer-ai/
├── extension/ # The Chrome extension (load this folder in Chrome)
│ ├── manifest.json # MV3 (version is bumped reactively — see scripts/bump-version.js)
│ ├── sidepanel.html
│ ├── sidepanel.js # Side-panel UI + all logic
│ ├── background.js
│ ├── content.js # Scrapes visible chat text per platform
│ ├── prices.json # SHARED source of truth: api / subscriptions / free_tiers
│ ├── water.json # Per-model water intensity tiers
│ ├── privacy-policy.html
│ ├── icons/
│ ├── fonts/ # Self-hosted (no IP leak to Google Fonts)
│ ├── tokenizer_cl100k.js
│ └── tokenizer_o200k.js
├── scripts/
│ ├── update-prices.js # Writes the prices.json api section
│ ├── bump-version.js # Increments manifest + prices.json version (reactive, on collision)
│ └── roll-clock.js # Rolls the AI Clock anchor forward
└── .github/
└── workflows/
├── publish.yml # Weekly: refresh prices → build → upload draft to Chrome Web Store
├── update-prices.yml # Manual: PR-based price refresh
├── release.yml # On push to main → builds zip + GitHub Release
└── roll-clock.yml # Quarterly: re-anchor the AI Clock, open a PR
This repo also hosts the Legerly website (index.html, pricing.html, ai-clock.html, audit.html, transparency-index.html) served by GitHub Pages from main.
The weekly publish.yml workflow (Monday) refreshes prices.json as part of building and uploading the extension draft to the Chrome Web Store. A separate update-prices.yml can be run manually to open a PR with just a price refresh. Either way you review and merge — nothing ships without your approval.
To update prices locally:
node scripts/update-prices.js
Note:
update-prices.jscurrently writes hardcoded values and only covers Anthropic, OpenAI, and Google. Other providers' prices inprices.jsonare maintained by hand.
Issues and PRs welcome. For pricing corrections, the source of truth is:
MIT © Legerly