<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>MyLiveLab Lab Notes</title>
<subtitle>Current experiments from MyLiveLab</subtitle>
<link href="https://mylivelab.com/lab/feed.xml" rel="self"/>
<link href="https://mylivelab.com/lab.html"/>
<id>https://mylivelab.com/lab/</id>
<updated>2026-10-17T12:00:00Z</updated>
<author><name>Allie Bayless</name></author>
<entry><title>Why My Terminal Apps Are Becoming a Shared Platform</title><link href="https://mylivelab.com/lab/shared-terminal-platform.html"/><id>https://mylivelab.com/lab/shared-terminal-platform.html</id><updated>2026-10-17T12:00:00Z</updated><summary>How the Tide apps are sharing interface components and connecting through TideDeck while remaining useful on their own.</summary><content type="html">&lt;p&gt;I didn't set out to build a terminal application platform. I just wanted a better email client.&lt;/p&gt;
&lt;p&gt;That became TideMail. Then came Tide, TideFTP, TideGit, TideDock, and other projects. Different applications, but I kept solving the same problems: layouts, navigation, themes, text editing, and configuration.&lt;/p&gt;
&lt;p&gt;Eventually, I started asking why I was rebuilding the same things.&lt;/p&gt;
&lt;h2&gt;Sharing the Pieces&lt;/h2&gt;
&lt;p&gt;That's where &lt;strong&gt;TideUI&lt;/strong&gt; and &lt;strong&gt;Ripple&lt;/strong&gt; come in.&lt;/p&gt;
&lt;p&gt;TideUI provides reusable terminal interface components, while Ripple handles text editing. Rather than maintaining different implementations across applications, I want improvements to benefit the entire family.&lt;/p&gt;
&lt;p&gt;This week's work on TideMail's native offline spellchecker was another reminder of how much complexity hides behind seemingly simple features.&lt;/p&gt;
&lt;h2&gt;Connecting Everything with TideDeck&lt;/h2&gt;
&lt;p&gt;One of the more interesting developments has been building APIs into &lt;strong&gt;Tide and TideMail specifically for TideDeck&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Instead of treating every Tide application as an isolated tool, I'm exploring how they can communicate with a central interface.&lt;/p&gt;
&lt;p&gt;The idea is that TideDeck can bring functionality from different applications together without duplicating their underlying logic.&lt;/p&gt;
&lt;p&gt;That changes the architecture quite a bit. The applications still need to work independently, but now they can also participate in a larger ecosystem.&lt;/p&gt;
&lt;h2&gt;Plugins and Extensibility&lt;/h2&gt;
&lt;p&gt;This week also brought major improvements to TideMail's plugin system.&lt;/p&gt;
&lt;p&gt;I added PGP signing, encryption, and decryption through a GnuPG plugin, along with in-app plugin browsing and management.&lt;/p&gt;
&lt;p&gt;The goal is to keep the core applications focused while making them extensible.&lt;/p&gt;
&lt;p&gt;TideFTP also received improvements for handling large directory trees, including parallel scanning, streaming, and better retry handling.&lt;/p&gt;
&lt;p&gt;Not everything should be shared. Some problems belong to individual applications, and that's fine.&lt;/p&gt;
&lt;h2&gt;Where This Is Going&lt;/h2&gt;
&lt;p&gt;AI has accelerated my development workflow, but it's also made good architecture more important. Building features faster doesn't help much if every project becomes an isolated collection of duplicated code.&lt;/p&gt;
&lt;p&gt;My goal isn't to create some enormous framework.&lt;/p&gt;
&lt;p&gt;I want a family of lightweight terminal applications that share useful components, expose APIs where appropriate, and work both independently and together through TideDeck.&lt;/p&gt;
&lt;p&gt;Some experiments will work. Others probably won't.&lt;/p&gt;
&lt;p&gt;That's what MyLiveLab is for: documenting the process and what I learn along the way.&lt;/p&gt;
&lt;p&gt;What started as one email client is slowly becoming a connected ecosystem of terminal tools.&lt;/p&gt;
&lt;p&gt;And that's a lot more interesting than I originally planned.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Projects: &lt;a href=&quot;https://github.com/allisonhere/tidemail&quot;&gt;TideMail&lt;/a&gt; · &lt;a href=&quot;https://github.com/allisonhere/tide&quot;&gt;Tide&lt;/a&gt; · TideDeck&lt;/em&gt;&lt;/p&gt;</content></entry>
<entry><title>Giving my coding agents some context</title><link href="https://mylivelab.com/lab/skillz.html"/><id>https://mylivelab.com/lab/skillz.html</id><updated>2026-10-12T12:00:00Z</updated><summary>Why I keep my coding agent skills in one repo, and what goes into them.</summary><content type="html">&lt;p&gt;I use a few different coding agents, and I want them to have the same basic context about my projects. Which repos belong together. Where the shared UI code lives. How I build and release things.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/allisonhere/skillz&quot;&gt;skillz&lt;/a&gt; is where I keep those instructions.&lt;/p&gt;
&lt;p&gt;A skill is a folder with a Markdown file in it. It tells an agent when the instructions apply and what it needs to know. Some have reference files or templates alongside them.&lt;/p&gt;
&lt;p&gt;The Tide projects are a good example of why I want this. They're separate repos, but they share UI code and conventions. An agent working in one repo might have no reason to know that the thing it's about to build already exists in another. The Tide skill gives it that context and tells it where to look.&lt;/p&gt;
&lt;p&gt;Other skills cover terminal UI design, Go CLI releases, and the content workflow for my Astro sites. These are things specific to how I work, so it makes sense to keep them somewhere I can edit.&lt;/p&gt;
&lt;p&gt;There's an installer and a little terminal picker, too. For Claude Code and Codex, the installer links back to the repo. I can change an instruction once and have both use the updated file. Hermes gets a copy, so that one needs another install after an edit.&lt;/p&gt;
&lt;p&gt;I like having the instructions in ordinary files. I can read what I'm asking the agents to do, change anything that's wrong, and keep the history in Git.&lt;/p&gt;
&lt;p&gt;The collection is personal, so some of it assumes my projects and setup. If you're curious, &lt;a href=&quot;https://github.com/allisonhere/skillz&quot;&gt;the repo is public&lt;/a&gt;. You can see what I've put in there and adapt anything useful.&lt;/p&gt;</content></entry>
<entry><title>Starting the lab notebook</title><link href="https://mylivelab.com/lab/starting-the-lab-notebook.html"/><id>https://mylivelab.com/lab/starting-the-lab-notebook.html</id><updated>2026-10-10T12:00:00Z</updated><summary>A place to show experiments while they're still half-built, including the ones that don't make it.</summary><content type="html">&lt;p&gt;MyLiveLab has always shown finished work. This section is for everything before that point: the prototypes, the dead ends and the &amp;quot;what if I tried this&amp;quot; ideas.&lt;/p&gt;
&lt;h2&gt;How it works&lt;/h2&gt;
&lt;p&gt;Each note has a status:&lt;/p&gt;
&lt;ul class=&quot;bullet-list&quot;&gt;&lt;li&gt;&lt;strong&gt;In progress&lt;/strong&gt;: I'm actively poking at it.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Shipped&lt;/strong&gt;: it turned into something real.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Shelved&lt;/strong&gt;: it taught me something, and I moved on.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Notes are short on purpose. What I tried, what happened, what's next.&lt;/p&gt;
&lt;h2&gt;Subscribe&lt;/h2&gt;
&lt;p&gt;There's an &lt;a href=&quot;/lab/feed.xml&quot;&gt;Atom feed&lt;/a&gt; if you'd rather read these in a feed reader, such as Tide RSS.&lt;/p&gt;</content></entry>
</feed>
