GitHub Agentic Workflows

loopkeep's workflow format is GitHub Agentic Workflows (gh-aw), extended for local execution. You can bring a gh-aw file to loopkeep and run it before it ever reaches GitHub Actions, and you can export a loopkeep workflow to gh-aw — with an honest report of what survives the trip.

The compatibility contract

  • A key that exists in gh-aw means what it means in gh-aw. No reinterpretation, ever — if upstream later adds a key loopkeep also wanted, upstream's meaning wins.
  • loopkeep only adds keys: local trigger types, local safe-outputs, and settings nested under x-loopkeep.
  • Unknown keys are preserved and warned about, never dropped. A file round-trips intact.

Import

lk import <gh-aw-file>

Brings a gh-aw workflow into the workspace and adds a manual trigger to it — always, whatever else the file declares and whether or not its other triggers can fire here. That matters most for a workflow whose triggers are all GitHub events, which reach this machine only once you've paired with the Console and connected GitHub: until then the added manual is what keeps "try this workflow on my machine before pushing it" working. This is the same role act plays for GitHub Actions.

Export

lk export --to-gh-aw <workflow>          # human-readable report
lk export --to-gh-aw <workflow> --json

Export never degrades silently. Every part of the workflow lands in one of three buckets, and the report says which:

BucketMeaningExamples
greenpasses through unchangedschedule, engine, GitHub-native safe-outputs
yellowtranslated, meaning preserved — the translation is spelled outon_limit: replacecancel-in-progress: true; on.github → bare gh-aw events (filters and repos dropped)
redno equivalent exists — listed as lost, export still proceedsfile-watch, run-completed, on.slack, on.webhook, local safe-outputs

The point of the escape hatch is knowing in advance what leaving costs. If a workflow leans on local triggers, the red list tells you exactly which part of its behavior won't follow you to Actions.