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:
| Bucket | Meaning | Examples |
|---|---|---|
| green | passes through unchanged | schedule, engine, GitHub-native safe-outputs |
| yellow | translated, meaning preserved — the translation is spelled out | on_limit: replace → cancel-in-progress: true; on.github → bare gh-aw events (filters and repos dropped) |
| red | no equivalent exists — listed as lost, export still proceeds | file-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.