Image 1 — openplate - MIT licensed calorie/food tracker with photo scan (local LLM support), MIT licensed, no paywalled features
Image 2 — openplate - MIT licensed calorie/food tracker with photo scan (local LLM support), MIT licensed, no paywalled features
Image 3 — openplate - MIT licensed calorie/food tracker with photo scan (local LLM support), MIT licensed, no paywalled features

openplate - MIT licensed calorie/food tracker with photo scan (local LLM support), MIT licensed, no paywalled features

Hey everyone,

so I was kinda surprised to see how expensive the popular calorie/food logging apps still are. Given that the individual API calls to identify foods from an image are really cheap at the moment I decided to build an open source alternative to Yazio and CalAI.

I asked family and friends as to what they would like and what the most important features were to them and came up with a set of features for the first version of a food tracking/logging app.

Feature list:

  • id foods from the photo of a plate (multiple at once)
  • be able to input a plate as text or voice, as if you're chatting with someone
  • cross check the foods with a reliable database of nutritional facts so hallucinations are kept low
  • easy to use
  • recipe recommendations for a list of ingredients, photo of the fridge

What the self-hoster in me wanted:

  • No reliance on the appstores, but a great UX (Progressive Web App)
  • Easy to self-host
  • Easy to replace upstream inference provider, also the possibility to use a local LLM
  • Stay in control of my data
  • Be able to invite my family to an instance I manage, so they dont have to signup to openrouter etc.

I had a first demo of this running quite fast and then met a research assistant for an obesity center and learned about their issues with patients and food logging. Obviously the existing solutions solve most of these, but they are paid and institutions can't host them on their own infra. So this led me down the path of splitting up the app into three distinct services.

The client app, can be run as a PWA within your network, you can add your key (BYOK) for any openai compatible API. The data stays in the browser, can be exported or synced through an encryption key with a sync server.

The core app, this app started off as a sync server for client apps, but turned into something like a gateway. You can run this in different modes, one of which is a managed gateway mode, for example to set up an instance for your family. The thought here is you have this running on your own network, configure an API key once and can then invite your friends to use (tailnet or whatever frontdoor youre using), they install the PWA and have an almost-native like app experience.

The inference runtime, if you want to self-host the inference and image recognition, I've setup a service for that too. This uses llama.cpp under the hood and does some pre-procesing for more accurate image identification. Ony my really crappy hardware ryzen 9 and 64gb this took around 180s per image, so you definitely need the hardware for this to make sense.

Once all of these were wired together and I had a better understanding of what the product needs to support, I developed a more polished version and invited family and friends to try this out and report bugs. This was basically the last 4 weeks. I now feel comfortable to open this up to everyone.

There is a project website that explains the stack in more detail and hosts the docs outside of github via https://openplate.de

The repository contains installation instructions and everything else you need via: https://github.com/LowCarbCheck/openplate (includes the compose or quadlet files).

Tech stack:

  • React Router, Vite, Tailwind + Shadcn
  • PostgreSQL
  • Docker/Podman
  • llama.cpp for local inference

Disclaimer: There is a hosted/paid version with a free trial that is linked to from the project website, but that's totally optional, no paywalled features and self-hosting should be easy enough (requires an API key or a local LLM though).

Looking forward to feedback on the app itself and how setting it up goes for everyone. Here to help if you're facing issues running this, also happy to accept PRs on GitHub!

u/telasch — 13 days ago

A PWA to manage herdr/tmux/zellij sessions remotely

Sharing the PWA[1] I built over the last couple of weeks to access my terminal sessions/agents when not in front of my computer. This started off as a weekend experiment right when herdr[2] (terminal multiplexer) released the functionality to write custom plugins and it's been quite helpful to me ever since. The general idea is that this runs a web app on the host machine which is then exposed through a front door implementation like tailscale/netbird/cloudflare tunnels etc.

A lot of devs/teams are building sth very similar to this right now so there are many options out there already but I wanted: A PWA (no app store dep), better keyboard support than termux, the ability to manage multiple machines and easy integration with my existing tailnet via headscale.

Some of the other features - Push notifications - Support for tmux and zellij (experimental). - Voice transcriptions (Codex sub or API) - Custom commands

You can check out a live demo with dummy data on the website[1] or look at the implementation on Github[3] (PRs welcome).

Looking forward to receiving some feedback or learning more about how people access/work with their agents on the go. Also if you encounter any bugs please report them on Github, if a feature is missing you'd really want to see, open a discussion.

[1] https://colliepwa.dev
[2] https://herdr.dev
[3] https://github.com/AltanS/collie

colliepwa.dev
u/telasch — 1 month ago
▲ 0 r/tmux

experimental tmux mobile agent bridge

so i've built a PWA for the last couple of weeks to access my agents and terminals from the go. in its current state this depends on a multiplexer running on the host and i've now implemented an experimental tmux integration.

would love to know how people are using tmux for agents and if im maybe missing an obvious way of improving the ergonomics here. or if established tmux workflows are breaking the implementation etc.

the very tldr architecture is that i'm installing hooks in the agent harness configs (claude code, codex) to send events to a service running on the host, this allows to me track the status. i think this is how almost all agent ides are setup these days.

the app is a simple web app that can be exposed through whatever front door you use (i.e. tailscale). and overall it's been quite helpful to myself when im not in front of the computer to keep things moving along.

https://github.com/AltanS/collie

u/telasch — 1 month ago
▲ 15 r/zellij

Mobile agent bridge for zellij - MIT licensed self hostable PWA

over the last couple of weeks i built a mobile bridge to access my terminal multiplexer remotely and have some improved ergonomics when working with agents (command completion, alerts, push notifications). it is a bun service on loopback plus a web client, reached from my phone over tailscale.

there are some solutions in this space already, so this is my own interpretation of it. but would love to hear your thoughts and feedback on how this could be improved for zellij.

status quo:

- content pushes fine. `zellij subscribe --ansi --format json --pane-id <id>` follows several panes at once and emits newline-delimited JSON on every repaint.

- structure does not push at all. Nothing in the CLI announces a new pane or a renamed tab, so I poll `list-panes --json` and `list-tabs --json`

Is `zellij pipe` with a small plugin the right route for topology events, or is there a CLI verb I missed?

Repo: https://github.com/AltanS/collie

Zellij instructions https://github.com/AltanS/collie/blob/main/docs/multiplexers.md#pointing-collie-at-zellij

u/telasch — 1 month ago

Asking friends and family right now for screenshots of their claude.ai/#settings/usage page

u/telasch — 3 months ago