<?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: Sergey Baus</title>
    <description>The latest articles on DEV Community by Sergey Baus (@sergeybaus).</description>
    <link>https://dev.to/sergeybaus</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%2F2010660%2F2058881f-a6bf-4736-b031-98c66e22977a.jpg</url>
      <title>DEV Community: Sergey Baus</title>
      <link>https://dev.to/sergeybaus</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sergeybaus"/>
    <language>en</language>
    <item>
      <title>How one day turns into a dream</title>
      <dc:creator>Sergey Baus</dc:creator>
      <pubDate>Sat, 07 Nov 2026 00:23:42 +0000</pubDate>
      <link>https://dev.to/sergeybaus/how-one-day-turns-into-a-dream-4dck</link>
      <guid>https://dev.to/sergeybaus/how-one-day-turns-into-a-dream-4dck</guid>
      <description>&lt;p&gt;Every morning, Baus takes the traces of the previous day and turns them into one image. Not a report, and not an illustration of the main event. More like a dream where conversations, purchases, work, random objects, and thoughts I will return to later all end up next to one another.&lt;/p&gt;

&lt;p&gt;July 23 is a good example of how this works. The day accumulated 18 conversation sessions, two daily notes, and four calendar events. They became 12 short stories and 25 items in the main visual vocabulary. The public caption for the image was very short:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Watches · delayed mirror · queue · roll-paper desk&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F40i825tx9s9ia6nged29.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F40i825tx9s9ia6nged29.jpg" alt="A Baus dream based on the events of July 23, 2026." width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The image was published on July 24 in a Telegram Story and on two X accounts. It is a real result of the production process, not a reconstruction made for this article.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What it was made from
&lt;/h3&gt;

&lt;p&gt;That day I wrote that I really liked the square NOMOS Tetra 27. Then I asked to add an original Soviet Raketa 24 Hours and the Luch my grandmother Elena used to wear to the collection.&lt;/p&gt;

&lt;p&gt;I also dictated an observation about Moscow:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;People in Moscow have started queuing even at simple breakfast cafes. I have seen lines of 30 people, 40 people, like in New York or London. It looks very strange and somehow not Russian.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In another conversation, we were coming up with simple physical objects. I liked the mirror that shows your reflection with a five-second delay. Instead of an overly complicated desk with a “Save” button, I suggested a roll-paper desk: you draw on the paper, press a button, and the used section is pulled inside and digitized on the way.&lt;/p&gt;

&lt;p&gt;These were not three stories prepared for the image. They were simply three different conversations during the day. The source also contained household objects, work on a presentation, and several technical tasks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7c9oe6enzfndjgnjehiu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7c9oe6enzfndjgnjehiu.png" alt="Edited source extracts, the intermediate substrate, and four visible motifs in the final image." width="800" height="1031"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Edited source map. Repetition and transcription noise were removed from the quotations; the meaning and wording were preserved. Personal topics not needed for this analysis were left out.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A queue outside a cafe appeared in the left arch of the final image. Three watches lie at the bottom. A screen with a projector stands in the center, with a chair and clothes beside it. On the right, paper passes through a large desktop machine. Other work and household objects remained in the frame too.&lt;/p&gt;

&lt;p&gt;Not every detail can be read unambiguously. The generator does not draw a technical diagram and sometimes combines several source objects into one. That is why the image is stored with the substrate and prompt that were actually used for generation, rather than with an explanation invented afterward.&lt;/p&gt;

&lt;h3&gt;
  
  
  Facts first, image second
&lt;/h3&gt;

&lt;p&gt;If the model receives the whole day as one long log, the most verbose conversation wins. Usually that is technical work. A short human remark or a small object disappears simply because it takes up less text.&lt;/p&gt;

&lt;p&gt;If one main story is selected by hand, a different problem appears. The image becomes a neat illustration of an editorial decision, but it stops being a dream about the whole day.&lt;/p&gt;

&lt;p&gt;So the work is divided into several steps.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Messages, daily notes, and the calendar are collected for one calendar day.&lt;/li&gt;
&lt;li&gt;Transport noise is removed: tool calls, repetitions, service statuses, and answers quoted in full.&lt;/li&gt;
&lt;li&gt;A separate pass writes short factual storylets and a list of concrete things, places, and actions. It does not choose a main story.&lt;/li&gt;
&lt;li&gt;The generator receives all the storylets and the full visual vocabulary. It may change scale and combine spaces, but it must not invent a new event.&lt;/li&gt;
&lt;li&gt;The result, exact prompt, source storylets, caption, dimensions, and hash are stored together. Publication happens separately.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For July 23, the intermediate file contained 12 storylets and 25 items in the main visual vocabulary: three watch models, a queue of 30 to 40 people, a chair with clothes, a mirror and projector, a roll of paper, a scanner, and other things from real conversations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Other days
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe6j02dzb5966fdau22ic.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe6j02dzb5966fdau22ic.jpg" alt="Seven other images from the same series." width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Seven other days from May through August. This is not a complete history of the series or a ranking, but a short sample of its range: a server room, a bright city, a blue ceramic scene, a printed interior, a sterile void, and a small workshop.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The series broke in different ways many times. Sometimes the whole day turned into a server room. Sometimes food took up half the frame. Sometimes repetition of my name produced several identical Sergeys. After an overly strict list of allowed objects, the result for July 22 was clean and almost empty.&lt;/p&gt;

&lt;p&gt;But the main way to understand these failures is always the same: look separately at the source, the intermediate substrate, and the final image. If the next dream turns out to be entirely about watches again, I can check whether the day really was about watches or the generator simply chose the most convenient object.&lt;/p&gt;

</description>
      <category>design</category>
      <category>productivity</category>
      <category>writing</category>
    </item>
    <item>
      <title>telegram-sync-cli: your Telegram chats in a local SQLite cache, for you and your agents</title>
      <dc:creator>Sergey Baus</dc:creator>
      <pubDate>Tue, 20 Oct 2026 15:00:00 +0000</pubDate>
      <link>https://dev.to/sergeybaus/telegram-sync-cli-your-telegram-chats-in-a-local-sqlite-cache-for-you-and-your-agents-13j4</link>
      <guid>https://dev.to/sergeybaus/telegram-sync-cli-your-telegram-chats-in-a-local-sqlite-cache-for-you-and-your-agents-13j4</guid>
      <description>&lt;p&gt;I made telegram-sync-cli, a Telegram command line for you and your agents. It keeps a local cache of your chats and gives you the full Telegram API.&lt;/p&gt;

&lt;p&gt;It logs into your own Telegram account through MTProto, not a bot, with your API ID and hash from my.telegram.org. Then &lt;code&gt;tg&lt;/code&gt; keeps chats, contacts, users and messages in a local SQLite database. A read-only daemon keeps the cache in sync. Sending goes through the CLI, never through the daemon.&lt;/p&gt;

&lt;p&gt;What I like most is how small the questions become. "Where did someone mention Lisbon?" is &lt;code&gt;tg messages search --query lisbon&lt;/code&gt;, a full-text search over the cache. For anything stranger there is read-only SQL with &lt;code&gt;tg sql&lt;/code&gt;, and &lt;code&gt;tg api &amp;lt;method&amp;gt;&lt;/code&gt; calls any Telegram API method directly.&lt;/p&gt;

&lt;p&gt;Output is JSON by default, errors follow a stable schema, and there is a skill integration, so an agent can use it without guessing. It reads from the cache first, &lt;code&gt;--fresh&lt;/code&gt; asks Telegram directly, and it tracks rate limits to help you stay within them.&lt;/p&gt;

&lt;p&gt;It is still early. You need Bun and your own API credentials, media and export aren't there yet, and the roadmap lists known sync gaps.&lt;/p&gt;

&lt;p&gt;It's free and MIT licensed, built with Bun, TypeScript and mtcute. Code and docs: &lt;a href="https://github.com/neoromantic/telegram-sync-cli" rel="noopener noreferrer"&gt;https://github.com/neoromantic/telegram-sync-cli&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The chats in the screenshot are made up.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I wrote this post with help from an AI assistant. The tool is mine, and I checked every fact.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>telegram</category>
      <category>cli</category>
      <category>typescript</category>
    </item>
    <item>
      <title>I built ai-usage to see what's left of shared Claude Code, Codex and Grok subscriptions</title>
      <dc:creator>Sergey Baus</dc:creator>
      <pubDate>Sun, 18 Oct 2026 19:38:43 +0000</pubDate>
      <link>https://dev.to/sergeybaus/i-built-ai-usage-to-see-whats-left-of-shared-claude-code-codex-and-grok-subscriptions-5b98</link>
      <guid>https://dev.to/sergeybaus/i-built-ai-usage-to-see-whats-left-of-shared-claude-code-codex-and-grok-subscriptions-5b98</guid>
      <description>&lt;p&gt;I made ai-usage, a small open-source tool for teams where people, servers and bots share a few Claude Code, Codex and Grok subscriptions.&lt;/p&gt;

&lt;p&gt;The trouble with a shared subscription is that each machine sees only its own part. A limit runs out in the middle of a task, and nobody knows which machine used it or when it comes back.&lt;/p&gt;

&lt;p&gt;ai-usage gathers usage from every machine into one report. You see what is left in each 5-hour and weekly window, when it resets, and how much each machine used. It also estimates, from your own pace, whether a subscription will last until the reset. When something is wrong, an ATTENTION block shows up at the top: a limit that is out, one that will run out early, a machine that went silent.&lt;/p&gt;

&lt;p&gt;Under the hood it is one small binary. The system scheduler runs it every 15 minutes. It reads what the tools already write on disk, asks the installed tools for their quota, and exits. No daemon, no account, no config file. It doesn't call the providers' APIs, so it spends none of your quota. Prompts and code are never sent, and names, emails and project paths are sealed with your team key before they reach the relay.&lt;/p&gt;

&lt;p&gt;There is a menu bar app for macOS 14+, Linux works from the terminal, and &lt;code&gt;ai-usage --json&lt;/code&gt; is there for scripts and agents. To try it on macOS or Linux:&lt;br&gt;
&lt;/p&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://raw.githubusercontent.com/neoromantic/ai-usage/main/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It's free and MIT licensed. Docs and more: &lt;a href="https://au.sergeybaus.com/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=au-launch-2026-10&amp;amp;utm_content=devto-showdev-sharedquota-v1" rel="noopener noreferrer"&gt;https://au.sergeybaus.com/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=au-launch-2026-10&amp;amp;utm_content=devto-showdev-sharedquota-v1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The screenshot shows a made-up team with demo numbers. Forecasts are estimates, not promises.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I wrote this post with help from an AI assistant. The tool is mine, and I checked every fact.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>claude</category>
      <category>ai</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
