blurt_build log

the build log · from the repo's history

From one tile to two modes
in two weeks

blurt started on 10-16-2026 as ramble-mobile, a phone take on a PC dictation program. Every entry below comes from the commits of that day. Dates are month-day-year.

10-16-2026day one · 12 commits

A widget that turns dictation into tasks

The first version was one home-screen tile with an inline waveform. It sent itself a few seconds after the dictated words stopped changing, then cleared the box. It came with a one-command installer, a doctor that checks everything, and instructions for the Claude Code session on the phone, so setting it up is one spoken sentence.

  • A media-player card. A pixel-mic art panel, a live transcript line, a fading wave, a timer and a red record button, using only theme colour names and the launcher's corner style. The design reference went into the repo for the phone session to compare against.
  • A full-screen view. The red button opens it, because the keyboard can only be raised automatically inside a full screen. It shows the words large and closes after showing what was added.
  • Tests on the real interpreter. 13 tests drive the widget's own handlers against a fake host, including the shell command run through real bash with hostile sentences. Three deliberately broken copies of the widget were each caught.
  • Pairing with a 6-digit code. Setup stopped asking for a pasted token: the phone types the authenticator's code once and the server gives it its own token. A test that had reached the real server was sealed off from the real config.
  • Renamed to blurt. The full-screen view became live task cards that fill in as words arrive, which also fixed squeezed text and controls pushed off-screen by the keyboard. At two columns or less the tile is just the record button.
10-18-20269 commits, 1 of them a revert

Intake mode: keep an idea word for word

A second mode for ideas instead of tasks. blurt-intake saves the dictated idea byte for byte, numbers its sentences, and prints the line that opens a Claude Code session with the owner's rules loaded. Nothing in intake is sent as tasks.

  • The switch. Plain "task / intake" labels did not look tappable, so they became one two-segment toggle with fixed widths. Without the widths, "intake" was squeezed into a vertical strip, which the compiler's screen preview caught.
  • A pick stage, tried and reverted. Opening the view on two big halves, TASK and INTAKE, added a step. It was reverted the same day. Instead, the small 2x2 tile's record disc became two half-discs, so one tap picks the mode and opens the view.
  • Session logs kept. When the intake session exits, its logs are copied into the idea's folder, so they outlive Claude Code's own 30-day cleanup.
10-19-20261 commit

Install steps for a second Linux PC

Written steps to put intake mode on another Omarchy machine, including where the current version is backed up and why a copy of the widget alone reports "not backed up".

10-20-20266 commits

An update button, and a Tailscale check

  • The intake's instructions live in the repo. The session text and the worth gate are pulled fresh on every intake, so editing them changes the next intake on every device without a phone update.
  • Update from the card. A new blurt-update checks, then installs. The button buzzes, shows what it is doing and ignores taps while busy. It says why a fetch failed (name lookup, login, timeout) and never waits for a password. By the end of the day it only appears when an update is actually waiting.
  • Tailscale check before talking. Every six seconds the widget checks the server can be reached. When it cannot, a red line says nothing will send, with a button that opens Tailscale.
10-23-20263 commits · PR #5

The worth gate asks one question first

Every new idea that comes through intake is scored before it gets a plan. The gate's first question is now "does anyone else use it?". If not, the questions about other people are skipped. The gate itself moved to one master copy in the owner's notes, which intake reads, so there is one copy to keep true.

10-31-20261 commit

Verdict: go, and three milestones

blurt went through its own worth gate: use 5, value 5, setup 1, upkeep 1, risk 2, for a worth of 6.3, GO, with no kill date. Its milestones are now M1, two weeks of daily use with no code change; M2, someone else uses it for a week; and LATER. Each has a Proof issue that closes only when it really happened.

rules the repo keeps

What every change has to respect

Secrets never touch the chat

A token or a 6-digit code is only ever typed at setup's own prompt. Nothing prints, logs or echoes one.

Tests never touch the real list

The dry run is the only way to test. It parses a sentence and sends nothing.

The theme decides the colours

The widget uses theme colour names and the launcher's corner style, never fixed colours.

Say what is true

The wave is cosmetic and is never described as hearing audio. What has not been run on the phone is written down as not verified.