<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>triggers on tomrochette.com</title>
    <link>https://tomrochette.com/tags/triggers/</link>
    <description>Recent content in triggers on tomrochette.com</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>tom@tomrochette.com (Tom Rochette)</managingEditor>
    <webMaster>tom@tomrochette.com (Tom Rochette)</webMaster>
    <copyright>© 2026 Tom Rochette</copyright>
    <lastBuildDate>Tue, 20 Oct 2026 22:36:07 -0400</lastBuildDate><atom:link href="https://tomrochette.com/tags/triggers/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Frink</title>
      <link>https://tomrochette.com/agents/orchestration/frink/</link>
      <pubDate>Wed, 21 Oct 2026 00:00:00 +0000</pubDate>
      <author>tom@tomrochette.com (Tom Rochette)</author>
      <guid>https://tomrochette.com/agents/orchestration/frink/</guid>
      <category>research-note</category><category>agent-curated</category><category>fully-ai-generated</category><category>llm=glm-5.3-flash</category><category>orchestration</category><category>workflows</category><category>desktop</category><category>triggers</category>
      <description>&lt;p&gt;Frink is a free, MIT-licensed desktop app (macOS and Linux) that runs up to four coding agents side by side in worktrees and turns plain-language routines into Flows, multi-step workflows that start on a schedule, a webhook, or an event from tools like Linear, Shortcut, ClickUp, Sentry, PostHog, or Vercel.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Frink&amp;rsquo;s bet is that the trigger, not the session, is what turns an agent from a chat into infrastructure: define the routine once, and the app runs it, waits at approval steps, and queues everything that needs you.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;What it is&#xA;    &lt;div id=&#34;what-it-is&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#what-it-is&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;A desktop application from benord-labs, TypeScript under MIT, with its repository created 2026-09-26.&#xA;The main window splits into up to four panes, each pane an agent (Claude Code, Codex, OpenCode, GitHub Copilot, or Cursor) with its own model and its own diff to review, and each chat can run in a worktree that copies untracked files like &lt;code&gt;.env&lt;/code&gt; and runs setup commands from a committed &lt;code&gt;.frink/worktrees.json&lt;/code&gt;.&#xA;Flows are the automation half: exactly one trigger (manual, webhook, schedule, or post-task) starts a graph of agent, command, approval, condition, and custom JavaScript steps, with data passing between blocks through &lt;code&gt;{{previous.*}}&lt;/code&gt; templates.&#xA;Every run from every project lands in a Work Queue with states from Pending through Plan Ready, Needs Attention, and Ready for review, so approvals and agent questions wait behind a badge.&#xA;Plugins connect Linear, Shortcut, ClickUp, Sentry, PostHog, Vercel, GitHub, Notion, and Slack as chat tools and Flow triggers, and MCP servers attach the usual way.&#xA;It is local-first: chats, Flows, and tasks live in SQLite on your machine, no account is needed, agent logins stay with the tools themselves, and the telemetry doc lists exactly what official builds send.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Status&#xA;    &lt;div id=&#34;status&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#status&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Active and very young: 58 stars and 5 forks as of 2026-10-21, repository created 2026-09-26, default-branch pushes through 2026-10-21, and a steady release train (0.2.0 on October 6, 0.3.0 on October 8, 0.4.0 on October 16) (GitHub API and releases, as of 2026-10-21).&lt;/p&gt;&#xA;&lt;picture&gt;&#xA;  &lt;source media=&#34;(prefers-color-scheme: dark)&#34; srcset=&#34;https://api.star-history.com/chart?repos=benord-labs/frink&amp;type=date&amp;theme=dark&amp;legend=top-left&#34; /&gt;&#xA;  &lt;source media=&#34;(prefers-color-scheme: light)&#34; srcset=&#34;https://api.star-history.com/chart?repos=benord-labs/frink&amp;type=date&amp;legend=top-left&#34; /&gt;&#xA;  &lt;img alt=&#34;Star History Chart&#34; src=&#34;https://api.star-history.com/chart?repos=benord-labs/frink&amp;type=date&amp;legend=top-left&#34; /&gt;&#xA;&lt;/picture&gt;&#xA;&lt;p&gt;No independent coverage exists as of 2026-10-21: searching the name surfaces the Frink programming language and Frinkiac, not this product.&#xA;&lt;strong&gt;The missing community footprint is itself the status signal: four weeks of shipping and documentation are the only evidence there is.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Strengths&#xA;    &lt;div id=&#34;strengths&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#strengths&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The trigger catalog is the widest in its cohort: schedules, any webhook, and six named event sources feed the same Flow engine the chat can author in plain language.&lt;/li&gt;&#xA;&lt;li&gt;Approval steps are first-class Flow blocks, so unattended runs stop at named gates instead of finishing unreviewed.&lt;/li&gt;&#xA;&lt;li&gt;Worktree mode copies untracked files and runs committed setup commands, so an agent&amp;rsquo;s checkout is usable the moment it opens.&lt;/li&gt;&#xA;&lt;li&gt;Per-agent diffs, a built-in editor, rollback, and the Work Queue cover the review loop inside one window.&lt;/li&gt;&#xA;&lt;li&gt;Custom steps are JavaScript ES modules in &lt;code&gt;~/.frink/nodes/&lt;/code&gt; that you or the agent writes and reuses across Flows.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Cautions&#xA;    &lt;div id=&#34;cautions&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#cautions&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Four weeks old, 58 stars, one organization, zero independent coverage: bus factor and longevity are unknowns.&lt;/li&gt;&#xA;&lt;li&gt;Flows run only on Claude or OpenAI accounts; a project on OpenCode, GitHub Copilot, or Cursor cannot run Flows yet (docs, as of 2026-10-21).&lt;/li&gt;&#xA;&lt;li&gt;Everything runs on your computer while Frink is open, so this is a desktop scheduler, not a server; nothing executes unattended with the app closed.&lt;/li&gt;&#xA;&lt;li&gt;Windows is announced on the pricing page but not shipped.&lt;/li&gt;&#xA;&lt;li&gt;The name collides with the Frink calculator language, which will hurt search and citation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Pricing&#xA;    &lt;div id=&#34;pricing&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#pricing&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Free: every feature, no account, no card (frink.dev/pricing, as of 2026-10-21).&#xA;You bring your own agent subscriptions or API keys; a pasted API key is stored encrypted on your machine.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Compared to&#xA;    &lt;div id=&#34;compared-to&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#compared-to&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/orchestration/archon/&#34; &gt;Archon&lt;/a&gt;: also trigger-led, with Slack, Telegram, GitHub, and Discord triggers, but it encodes workflows as committed YAML; choose Frink when you want the desktop app and plain-language flow authoring.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/orchestration/conductor/&#34; &gt;Conductor&lt;/a&gt;: the deeper Mac review surface for parallel sessions, with no triggered automation; choose Frink when the runs should start themselves.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/surfaces/openchamber/&#34; &gt;OpenChamber&lt;/a&gt;: scheduled sessions without a workflow engine; Frink&amp;rsquo;s Flows chain agent, command, and approval steps under one trigger.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Bottom line&#xA;    &lt;div id=&#34;bottom-line&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#bottom-line&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Recommended for engineers who want ticket-, error-, and schedule-driven agent routines with human approval gates, on their own machine.&#xA;Not for headless or server-side automation, and not for anyone who needs a track record before adopting.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Changes&#xA;    &lt;div id=&#34;changes&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#changes&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;2026-10-21 - Created.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;See also&#xA;    &lt;div id=&#34;see-also&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#see-also&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/orchestration/orchestration-feature-matrix/&#34; &gt;Orchestration Feature Matrix&lt;/a&gt; - the category comparison this note joins&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/orchestration/archon/&#34; &gt;Archon&lt;/a&gt; - the YAML workflow engine with the closest trigger model&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/orchestration/conductor/&#34; &gt;Conductor&lt;/a&gt; - the Mac parallel-session counterpart without triggers&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/orchestration/crewplane/&#34; &gt;Crewplane&lt;/a&gt; - the CLI workflow runner that owns the same seat from the terminal&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/surfaces/openchamber/&#34; &gt;OpenChamber&lt;/a&gt; - scheduled sessions, the lighter scheduling answer&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;References&#xA;    &lt;div id=&#34;references&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#references&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/benord-labs/frink&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=github.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://github.com/benord-labs/frink&lt;/a&gt; - repository, feature table, supported agents, license, and install builds&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://frink.dev/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=frink.dev&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://frink.dev/&lt;/a&gt; - product page, download surfaces, and the no-account positioning&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://frink.dev/pricing&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=frink.dev&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://frink.dev/pricing&lt;/a&gt; - free, every feature, no account, no card (as of 2026-10-21)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://api.github.com/repos/benord-labs/frink&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=api.github.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://api.github.com/repos/benord-labs/frink&lt;/a&gt; - stars, forks, dates, license, and language (as of 2026-10-21)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://api.github.com/repos/benord-labs/frink/releases&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=api.github.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://api.github.com/repos/benord-labs/frink/releases&lt;/a&gt; - the 0.2.0, 0.3.0, and 0.4.0 release train&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://raw.githubusercontent.com/benord-labs/frink/main/user-docs/flows.md&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=raw.githubusercontent.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://raw.githubusercontent.com/benord-labs/frink/main/user-docs/flows.md&lt;/a&gt; - flow anatomy, the one-trigger rule, and the Claude/OpenAI limitation&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://raw.githubusercontent.com/benord-labs/frink/main/user-docs/plugins.md&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=raw.githubusercontent.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://raw.githubusercontent.com/benord-labs/frink/main/user-docs/plugins.md&lt;/a&gt; - the plugin kinds and the trigger catalog&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://raw.githubusercontent.com/benord-labs/frink/main/user-docs/worktree-setup.md&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=raw.githubusercontent.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://raw.githubusercontent.com/benord-labs/frink/main/user-docs/worktree-setup.md&lt;/a&gt; - worktree mode, .env copying, and setup commands&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://raw.githubusercontent.com/benord-labs/frink/main/user-docs/task-lifecycle.md&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=raw.githubusercontent.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://raw.githubusercontent.com/benord-labs/frink/main/user-docs/task-lifecycle.md&lt;/a&gt; - task states and the approval model&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
      
    </item>
    
  </channel>
</rss>
