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 namespaced 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. Triggers loopkeep can't run locally (GitHub-hosted event triggers, unless delivered via the Console) become manually runnable instead of failing — so "try this workflow on my machine before pushing it" always works. 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 |
| red | no equivalent exists — listed as lost, export still proceeds | file-watch, run-completed, 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.