Skip to content
Bot jobsJob breakdowns

My Text Expander has a Desk

I used to hunt for a YAML file the way I hunt for the spare house key. Now I text the clerk who keeps it. There is a drawer in every kitchen that knows too much. Batteries that might still work. A USB

bfrenchImported from X6 min read
bfrenchx article
See this runHouse 281 · 00381

Article

Job breakdowns

I used to hunt for a YAML file the way I hunt for the spare house key. Now I text the clerk who keeps it.

There is a drawer in every kitchen that knows too much.

Batteries that might still work. A USB cable of unknown loyalty. Receipts from a life you no longer lead. And, somewhere under the takeout menus, the spare house key — the one you swore you put right there the last time you needed it.

For years, my text expander lived in that drawer.

Espanso is a local text expander. You type a short trigger; it pastes the expansion you meant. Snippets. Matches. The little automations that keep your fingers from becoming a stenography museum. I like it because it is mine: files on my machine, conventions I chose, no cloud committee deciding what addr expands to.

Espanso is a local text expander. You type a short trigger; it pastes the expansion you meant. Snippets. Matches. The little automations that keep your fingers from becoming a stenography museum. I like it because it is mine: files on my machine, conventions I chose, no cloud committee deciding what addr expands to.

I also, for years, managed it like a man who insists the key is in the drawer while the pizza cools on the porch.

Settings Pilgrimage

Settings Pilgrimage is the ritual of leaving the work to visit the tool that was supposed to help you do the work.

Find the match folder. Confirm which base.yml is live — the Obsidian copy under systems, symlinked into Espanso’s match dir, not a stale checkout you edited last Tuesday and then wondered why nothing fired. Open the file. Preserve the house style: a short comment, then trigger, then replace, quotes and spacing exactly as the file already breathes. Check that your new trigger does not collide with a shorter one that will fire first. Save. Restart. Discover you were not done. Edit again. Restart again. Feel the tiny shame of a grown adult performing filesystem archaeology for a three-character snippet.

None of that is hard. All of it is expensive. The cost is not YAML. The cost is context: leaving the sentence you were writing to become a part-time sysadmin for a tool whose entire job is to keep you in the sentence.

I was not confused about Espanso. I was confused about who should own the pilgrimage.

Hire a Snippet Clerk

So I hired one.

Not a product. Not a settings panel with better typography. A dedicated Grok Bot agent named Espanso Assistant. Its job title, if agents get those, is Snippet Clerk: the coworker who already knows where the live file is, how the YAML wants to look, and when — only when — to restart the expander.

I tell it what I want. It reads the live matches. It keeps my comment-plus-trigger-plus-replace habit — short section labels that match how the vocabulary actually lives, not a dump of every personal trigger — instead of “improving” the file into someone else’s aesthetic. Then it waits for the mode I meant.

That is the whole romance. Or it was, until I noticed the clerk had more than one gear.

I love this assistant for a reason that sounds smaller than it is: it dynamically modifies the snippets without locating the document, editing it, saving it, restarting Espanso, and the rest of the drawer excavation. It does it all as One Process — one conversation that owns the lifecycle end to end, so chat becomes the control surface and the YAML stays a file instead of a pilgrimage destination.

Four Modes of the Snippet Clerk

Once you hire the clerk, you learn he does not only take dictation. He has Four Modes — same desk, different jobs, all of them waiting for my nod before the file moves or Espanso restarts.

Edit. Smallest change that does the thing I asked. Report the trigger and the replace. No restart yet. The pizza is still on the porch; we are not opening the door for every crumb.

Hygiene. Collisions. Shadowing. Missing trailing spaces. Duplicate expands that will bite you at the worst moment. He reports the mess. He fixes only what I approve. The clerk is not a vigilante with a mop.

Scout. He watches the stack — the phrases I keep typing, the living vocabulary that already has a home in section comments like grok fleet or home / infra — and proposes new triggers: trigger, replace, section. Never auto-adds. Waits for yes on the batch. Scout is a suggestion, not a surprise party in my YAML.

Done pack. When I say I am done: validate, summarize, then restart — Espanso stop, then open -a Espanso — and confirm status. That is the only mode that touches the restart ritual. Edit, Hygiene, and Scout stay quiet until I close the batch.

Four modes. One Process. The drawer stays shut until I ask him to open it.

The tool that used to live in a folder

Here is what did not change.

Espanso is still Espanso. Local. Snippets I already chose. My conventions. My Obsidian systems path doing double duty as the source of truth. The agent did not invent a new expander. It did not write my expansions for me while I stared at the ceiling. It operates the tool I already picked, the way I already run it.

That distinction matters more than the demo reel.

The industry keeps selling “AI writes for you” as if the bottleneck were empty pages. My bottleneck was a tool I already loved, sitting behind a fiddly file and a restart ritual. The Snippet Clerk is not a ghostwriter. It is a desk for a tool that used to live in a folder.

Agent Desk is the pattern: give a local tool with fiddly files and a restart ceremony its own specialist, so the human stops being the paste buffer between intention and configuration. Grok Bot agents can own one tool’s lifecycle. Not every tool. One. The one whose Settings Pilgrimage you have already walked barefoot one time too many.

Once you see the desk, you start seeing candidates. Anything with a live config, a house style, a “don’t reorder the unrelated bits,” and a restart that must not fire mid-batch. Text expanders. Dotfiles that punish improvisation. Local matchers and watchers that only forgive you after a clean stop-and-start. The pattern is not “automate everything.” The pattern is “stop making the expert do clerk work for a tool they already understood.”

Fake-out, then the real claim

This is not a tutorial. I will not paste my match list. I will not narrate every YAML indent like a museum tour. But, I will share the bot.

https://x.ai/bot/FYLpi6JHyJO0v3RD0AVo4

This is also not a corporate love letter to agent platforms. I am not asking you to replace your stack with a fleet of bots. I am saying something narrower and, to me, more useful.

I already had a good tool. What I lacked was a durable operator for the boring half of loving it.

Casual credential: I have spent enough years in product rooms to recognize when a demo is selling magic and when a workflow is selling back your afternoon. Espanso Assistant sells back the afternoon. It does not sell a new religion. Trigger in, expansion out, clerk in the middle, restart on my say-so. Warm. Sharp. Domestic.

Punch triad, since I promised myself one:

  • The key was never lost.

  • The drawer was the wrong interface.

  • The clerk was the missing piece of furniture.

Close the Drawer

I still know where the file lives. Once, as texture: the live matches sit in Obsidian under systems, symlinked into Espanso’s match folder as base.yml. I can open it. I almost never need to.

That is the point of furniture. You do not celebrate the desk every morning. You put the work on it and walk away less often to dig through batteries and mystery cables.

My text expander has a desk now. The Snippet Clerk keeps the spare key. When I need a new trigger, I do not perform Settings Pilgrimage. I ask. One Process answers. The pizza stays hot. The porch light can wait.

Hire the clerk. Leave the drawer for the batteries that might still work.

Published on grokbot.sh. Cite the public log, not a prompt pack.

Command Menu

My Text Expander has a Desk | grokbot.sh