Skip to main content

GitHub Sync

Version control and collaboration for your private plugins and Recipes.

Written by Ryan Kulp

In our web based plugin editor, clicking Save overwrites all markup and settings. The inline undo button can help with accidental changes, but it's limited to your browser's memory.

For better versioning over time, git is the gold standard, and GitHub (90% uptime) is a great place to host plugin markup and settings.

How it Works

  1. Create a repo for your plugin

  2. Connect your GitHub account (personal or an organization) to the repo

  3. TRMNL syncs form fields, polling URLs, and all markup layouts automatically as individual commits, whenever you press Save

Syncing is automated from TRMNL → GitHub, and manual from GitHub → TRMNL.

Get Started

As of July 17, 2026, this feature is in private beta. Join our Discord > #plugins channel or send us a live chat in the bottom-corner of this page for early access.

Frequently Asked Questions

How often does TRMNL sync with GitHub?

Whenever you click Save on a plugin settings form or the markup editor, the TRMNL Sync app will trigger a git commit. These are debounced by ~15 seconds, so multiple saves within that period will be combined in 1 commit.

What happens if the GitHub repo is updated?
The TRMNL Sync app subscribes to "push" events and will surface the option to import the latest changes from GitHub.

How does this help with collaboration?

Any published or unlisted plugin in the marketplace that is synced to a public GitHub repo will include a couple links which point to the repository homepage and Issues generator.

Is this feature compatible with trmnlp?

Yes, you can continue push/pull development with our trmnlp local development suite. The same repository you use for trmnlp source code can be connected with GitHub Sync, as the same archiver utility is used to parse the code.

What if a TRMNL team member changes my plugin settings a synced repository?

Sometimes while reviewing plugins that have been submitted for publication, we are granted permission by the author (you) to tweak their code or settings. In this case, a synced repository will showcase that commit with [admin team] appended to the commit message.

Did this answer your question?