[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"zeug-en\u002Fzeug\u002Ft3-code":3,"related-en\u002Fzeug\u002Ft3-code":282},{"id":4,"title":5,"badge":6,"body":7,"category":251,"date":252,"description":253,"draft":254,"extension":255,"image":256,"link":257,"linkText":258,"meta":259,"navigation":260,"path":261,"pinned":254,"publishTime":262,"seo":263,"stem":264,"tags":265,"verdict":279,"visual":280,"__hash__":281},"zeug_en\u002Fzeug\u002Ft3-code.md","T3 Code: my Claude and Codex subscriptions in one app, without the nagging worry","Heißer Tipp",{"type":8,"value":9,"toc":241},"minimark",[10,20,23,26,29,37,40,45,53,56,58,61,64,67,70,73,77,80,83,85,88,100,103,106,108,111,114,117,121,124,127,129,132,138,140,143,146,180,186,188,191,195,198,201,203,206,209,212,216,219,222,224,227,230,232,235,238],[11,12,13,14,19],"p",{},"I wrote a whole article here about why ",[15,16,18],"a",{"href":17},"\u002Fen\u002Fzeug\u002Fpi-coding-agent","Pi"," is my coding harness.",[11,21,22],{},"Terminal, few tools, everything pluggable, no foreign opinion in the way. That still holds.",[24,25],"spacer",{},[11,27,28],{},"And yet there is now a second app running on my private machine, with a window, a sidebar and buttons.",[11,30,31,32,36],{},"It is called ",[33,34,35],"strong",{},"T3 Code",".",[11,38,39],{},"The reason is neither comfort nor curiosity. It is a fairly unromantic one: my Claude subscription.",[41,42,44],"h2",{"id":43},"why-i-need-a-second-app-at-all","Why I need a second app at all",[11,46,47,48,52],{},"I said it in the article about ",[15,49,51],{"href":50},"\u002Fen\u002Fzeug\u002Fllms-fuer-pi-coding-agent","my LLMs for Pi",": a normal Claude subscription is not a ticket into Pi.",[11,54,55],{},"Technically, it works. There are workarounds that slip a third-party harness under the subscription login. But that is not the path Anthropic intended, and if they decide to treat it as circumvention, the worst case is losing the account.",[24,57],{},[11,59,60],{},"For a few cheaper agent runs, that would be a silly trade.",[11,62,63],{},"So until recently I had two options, and I liked neither.",[11,65,66],{},"Either pay for Claude through the API, which turns into a bill with personality once you do serious agent work. Or use Claude Code natively in the terminal and switch tools every time I want to switch models.",[11,68,69],{},"Privately, I mostly work with Claude and Codex. Two subscriptions, two CLIs, two completely different interfaces. And every time I wanted to swap models in the middle of a task, it meant copying the session, re-explaining the context, starting over.",[11,71,72],{},"Not terrible. Just a small annoyance, every single time.",[41,74,76],{"id":75},"what-t3-code-does-behind-the-scenes","What T3 Code does behind the scenes",[11,78,79],{},"T3 Code comes from the team around Theo Browne, is open source under MIT and describes itself as an “agent harness control surface”.",[11,81,82],{},"Clunky phrase. Accurate, though.",[24,84],{},[11,86,87],{},"T3 Code is not an agent itself. It brings no model of its own, no access of its own to Anthropic or OpenAI, no login trick of its own.",[11,89,90,91,95,96,99],{},"Instead it uses what is already installed on my machine: Claude Code and Codex, each as the official CLI. For Claude the setup step is simply ",[92,93,94],"code",{},"claude auth login",", for Codex it is ",[92,97,98],{},"codex login",". After that, T3 Code drives both and puts an interface in front of them.",[11,101,102],{},"That is the part that matters to me.",[11,104,105],{},"My Claude subscription still runs inside Claude Code. My Codex subscription still runs inside Codex. T3 Code just sits in front and talks to the tools Anthropic and OpenAI ship themselves. No spoofed client, no rerouted token.",[24,107],{},[11,109,110],{},"Whether Anthropic sees it differently in a year, I cannot promise. But it is a completely different level of cleanliness compared to what some forums sell you as “works fine, though”.",[11,112,113],{},"Claude and Codex are just the two I happen to use. T3 Code now also talks to Cursor, Grok Build and OpenCode, on the same principle: install the vendor’s CLI, log in there, done. Cursor and Grok still carry an “Early Access” label inside the app, and on my machine all three are switched off because I pay for none of them. If you have one of them, it lands in the same sidebar.",[11,115,116],{},"And as a side effect it solves a second problem: if you keep separate work and personal accounts, you create one config directory per account and T3 Code treats them as separate environments. One is enough for me, but I know enough people for whom that alone would be the reason to install it.",[41,118,120],{"id":119},"switching-models-without-switching-tools","Switching models without switching tools",[11,122,123],{},"The everyday gain is almost boring.",[11,125,126],{},"I open a thread, pick Claude or Codex, pick a model, work. For the next thread I pick the other provider. Same sidebar, same composer, same shortcuts, same diff view.",[24,128],{},[11,130,131],{},"Two apps with two mindsets become one app with two brains.",[133,134],"content-image",{"alt":135,"caption":136,"src":137},"T3 Code on desktop with the project sidebar and a running Claude agent","One surface for everything: projects and running threads on the left, the result in the middle, model, permissions and composer at the bottom.","\u002Fimages\u002Fcontent\u002Farticles\u002Ft3-code\u002Ft3-code-desktop.webp",[24,139],{},[11,141,142],{},"And only now do I notice how often I used to stay with the wrong model out of laziness, because switching was effort. On substance I am the bigger Codex fan, so that is my default. But as soon as frontend work comes up, I fall back to the Claude models every single time. And that fallback is now one click instead of a tool switch.",[11,144,145],{},"On top of that come things the providers’ own apps do not solve as well for me:",[147,148,149,156,162,168,174],"ul",{},[150,151,152,155],"li",{},[33,153,154],{},"Several threads in parallel, visibly."," The sidebar shows me which agent is working, which one is waiting and which one is done. In the terminal I used to solve that with tmux and goodwill.",[150,157,158,161],{},[33,159,160],{},"Permissions are a dial."," Four modes from “ask me about everything” to “just do it”, labelled the same for both providers. T3 Code translates them into whatever Claude Code and Codex call them internally.",[150,163,164,167],{},[33,165,166],{},"Pull requests from inside the app."," Title and description get suggested, open reviews land as tabs. Finishing a task no longer means switching to the browser.",[150,169,170,173],{},[33,171,172],{},"Carrying on from my phone."," With T3 Connect I pair my phone to the machine the agents run on. When the agent has yet another question, I no longer have to walk to the desk for it.",[150,175,176,179],{},[33,177,178],{},"It costs nothing."," No licence, no subscription on top. The team writes that they built it because they wanted it themselves.",[133,181],{"alt":182,"caption":183,"src":184,"size":185},"A running T3 Code agent thread on a smartphone","The same agent thread on the phone: read the result, answer follow-up questions and carry on working.","\u002Fimages\u002Fcontent\u002Farticles\u002Ft3-code\u002Ft3-code-mobile.webp","small",[24,187],{},[11,189,190],{},"None of this is magic. But together it is enough everyday life that I hardly open the native apps from Anthropic and OpenAI anymore. The models stay the same. The frame around them is, in my opinion, simply more pleasant.",[41,192,194],{"id":193},"the-honest-limits","The honest limits",[11,196,197],{},"By its makers’ own words, T3 Code is “very very early”. You are told to expect bugs, and you do.",[11,199,200],{},"The team is also barely accepting outside contributions right now, because too much is still moving. For me that means keeping in mind that the app is younger than the CLIs underneath it, and not being surprised when something looks different after an update. I still would not hand it to a colleague without that sentence attached.",[24,202],{},[11,204,205],{},"The second limit is the flip side of the advantage: T3 Code needs the CLIs. Without at least one of them installed, the app is a pretty, empty window. If you do not use those tools already, this is not an entry point, just one more install per provider.",[11,207,208],{},"Then there is the fact that it is not Pi. It is nowhere near as open. I do not write an extension that gives the model a new tool or rebuilds the system prompt. T3 Code is a front end for other people’s harnesses, not a harness of its own. If you want to shape your agent, Pi is still the better place.",[11,210,211],{},"Which leaves the point I refuse to play down: what a subscription allows is not decided by T3 Code, and not by me. Anthropic and OpenAI decide, and both can change their rules tomorrow. As I read it today, the official CLI behind a third-party interface is the clean path. If you read it differently, please read the rules, not me.",[41,213,215],{"id":214},"would-i-recommend-t3-code","Would I recommend T3 Code?",[11,217,218],{},"Yes, to a clearly defined audience.",[11,220,221],{},"If you have a Claude subscription or a Codex subscription, work with coding agents and do not want to lie awake thinking about account bans, T3 Code is currently the front end I would show you. Especially if you have both subscriptions and are tired of jumping between them.",[24,223],{},[11,225,226],{},"If you want to assemble your own harness, stay with Pi or something similar. T3 Code does not want to hand anything over to you. It wants to make the things Claude Code and Codex can already do nicer to operate.",[11,228,229],{},"And if you need software that is finished: wait another six months.",[24,231],{},[11,233,234],{},"For me, it is the first app with a window that I keep open next to the terminal voluntarily.",[11,236,237],{},"Pi builds my workflow. T3 Code makes sure I can use the Claude subscription I am paying for anyway with a clear conscience.",[11,239,240],{},"Together, that is exactly the mix I wanted.",{"title":242,"searchDepth":243,"depth":243,"links":244},"",3,[245,247,248,249,250],{"id":43,"depth":246,"text":44},2,{"id":75,"depth":246,"text":76},{"id":119,"depth":246,"text":120},{"id":193,"depth":246,"text":194},{"id":214,"depth":246,"text":215},"Software","2026-09-03","My experience with T3 Code as a front end for Claude Code and Codex, using both subscriptions the way the providers intend while still switching models freely.",false,"md","\u002Fimages\u002Farticles\u002Ft3-code-cover.webp","https:\u002F\u002Ft3.codes\u002F",null,{},true,"\u002Fzeug\u002Ft3-code","09:30",{"title":5,"description":253},"zeug\u002Ft3-code",[266,267,268,269,270,271,272,273,274,275,276,277,278],"t3 code","t3code","coding harness","coding agent","claude code","codex","cursor","grok","opencode","claude abo","subscription","ki","entwicklerwerkzeug","Pi stays my harness. But as soon as my Claude subscription has to be part of the deal, T3 Code is the front end that lets me stop thinking about account bans.","halftone","POakXtYWChGmlPbfMal8HXkLKV2jwUpQWS8hopdu2WA",[283,437,645],{"id":284,"title":285,"badge":286,"body":287,"category":417,"date":418,"description":419,"draft":254,"extension":255,"image":420,"link":421,"linkText":258,"meta":422,"navigation":260,"path":423,"pinned":254,"publishTime":262,"seo":424,"stem":425,"tags":426,"verdict":434,"visual":435,"__hash__":436},"zeug_en\u002Fzeug\u002Fbackforce-one-plus.md","Backforce One Plus: the chair I only write about because something broke","Würd ich wieder kaufen",{"type":8,"value":288,"toc":410},[289,292,295,298,301,305,308,311,313,316,319,323,326,329,332,335,339,342,362,365,367,370,373,375,389,393,396,399,401,404,407],[11,290,291],{},"You do not write about an office chair as long as it works.",[11,293,294],{},"You sit in it, every day, and never think about it for a second. That is exactly what the Backforce One Plus was for me, for two and a half years.",[11,296,297],{},"It only got interesting last week. When the top pad of the 5D armrest simply broke off.",[11,299,300],{},"The One Plus is an ergonomic chair made in Germany, somewhere between office chair and gaming chair. Handbuilt, with a synchronous mechanism, adjustable lumbar support and those 5D armrests that slide in every direction and fold away.",[41,302,304],{"id":303},"two-and-a-half-years-without-thinking-about-it","Two and a half years without thinking about it",[11,306,307],{},"That is honestly the biggest compliment I can give a chair.",[11,309,310],{},"No sagging, no creaking, no spot where the upholstery gives up. The adjustments stay where I set them and stay there.",[24,312],{},[11,314,315],{},"A chair that still holds like day one after two years does not stand out in everyday life. And it is not supposed to.",[11,317,318],{},"It was simply the place where I work. It did not need any more thought than that.",[41,320,322],{"id":321},"what-broke","What broke",[11,324,325],{},"And then something does break after all.",[11,327,328],{},"The top part of the 5D armrest, the piece that normally adjusts in every direction, gave up. Not dramatic, but clearly off.",[11,330,331],{},"While looking for a fix I stumbled over something I had not been aware of at all: Backforce gives a ten year warranty on everything that is not a wear part.",[11,333,334],{},"And the armrest pad does not count as a wear part.",[41,336,338],{"id":337},"the-warranty-claim-that-won-me-over","The warranty claim that won me over",[11,340,341],{},"This is where it gets concrete, and this is where the chair actually won me over.",[147,343,344,350,356],{},[150,345,346,349],{},[33,347,348],{},"Thursday evening"," I opened the warranty claim.",[150,351,352,355],{},[33,353,354],{},"Friday at 10 am"," the reply came that the replacement part was on its way.",[150,357,358,361],{},[33,359,360],{},"Five days later"," I had everything at home to repair the chair myself.",[11,363,364],{},"No back and forth, no two week proof of purchase ping pong, no hotline handing me off to another hotline first.",[24,366],{},[11,368,369],{},"I did have to fix the defect myself, that is true. But the part was there, it fit, and afterwards the chair was as good as before.",[11,371,372],{},"This is exactly the moment you find out whether a manufacturer is only friendly while you are buying, or afterwards too.",[41,374,194],{"id":193},[147,376,377,380,383,386],{},[150,378,379],{},"It is not indestructible. My broken armrest pad is living proof.",[150,381,382],{},"You have to repair it yourself. No technician shows up, a package does. If you have no appetite for screwing things back together, know that.",[150,384,385],{},"It is not cheap. North of 600 euros you pay for build quality, adjustability and, as it turns out, for support that actually delivers.",[150,387,388],{},"Ten years of warranty sounds big, but it means the chair without wear parts. Castors, for example, are excluded. The first three years are full warranty, after that it runs on until the tenth year.",[41,390,392],{"id":391},"would-i-buy-it-again","Would I buy it again?",[11,394,395],{},"Yes. And honestly more now than before the repair.",[11,397,398],{},"Before, it was just a good chair I sit in. Now I also know what happens when something does break. For a piece of furniture you use daily and pay a lot for, that matters at least as much as the seating comfort.",[24,400],{},[11,402,403],{},"For people looking for an ergonomic chair for the home office or the office who want a few years of peace, the Backforce One Plus is a very solid choice.",[11,405,406],{},"For anyone who just wants the cheapest chair on the shelf, of course not.",[11,408,409],{},"In the end it is almost paradoxical: what convinced me was not that nothing ever breaks. It was how calmly it went when something finally did. And that is pretty good stuff.",{"title":242,"searchDepth":243,"depth":243,"links":411},[412,413,414,415,416],{"id":303,"depth":246,"text":304},{"id":321,"depth":246,"text":322},{"id":337,"depth":246,"text":338},{"id":193,"depth":246,"text":194},{"id":391,"depth":246,"text":392},"Hardware","2026-08-16","My experience with the Backforce One Plus after 2.5 years: a good office chair, but the real story is the warranty claim and how fast support actually was.","\u002Fimages\u002Farticles\u002Fbackforce-one-plus-cover.webp","https:\u002F\u002Fwww.backforce.gg\u002Fproduct-detail-plus",{},"\u002Fzeug\u002Fbackforce-one-plus",{"title":285,"description":419},"zeug\u002Fbackforce-one-plus",[427,428,429,430,431,432,433],"backforce one plus","backforce","bürostuhl","gaming stuhl","ergonomischer stuhl","garantie","erfahrung","Two years of just being a good chair. And when something did break, support was faster than any expectation. That is exactly why I would buy it again.","rings","YIdbj8rf7s_NpkmYFgWATOfZJBYWvZIcJM4qopwCCfk",{"id":438,"title":439,"badge":440,"body":441,"category":624,"date":625,"description":626,"draft":254,"extension":255,"image":627,"link":628,"linkText":258,"meta":629,"navigation":260,"path":630,"pinned":254,"publishTime":631,"seo":632,"stem":633,"tags":634,"verdict":643,"visual":280,"__hash__":644},"zeug_en\u002Fzeug\u002Fsurefeed-mikrochip-futterautomat.md","SureFeed Microchip Pet Feeder: how three cats finally eat their own food","Game Changer",{"type":8,"value":442,"toc":616},[443,446,449,451,454,457,460,462,465,468,471,475,482,485,487,490,493,496,500,503,505,508,511,515,518,520,523,526,528,531,534,538,570,572,575,578,580,583,586,588,591,594,597,600,602,605,607,610,613],[11,444,445],{},"For years, I stood next to the bowls at every meal.",[11,447,448],{},"Purely as a supervisor, because otherwise the fastest cat clears all three bowls.",[24,450],{},[11,452,453],{},"We have three cats, and they eat so differently that \"just put down three bowls\" has never worked as a plan.",[11,455,456],{},"Two of them eat slowly, spread across the whole day. Both need a specific food because of physical conditions, one hypoallergenic, one gastrointestinal. There is no room to negotiate on that.",[11,458,459],{},"The third one eats everything. At roughly three times the speed.",[24,461],{},[11,463,464],{},"Anyone who has run a multi-cat household with two prescription diets knows how that ends. The fast cat finishes her portion before the others have properly started, then chases them off their bowls and eats their food too.",[11,466,467],{},"So there were two options. Stand there until everyone is done. Or sort the cats into separate rooms for every meal.",[11,469,470],{},"Both work. Both are ridiculous in the long run.",[41,472,474],{"id":473},"what-the-surefeed-actually-does","What the SureFeed actually does",[11,476,477,478,481],{},"The ",[33,479,480],{},"SureFeed Microchip Pet Feeder"," from Sure Petcare dispenses no food at all, despite the name. It is a bowl with a lid and a chip reader.",[11,483,484],{},"When the right cat stands in front of it, the lid opens. When she steps away, it closes again.",[24,486],{},[11,488,489],{},"What it reads is the microchip the cat already carries under her skin. The feeder handles the usual chip formats, 9, 10 and 15 digits, and stores up to 32 animals. For a cat without a chip, an RFID collar tag is included.",[11,491,492],{},"You also get a normal bowl, a split bowl for two kinds of food and a mat for whatever ends up next to it. Capacity is 400 ml, so two pouches of wet food fit.",[11,494,495],{},"Power comes from four C cell batteries that last at least six months according to the manufacturer. So the bowl can sit where the cat eats anyway, rather than wherever the nearest socket happens to be.",[41,497,499],{"id":498},"setup-minutes-if-your-cats-are-chipped","Setup: minutes, if your cats are chipped",[11,501,502],{},"All three of ours are chipped, so setup was unremarkable. Press the button, let the cat eat, chip stored.",[24,504],{},[11,506,507],{},"For nervous animals there is a training mode where the lid stays put at first and then moves further in stages, until the cat accepts the sound.",[11,509,510],{},"That barely mattered here. Where there is food, skepticism turns out to be negotiable pretty fast.",[41,512,514],{"id":513},"what-changed-day-to-day","What changed day to day",[11,516,517],{},"Feeding is no longer an event.",[24,519],{},[11,521,522],{},"The two slow eaters can take their time. Their food sits out in the open and is still unreachable for the third one.",[11,524,525],{},"Between bites the lid is closed, so the wet food does not dry out. For cats that keep coming back over several hours, that matters more than any other feature.",[24,527],{},[11,529,530],{},"And I no longer stand there.",[11,532,533],{},"That sounds like a small thing, but it is the entire difference. Before, every meal was an appointment I had to attend. Now it is just food, sitting there.",[41,535,537],{"id":536},"what-i-like-about-it","What I like about it",[147,539,540,546,552,558,564],{},[150,541,542,545],{},[33,543,544],{},"The key is already inside the cat."," No collar, no tag, no accessory to lose.",[150,547,548,551],{},[33,549,550],{},"It solves exactly one problem, and solves it properly."," Who eats which food is no longer up for negotiation.",[150,553,554,557],{},[33,555,556],{},"Prescription food becomes reliable again."," With hypoallergenic or gastrointestinal food, it genuinely matters whether the right cat ends up with the right food inside her.",[150,559,560,563],{},[33,561,562],{},"The split bowl is a thoughtful touch."," Wet and dry side by side, without the two developing a shared consistency.",[150,565,566,569],{},[33,567,568],{},"It needs no attention."," No app, no firmware, no account. Batteries in, cat registered, done.",[41,571,194],{"id":193},[11,573,574],{},"Now the part that actually annoys me.",[11,576,577],{},"One of our cats eats like a toddler. With commitment, and in every direction.",[24,579],{},[11,581,582],{},"When gravy runs past the bowl insert and works its way into the gaps of the housing, it gets unpleasant. The bowl can go in the dishwasher, the mat and lid are hand wash. But the housing must never go in water, you only wipe it with a damp cloth. And taking the whole thing apart only works with a lot of patience and a feel for it. It certainly does not feel like the manufacturer had disassembly in mind.",[11,584,585],{},"With dry crumbs, none of this matters. With dried gravy in an edge your finger cannot reach, it does.",[24,587],{},[11,589,590],{},"Three more things worth knowing beforehand.",[11,592,593],{},"It does not portion anything. \"Feeder\" here only means controlled access. If you want a device that serves breakfast at seven on its own, you want something else.",[11,595,596],{},"It costs around €130, and in a household with several cats you rarely buy just one.",[11,598,599],{},"And it manages the bowl, not the mood in the room. A cat that sits down next to it and waits will still sit there. The lid stays shut, but the device does not do social work for you.",[41,601,392],{"id":391},[11,603,604],{},"Immediately.",[24,606],{},[11,608,609],{},"For a single cat it is probably a luxury, unless the wet food should stay fresh longer or somebody who is not allowed a snack keeps taking one. A dog in the house counts here too.",[11,611,612],{},"For a household with several cats, one of which eats fast while the others need a specific food, it is close to irreplaceable.",[11,614,615],{},"You will never get it properly clean. But it took over a job I did myself for years, and did it worse than the feeder does.",{"title":242,"searchDepth":243,"depth":243,"links":617},[618,619,620,621,622,623],{"id":473,"depth":246,"text":474},{"id":498,"depth":246,"text":499},{"id":513,"depth":246,"text":514},{"id":536,"depth":246,"text":537},{"id":193,"depth":246,"text":194},{"id":391,"depth":246,"text":392},"Gadget","2026-08-06","My experience with the SureFeed Microchip Pet Feeder in a house with three cats, two prescription diets and one cat that eats three times as fast as the others.","\u002Fimages\u002Farticles\u002Fsurefeed-mikrochip-futterautomat-cover.webp","https:\u002F\u002Flink.amazon\u002FB0d9kTjzO",{},"\u002Fzeug\u002Fsurefeed-mikrochip-futterautomat","11:00",{"title":439,"description":626},"zeug\u002Fsurefeed-mikrochip-futterautomat",[635,636,637,638,639,640,641,642],"surefeed","surefeed mikrochip futterautomat","futterautomat mit chip","mehrkatzenhaushalt","katzen","spezialfutter","sure petcare","futterneid","I no longer stand next to the bowls keeping track of who empties which one. Every cat gets her own food, including the slow one.","Pkf3r5HzcKMaYBDCRmwrKMGyyqdiAage_b9-LQHrPtA",{"id":646,"title":647,"badge":440,"body":648,"category":624,"date":896,"description":897,"draft":254,"extension":255,"image":898,"link":899,"linkText":258,"meta":900,"navigation":260,"path":901,"pinned":254,"publishTime":902,"seo":903,"stem":904,"tags":905,"verdict":916,"visual":435,"__hash__":917},"zeug_en\u002Fzeug\u002Ftrmnl-bwry.md","TRMNL BWRY: An E-Ink Display Against Expired Yogurt",{"type":8,"value":649,"toc":888},[650,653,656,658,661,664,668,671,674,677,679,686,689,692,694,697,700,703,707,710,713,715,718,726,728,731,734,738,741,744,747,749,756,759,762,764,767,770,777,781,784,787,789,815,817,820,823,825,828,830,862,866,869,871,874,877,879,882,885],[11,651,652],{},"There is this moment that probably everyone knows.",[11,654,655],{},"You clean out the fridge, and in the back left corner sits a yogurt that expired eleven days ago. Bought with good intentions. Forgotten with a system.",[24,657],{},[11,659,660],{},"For a long time I blamed my character.",[11,662,663],{},"By now I believe: it is a data problem.",[41,665,667],{"id":666},"the-expiry-date-lives-in-the-worst-database-in-the-world","The expiry date lives in the worst database in the world",[11,669,670],{},"The information exists.",[11,672,673],{},"Every package has a best-before date. Printed tiny, preferably on a fold, preferably facing away from the door, behind the milk, at five degrees.",[11,675,676],{},"To know what needs eating this week, I would have to open the fridge and rotate every single package. Nobody does that, obviously.",[24,678],{},[11,680,681,682,685],{},"One quick word in defense of the date: I am fully aware that a ",[33,683,684],{},"best-before"," date is not an expiry date. It says best before, not deadly after. Yogurt does not turn at midnight, and hard cheese and mustard are still laughing about it weeks later.",[11,687,688],{},"The number is useful anyway, because it is the only one I have to sort what needs eating first.",[11,690,691],{},"And with genuinely perishable things, the joking stops. Ground beef and fresh fish do not carry a best-before date, they carry a use-by date, and that one means it. Those are exactly the items I want to keep an eye on before I have to start sniffing a package.",[24,693],{},[11,695,696],{},"We tried a note on the fridge door. The note itself expired after four days.",[11,698,699],{},"And there are plenty of pantry-tracking apps. But an app I have to actively open is an app I do not open. Certainly not at six in the evening with a pan in one hand.",[11,701,702],{},"So the problem was never missing information. The problem was that the information was never where the what-are-we-cooking decision actually happens.",[41,704,706],{"id":705},"so-i-built-a-fridge-tracker","So I built a fridge tracker",[11,708,709],{},"The first half of the solution is a small self-built web app.",[11,711,712],{},"After grocery shopping, everything gets scanned: barcode in front of the phone camera, the app pulls name and picture from Open Food Facts, I type in the expiry date, done. Over time it even learns how long a product typically lasts in our house and suggests the date right away.",[24,714],{},[11,716,717],{},"For things without a barcode, like the fresh meat from a HelloFresh box, there is the photo path: take a picture, a vision model reads name, quantity, and expiry date off the packaging, and I confirm.",[11,719,720,721,725],{},"Confirm is the important word here. The AI may suggest, but it never writes anything silently. If the date was hard to read, it honestly says so. Same rule as my ",[15,722,724],{"href":723},"\u002Fen\u002Fzeug\u002Fgmail-zu-kalender","Gmail-to-Calendar automation",": AI detects, I decide.",[24,727],{},[11,729,730],{},"And when something leaves the fridge, there are exactly two buttons: eaten or thrown away.",[11,732,733],{},"More on that later. That button is meaner than it looks.",[41,735,737],{"id":736},"why-an-e-ink-display-of-all-things","Why an e-ink display, of all things",[11,739,740],{},"Now the honest part: the app alone would not have solved the problem.",[11,742,743],{},"See above, apps have to be opened.",[11,745,746],{},"The list had to go where the decision happens: onto the kitchen wall.",[24,748],{},[11,750,751,752,755],{},"That is exactly where the ",[33,753,754],{},"TRMNL BWRY"," now hangs. A 7.5-inch e-ink display that can do exactly four colors: black, white, red, and yellow. Hence the name. It runs for months on battery, does not glow, does not hum, and wants no attention. It just hangs there as a calm piece of information.",[11,757,758],{},"Four colors sounds like very little.",[11,760,761],{},"For a fridge, it is exactly the right amount: red means expired or due today. Yellow means the next three days. Everything else can stay black and white and quietly wait its turn.",[24,763],{},[11,765,766],{},"At the very bottom there is a black bar with the next bin collection days: organic, recycling, paper, general waste. If a bin is due within the next two days, it gets a yellow highlight. That is also one of those things you somehow always need to know exactly when you are standing in the kitchen.",[11,768,769],{},"Technically, TRMNL is pleasantly open. There are ready-made plugins for calendars, weather, and the like, but also private plugins: the display fetches JSON from your own endpoint at fixed intervals and renders your own template. My endpoint serves the fridge list, sorted by due date.",[11,771,772,773,36],{},"The app behind it is a small Nuxt project and runs where my TypeScript things always end up: on ",[15,774,776],{"href":775},"\u002Fen\u002Fzeug\u002Fvercel-typescript-hosting","Vercel",[41,778,780],{"id":779},"what-actually-changed","What actually changed",[11,782,783],{},"The everyday effect is unspectacular, and that is exactly why it works.",[11,785,786],{},"You walk over for morning coffee and see in passing: two things due soon. Dinner surprisingly often gets planned off the display now. Fine, tonight it is the thing with the bell pepper.",[24,788],{},[147,790,791,797,803,809],{},[150,792,793,796],{},[33,794,795],{},"The information is where the cooking happens."," No opening an app, no thinking, a glance in passing is enough.",[150,798,799,802],{},[33,800,801],{},"Red and yellow work instantly."," Nobody reads tables on a kitchen wall. A colored edge on the row is plenty.",[150,804,805,808],{},[33,806,807],{},"One push a day, no more."," Every phone can set its own time and its own look-ahead window. No notification machine-gun fire.",[150,810,811,814],{},[33,812,813],{},"The stats keep you honest."," Eaten or thrown away turns into a waste rate and a small hall of shame of the most frequently discarded products.",[24,816],{},[11,818,819],{},"That last point is the one that got me.",[11,821,822],{},"A number telling you what percentage of tracked food ended up in the bin does not argue. It just hangs there. And it has actually been dropping since the display went up, because the soon-to-expire things now get eaten instead of discovered.",[41,824,194],{"id":193},[11,826,827],{},"The setup is good. It is not magic.",[24,829],{},[147,831,832,838,844,850,856],{},[150,833,834,837],{},[33,835,836],{},"Tracking stays manual."," Every product has to be scanned or photographed. Stop doing that after two weeks and you own a very calm display with very wrong data.",[150,839,840,843],{},[33,841,842],{},"There is no magic camera in the fridge."," Nothing automatically detects what goes in or out. The display only shows the truth you gave it beforehand.",[150,845,846,849],{},[33,847,848],{},"E-ink is calm, not fast."," The display updates at fixed intervals, and a color refresh is a short, visible flicker. Completely irrelevant for an expiry list, fatal for real-time dreams.",[150,851,852,855],{},[33,853,854],{},"Without the tinkering itch, you miss the best part."," The TRMNL works fine with ready-made plugins. But this exact fridge setup cannot be bought, it has to be built or copied.",[150,857,858,861],{},[33,859,860],{},"BWRY is a limited edition."," If you cannot get one anymore: the regular black-and-white TRMNL does the same job, just without red and yellow. It works, but loses half the point.",[41,863,865],{"id":864},"would-i-recommend-it","Would I recommend it?",[11,867,868],{},"Yes, with one clear footnote.",[24,870],{},[11,872,873],{},"The TRMNL BWRY is great for people who have a real recurring information problem and enjoy solving it with a small tool of their own. The fridge is my case. For others it is the calendar, the weather by the bike rack, or the train to work.",[11,875,876],{},"It is wrong for anyone expecting technology to solve the problem without any personal discipline. The display does not make anyone tidier. It just mercilessly shows how tidy you currently are.",[24,878],{},[11,880,881],{},"For me, that is precisely the point.",[11,883,884],{},"The TRMNL does not make anything smarter. It just hangs the right information on the right wall.",[11,886,887],{},"And sometimes that is exactly what good stuff looks like.",{"title":242,"searchDepth":243,"depth":243,"links":889},[890,891,892,893,894,895],{"id":666,"depth":246,"text":667},{"id":705,"depth":246,"text":706},{"id":736,"depth":246,"text":737},{"id":779,"depth":246,"text":780},{"id":193,"depth":246,"text":194},{"id":864,"depth":246,"text":865},"2026-08-02","My experience with the TRMNL BWRY as a kitchen display for a self-built fridge tracker: expiry dates, bin collection days, and an honest food-waste stat.","\u002Fimages\u002Farticles\u002Ftrmnl-bwry-cover.webp","https:\u002F\u002Ftrmnl.com",{},"\u002Fzeug\u002Ftrmnl-bwry","09:00",{"title":647,"description":897},"zeug\u002Ftrmnl-bwry",[906,907,908,909,910,911,912,913,914,915],"trmnl","trmnl bwry","e-ink display","epaper dashboard","fridge tracker","expiry dates","food waste","diy","self-built","nuxt","Four colors, one glance while getting coffee, and expired yogurt went from the rule to the exception in our house.","kqwF_7WEOlUEBc-3TePUqOGpMSljsjOK7vYtRkg-66w"]