Skip to content

Syncing vals with GitHub

Vals have built-in version history, but syncing a val with a GitHub repo gets you more:

  • Git history with real commits, branches, and pull requests
  • An off-platform backup of your code
  • CI: tests, linters, and review before code reaches your val
  • Editing locally in your own editor, or with coding agents

There are two ways to set this up.

GitHub Actions + vt CLISync code in a val
Where it runsGitHub ActionsInside the val itself
GitHub → Val TownDeploys on every push to mainDeploys on every push, via a webhook
Val Town → GitHubOn a schedule (polling)On a schedule (cron file in the val)
SetupRepo with two small workflow filesOne copy-paste file in the val
Good fitYou already live in GitHubYou want zero GitHub Actions setup
LimitsNeeds a repo per valText files only, 80k chars per file

If you are not sure, start with GitHub Actions + vt CLI. It uses the same vt CLI you can run locally, and the sync logic is two short workflow files you can read in full. It is also the method that supports two-way sync.