blurt_voice to tasks

an omalauncher widget for Focus

blurt_

Talk, and your words become tasks.

A home-screen widget for the omalauncher Android launcher. Open it, say what you need, and stop. A few seconds later the tasks are in your Focus list and the view closes itself.

The blurt widget open on the phone: task and intake tabs at the top, one task reading 'testing', the label 'sending…', clear and update buttons, an orange wave and a round check button
On the phone, in task mode. It wears the launcher theme's colours.

how it works

Five steps, one sentence

The phone version of ramble, a PC program, without the microphone code: the keyboard does the listening.

  1. 01
    keyboard mic

    The keyboard's own dictation turns speech into words. A widget cannot hear the microphone, so blurt has no audio code at all.

  2. 02
    ramble --text

    A few seconds after the words stop changing, the sentence goes to ramble on the phone's Linux side.

  3. 03
    claude -p

    The Claude Code CLI turns the sentence into tasks, run with every tool removed.

  4. 04
    validate

    Its reply is checked field by field before anything is sent.

  5. 05
    add_tasks

    The tasks go to your own Focus server, which only answers over Tailscale.

What leaves the phone

The keyboard's dictation is Google's, so your words go to Google first, then to your Claude account, then to your own server. Nothing else leaves the phone.

The wave is for looks

The bars are drawn from the clock and swell while new words arrive from dictation, which is the real signal. Before your first word arrives the view cannot tell the mic is on, so it stays idle.

two modes

A switch at the top: task | intake

task

Say it, it's on the list

"Buy milk tomorrow at five, and call the dentist, that's urgent." The words appear large as they arrive, then sending, then "Added 2 tasks" for two seconds before the view closes.

The send key sends at once and clear throws the words away. If the server cannot be reached the view stays open with a retry send button.

intake

Talk an idea out, word for word

Nothing is summarized, cleaned or sent. Pause only freezes the timer; done is the big button. The words are saved byte for byte every five seconds.

On done, a Claude Code session opens on the phone already holding your words and your rules. It asks every open question as a tap-through picker, then writes the goal and the plan and makes the repo.

the look

A media-player card on the home screen

On the home screen blurt is a card: the pixel microphone and its name on the left, then the last result, the task | intake switch, a dotted wave, a timer and one round button to start. Talking opens the full view at the top of this page. Every colour is a theme colour name, so it changes with whatever launcher theme you pick.

The blurt card on the phone's home screen: an orange pixel microphone over the words Blurt, Voice to tasks; then 'no tasks in that.', the task and intake tabs, a dotted wave, the timer 0:00 and a round button
The card on the phone, after a test sentence that held no tasks.
The first design reference: a dark card with a cyan pixel microphone, a monospace transcript line, a mint wave, a timer and three player buttons
Where it started: the first design reference, from when the tool was called ramble.

where it stands

Built, now proving itself

worth gate
GO · 6.3
Use 5, value 5, setup 1, upkeep 1, risk 2. No kill date.
task mode
BUILT
13 widget logic tests pass on OWL's own interpreter
intake mode
PHONE TEST
31 script checks pass; the widget still needs its first compile and run on the phone
next milestone
M1
Two weeks of daily use with no code change

See the milestones

install

One sentence, one code

blurt is built for one person's setup: it adds to a Focus list on a server you run yourself. This is how a phone gets it.

Needs

  • An Android phone with omalauncher and its Linux side
  • The Claude Code CLI, logged in, and Python 3 on that Linux side
  • Tailscale on the phone, switched on while you use it
  • Your own Focus server with device pairing

Steps

  1. Open a Claude Code session on the launcher and say:

    Download my repo blurt and set it up.

    It clones the repo and runs the installer. The server address is built in, so it never asks for one.

  2. Switch Tailscale on, then run the one setup command and type the 6 digits from your authenticator app once:

    ! ~/.local/bin/ramble-mobile-setup

    The server gives this phone its own token, saved privately on the phone. No copying, no pasting.

  3. Setup ends with a dry run that parses a sample sentence and adds nothing to your list. The card is now on your home screen.

Updating

An Update button shows on the card only while an update is waiting. The repo is checked at start and every ten minutes; one tap installs. By hand: git pull && ./install.sh.

Something off? ramble-mobile-doctor checks everything and changes nothing.

Working on it from a PC

scripts/owl-check-local.sh runs the real OWL compiler on the widget in a sandbox, in about five seconds. scripts/owl-test-local.sh runs the widget's own handlers against a fake host, hostile sentences included.

Neither draws the widget on a phone, so a look at it on the phone is still part of every change.