TempoLife › Features › Browser extension
Browser extension
No extension is published yet. This page describes the planned nutrition overlay and its permissions honestly, and gives you a bookmarklet that looks up any selected food through the live TempoLife API right now.
There is no TempoLife browser extension. It is not in the Chrome Web Store, not on addons.mozilla.org, and there is no unpacked build to sideload. Anything you find under that name is not ours. What is on this page is a description of what it would do, and a bookmarklet that does a useful slice of it today.
Use this today: the food-lookup bookmarklet
This is the part of the idea that does not need a store listing, a review queue or a permission prompt. It is a link. Drag it to your bookmarks bar and it becomes a button that works on every site you visit.
Drag that button to your bookmarks bar. Do not click it here. This page sends a strict Content-Security-Policy that forbids inline script, so a click on this site is blocked by design — which is also a small demonstration that the page is not running it for you. Once the link lives in your bookmarks bar it runs against whatever page you are on instead.
What it does, in order
- Reads the text you have selected on the current page. Nothing else on the page is read.
- If you selected nothing, it asks you what to look up, pre-filled with an example.
- Collapses whitespace, trims, and cuts anything over 160 characters — the limit
/api/answerenforces, so a long selection returns an answer instead of an error. - Opens
https://tempolife.app/api/answer?q=…in a new tab withnoopener, so the new tab cannot reach back into the page you came from.
The source, in full
Read it before you install it. That is the point of a bookmarklet: it is small enough that you can.
javascript:(function () {
var q = '';
try {
q = String(window.getSelection ? window.getSelection() : '');
} catch (e) {
q = '';
}
q = q.replace(/\s+/g, ' ').trim();
if (!q) {
q = String(window.prompt('Ask TempoLife about a food', 'calories in banana') || '');
q = q.replace(/\s+/g, ' ').trim();
}
if (!q) { return; }
if (q.length > 160) { q = q.slice(0, 160); }
window.open('https://tempolife.app/api/answer?q=' + encodeURIComponent(q), '_blank', 'noopener');
})();There is no fetch, no XMLHttpRequest, no injected <script>, no cookie access, no localStorage, and no code loaded from anywhere. It reads a selection and opens a URL. The minified form in the link above is this and nothing more, percent-encoded so no quote or angle bracket ends up in an HTML attribute.
What it sends, and where
The text you selected is sent to tempolife.app in the URL of the new tab, because that is how a query parameter works. Select a food name, not a private sentence. The endpoint logs are ordinary web-server logs; nothing is attached to an account, because the bookmarklet sends no cookie and needs no sign-in.
Where it will not work
Sites with a strict Content-Security-Policy of their own can block bookmarklets — behaviour varies by browser and has changed more than once. Browser-internal pages such as chrome:// or about: never run one. And on mobile, bookmarks bars mostly do not exist; use the form below instead. When a bookmarklet fails it usually fails silently, so if nothing happens, that is why.
The same thing without a bookmark
No JavaScript, no extension, no account. It returns raw JSON because it is an API endpoint rather than a page — which is exactly what makes it useful from a script of your own. The developer portal documents the response shape and the 60-per-hour rate limit.
What the extension would add
The bookmarklet answers one question at a time in a new tab. An extension can do two things it cannot: draw on the page you are already reading, and write to your diary.
Nutrition overlay on recipe pages
You open a recipe. The extension recognises the ingredient list — most recipe sites publish it as structured data, which is how search engines show cooking times, so this is reading a labelled list rather than guessing at prose. Each ingredient is resolved through the same /api/answer endpoint the bookmarklet uses, and a small panel shows calories and macros per serving for the whole recipe, with the ingredients it could not match listed honestly rather than silently dropped. That last detail is what separates a useful overlay from a confident wrong number: a recipe with two unmatched ingredients is a recipe whose total is incomplete, and it should say so.
One-click logging
Having computed a recipe, the obvious next step is to put it in your diary with one click instead of retyping it. Worth being precise about the blocker: TempoLife has no public write API, so this cannot be built as a third-party integration today. It would work by carrying your existing signed-in session to the app in a new tab, prefilled — the same thing a share link does, without the copy and paste.
Right-click any ingredient
Select "200 g ricotta" anywhere — a shop, a menu, a message — right-click, and get the numbers in a popup rather than a new tab. This is the bookmarklet with better manners.
Permissions it would ask for, and why each one
A recipe overlay needs less access than people assume, and the difference between a well-scoped extension and a badly scoped one is visible in the install prompt. This is the manifest it would ship with.
| Permission | What it allows | Why it is needed |
|---|---|---|
activeTab | Read the page in the current tab, and only after you click the toolbar button. | The overlay has to read the ingredient list. This grant expires when you leave the tab, so it cannot be used to watch you browse. |
scripting | Inject the overlay script into that tab. | Modern extensions cannot draw on a page without it. It is inert without a host grant. |
contextMenus | Add one right-click item on selected text. | The "look up this ingredient" path. It adds a menu entry and nothing else. |
storage | Store settings in the browser. | Your unit preference and which tips you have dismissed. Local to the browser; never sent anywhere. |
| Optional host access | Run on a site you explicitly allow. | Requested per site, at the moment you first use it there, instead of asking for every site at install time. |
What it would deliberately not ask for
<all_urls>at install time — the permission that makes an extension able to read every page you ever open. Per-site consent is slower to use and much easier to trust.tabs— the full URL and title of every open tab, which is a browsing history feed.cookies,webRequest,history,bookmarks,downloads,identity— none of them are needed to put nutrition on a recipe.- Remote code. The whole point of a review process is defeated by an extension that fetches its logic after installation, and both stores now forbid it.
If a nutrition extension you are considering asks for access to all sites at install time and does not explain why, that is worth a moment's thought regardless of whose it is.
Why it is not built yet
Two honest reasons rather than a roadmap slogan. First, an extension is a permanent security commitment: code with access to pages you are signed into, updating silently, in a supply chain that has been attacked repeatedly through bought-out extensions. Shipping one is easy; being a responsible owner of one for years is not. Second, the overlay is only worth installing if ingredient matching is good, and the honest assessment is that a European recipe with regional ingredient names is still hit-and-miss against the food table. A confident wrong calorie count is worse than no overlay.
The bookmarklet exists because it sidesteps both problems. There is no auto-update channel to hijack, no permission to grant, and it hands you an answer with its source attached instead of pretending to have computed a whole recipe.
Pages
Chrome and Edge
Chromium install path, what the store review would cover, and the bookmarklet in Chrome.
Firefox
How the Firefox build would differ, and the bookmarklet in Firefox.
Privacy
Exactly what would be read, what would leave your browser, and what the bookmarklet sends.
Changelog
No releases. What a version entry will contain when there is one.
Frequently asked questions
Is there a TempoLife extension I can install?
No. Nothing is published in the Chrome Web Store or on addons.mozilla.org, and there is no sideloadable build. Anything using the name is not ours.
Is there a waitlist?
Deliberately not. Collecting email addresses for an unbuilt product creates a list to leak and a promise to break. Create a TempoLife account if you want to hear about it — the same announcement goes to account holders.
What can I actually use today?
The bookmarklet on this page. Select a food name on any site, click the bookmark, and the live answer endpoint opens in a new tab with calories or macros and a source link.
Does the bookmarklet track me?
It has no tracking code, no storage and no network call of its own. It reads your selection and opens a URL. The text you select does travel to tempolife.app in that URL, which is the one thing to be aware of.
Which browsers would the extension support?
Chrome, Edge and any other Chromium browser from one build, and Firefox from a near-identical one. Safari would need a separate wrapper and is not planned.
Source: TempoLife /api/answer endpoint — live, documented in the developer portal · checked 2026-09-02
Want to hear when it ships?
There is no waitlist here on purpose. Create a free account and you will hear about it with everything else — no separate list, no extra email address sitting somewhere.