<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Marat Muslimov</title>
    <description>The latest articles on DEV Community by Marat Muslimov (@marat_muslimov_cc53373f0a).</description>
    <link>https://dev.to/marat_muslimov_cc53373f0a</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4203848%2F08944246-da9f-4193-8d96-187d0bb02a58.jpg</url>
      <title>DEV Community: Marat Muslimov</title>
      <link>https://dev.to/marat_muslimov_cc53373f0a</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marat_muslimov_cc53373f0a"/>
    <language>en</language>
    <item>
      <title>I put my food diary in the terminal: log meals by text, photo or audio, and pipe the day as JSON</title>
      <dc:creator>Marat Muslimov</dc:creator>
      <pubDate>Sat, 24 Oct 2026 04:27:20 +0000</pubDate>
      <link>https://dev.to/marat_muslimov_cc53373f0a/i-put-my-food-diary-in-the-terminal-log-meals-by-text-photo-or-audio-and-pipe-the-day-as-json-55dp</link>
      <guid>https://dev.to/marat_muslimov_cc53373f0a/i-put-my-food-diary-in-the-terminal-log-meals-by-text-photo-or-audio-and-pipe-the-day-as-json-55dp</guid>
      <description>&lt;p&gt;Foodoo is a food diary app for iPhone and Android, and it now has a CLI that talks to the same account: whatever you log in the terminal shows up in the app at once, and the other way round. If you spend your day in a terminal, logging "coffee with oat milk" no longer means picking up your phone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install and sign in
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://foodoo.fit/install.sh | sh     &lt;span class="c"&gt;# macOS / Linux&lt;/span&gt;
foodoo login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;foodoo login&lt;/code&gt; shows a QR code and a short code. You confirm it in the Foodoo app (or on foodoo.fit) and the terminal gets a token that opens only your diary, water and statistics. The token lives in &lt;code&gt;~/.config/foodoo/config.json&lt;/code&gt;, readable only by you; &lt;code&gt;foodoo logout&lt;/code&gt;, or "Devices and apps" in the app, ends it at once.&lt;/p&gt;

&lt;h2&gt;
  
  
  The interactive diary
&lt;/h2&gt;

&lt;p&gt;Just run &lt;code&gt;foodoo&lt;/code&gt;. Type what you ate in plain words and press Enter: "oatmeal with banana and a flat white". The server reads it and logs the dishes with their numbers.&lt;/p&gt;

&lt;p&gt;You can also drop a photo or an audio file into the terminal window: a picture of your plate, or a voice note saying what you had. Commands for the rest:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/today&lt;/code&gt;, &lt;code&gt;/day -1&lt;/code&gt; — today, or any day&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/water 250&lt;/code&gt; — a glass of water&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/portion 2 150&lt;/code&gt; — set the portion of entry 2 to 150 g&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/delete 2&lt;/code&gt;, &lt;code&gt;/undo&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/stats 30&lt;/code&gt; — the last 30 days&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/usage&lt;/code&gt;, &lt;code&gt;/help&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  For scripts
&lt;/h2&gt;

&lt;p&gt;Every action is also a plain command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;foodoo add &lt;span class="s2"&gt;"two eggs and toast"&lt;/span&gt;
foodoo add &lt;span class="nt"&gt;--photo&lt;/span&gt; lunch.jpg
foodoo water 300
foodoo today &lt;span class="nt"&gt;--json&lt;/span&gt;
foodoo stats &lt;span class="nt"&gt;--days&lt;/span&gt; 30 &lt;span class="nt"&gt;--json&lt;/span&gt;
foodoo &lt;span class="nb"&gt;rm&lt;/span&gt; &amp;lt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exit codes are predictable: 0 ok, 1 failed, 2 bad arguments, 3 not signed in. So a cron job, a status-bar widget or a shell prompt segment can read your day without scraping anything, for example a &lt;code&gt;foodoo today --json&lt;/code&gt; piped into &lt;code&gt;jq&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Environment knobs: &lt;code&gt;FOODOO_LANG=ru|en&lt;/code&gt;, &lt;code&gt;FOODOO_NO_UPDATE=1&lt;/code&gt; (it updates itself once a day otherwise; &lt;code&gt;foodoo update&lt;/code&gt; does it now), &lt;code&gt;NO_COLOR&lt;/code&gt;, and &lt;code&gt;FOODOO_PIXELS=half|full&lt;/code&gt; for how the little pea mascot is drawn.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a CLI for a food diary at all
&lt;/h2&gt;

&lt;p&gt;The app's whole idea is that logging should take seconds, because that's the only way people keep doing it. For people who live in a terminal, the fastest place to log is the terminal. The phone still does the parts a terminal can't: the camera, Apple Health, and the "how did that meal make you feel" question after you eat, which over time shows which foods affect your energy and sleep.&lt;/p&gt;

&lt;p&gt;Premium is bought only in the app; in the terminal it simply works when you have it.&lt;/p&gt;

&lt;p&gt;Docs: &lt;a href="https://foodoo.fit/cli" rel="noopener noreferrer"&gt;https://foodoo.fit/cli&lt;/a&gt;&lt;br&gt;
The app: &lt;a href="https://foodoo.fit" rel="noopener noreferrer"&gt;https://foodoo.fit&lt;/a&gt; (iPhone, iPad, Apple Watch, Android; you can start without an account)&lt;/p&gt;

&lt;p&gt;I'd love feedback from people who'd actually use this: which commands are missing, and what you'd want in the JSON output.&lt;/p&gt;

</description>
      <category>cli</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
