GitHub Airplane Mode
Purpose
Switch an already-installed local Git and GitHub download guard.
Keep the guard installed and active sessions intact. This skill does not bundle
or install low-data, Git/GitHub wrappers, or a native connection-cost detector.
When to use
- Enable protection before a flight or on a metered connection.
- Disable protection after returning online.
- Inspect the current policy or use automatic connection-cost detection.
Workflow
Verify the prerequisite
Operate only on the current machine. Require an already-installed compatible
low-data command before running any recipe.
- Resolve
command -v low-data and inspect its file or symlink target. Verify
its trusted local source and the mode, status, and exit semantics below.
Stop if it is missing, shadowed, unfamiliar, or incompatible; report the
prerequisite instead of downloading or replacing it.
- Inspect the current state with
env -u LOW_DATA_ALLOW_NETWORK low-data status.
- Apply only the requested mode. Interpret "I'm back", "return online", or
"remove airplane mode" as
off, not removal of the reusable guard.
Switch modes
# Inspect without a per-command override masking the saved policy.
env -u LOW_DATA_ALLOW_NETWORK low-data status
# Force protection for a flight or metered connection.
env -u LOW_DATA_ALLOW_NETWORK low-data on
# Explicitly disable protection after returning online.
env -u LOW_DATA_ALLOW_NETWORK low-data off
# Follow the native connection-cost detector.
env -u LOW_DATA_ALLOW_NETWORK low-data auto
Require these semantics: on forces protection; off explicitly disables it;
auto protects constrained or expensive connections and fails closed when
native status is unavailable. An unmetered connection is unprotected in auto.
Verify the result
After any change, run both checks with the override unset:
env -u LOW_DATA_ALLOW_NETWORK low-data status
if env -u LOW_DATA_ALLOW_NETWORK low-data active; then
printf 'active_exit=0 (protected)\n'
else
active_exit=$?
printf 'active_exit=%s\n' "$active_exit"
fi
Require active exit 0 for on and exit 1 for off. For auto, report the
detected reason and the matching active state. Treat any other exit as a failed
check. Do not claim success from the mode-setting command alone.
Keep changes bounded
- Preserve the switch, guards, native detector, and unrelated settings. Use the
command to change mode; do not delete the implementation or edit shell startup
files to turn it off.
- Limit protection claims to guarded Git history and bulk GitHub repository,
release, and artifact downloads. Normal commits, pushes, metadata/API
requests, curl, package installs, and model traffic remain allowed.
- Do not claim whole-machine airplane mode, a firewall, or a bandwidth cap.
PATH wrappers are not a network boundary. Never bypass them through absolute
Git or GitHub CLI binaries, aliases, or custom hooks.
- Allow
LOW_DATA_ALLOW_NETWORK=1 command ... only for one explicitly approved
command. Never export that override globally.
- Do not pause, resume, kill, or relaunch agent, tmux, terminal, or background
sessions. A mode change is not process-control authority.
- Do not change other hosts, credentials, GitHub authentication, proxy settings,
or remote repositories.
Inputs
- Requested local operation:
status, on, off, or auto.
- Already-installed compatible
low-data command and its trusted source.
Outputs
- Saved mode, effective protected/unprotected state, and detected reason.
- Post-change
status and active exit-code proof.
- Exact missing prerequisite or failed verification when the operation cannot
complete.
1---2name: github-airplane-mode3description: Inspect or switch the local Git and GitHub download guard using an already-installed compatible low-data command. Use for airplane mode, flight or metered connections, returning online, or requests to enable, disable, or automatically select low-data protection on this machine.4license: MIT5---67# GitHub Airplane Mode89## Purpose1011Switch an already-installed local Git and GitHub download guard.1213Keep the guard installed and active sessions intact. This skill does not bundle14or install `low-data`, Git/GitHub wrappers, or a native connection-cost detector.1516## When to use1718- Enable protection before a flight or on a metered connection.19- Disable protection after returning online.20- Inspect the current policy or use automatic connection-cost detection.2122## Workflow2324### Verify the prerequisite2526Operate only on the current machine. Require an already-installed compatible27`low-data` command before running any recipe.28291. Resolve `command -v low-data` and inspect its file or symlink target. Verify30 its trusted local source and the mode, status, and exit semantics below.31 Stop if it is missing, shadowed, unfamiliar, or incompatible; report the32 prerequisite instead of downloading or replacing it.332. Inspect the current state with `env -u LOW_DATA_ALLOW_NETWORK low-data status`.343. Apply only the requested mode. Interpret "I'm back", "return online", or35 "remove airplane mode" as `off`, not removal of the reusable guard.3637### Switch modes3839```sh40# Inspect without a per-command override masking the saved policy.41env -u LOW_DATA_ALLOW_NETWORK low-data status4243# Force protection for a flight or metered connection.44env -u LOW_DATA_ALLOW_NETWORK low-data on4546# Explicitly disable protection after returning online.47env -u LOW_DATA_ALLOW_NETWORK low-data off4849# Follow the native connection-cost detector.50env -u LOW_DATA_ALLOW_NETWORK low-data auto51```5253Require these semantics: `on` forces protection; `off` explicitly disables it;54`auto` protects constrained or expensive connections and fails closed when55native status is unavailable. An unmetered connection is unprotected in `auto`.5657### Verify the result5859After any change, run both checks with the override unset:6061```sh62env -u LOW_DATA_ALLOW_NETWORK low-data status63if env -u LOW_DATA_ALLOW_NETWORK low-data active; then64 printf 'active_exit=0 (protected)\n'65else66 active_exit=$?67 printf 'active_exit=%s\n' "$active_exit"68fi69```7071Require `active` exit 0 for `on` and exit 1 for `off`. For `auto`, report the72detected reason and the matching active state. Treat any other exit as a failed73check. Do not claim success from the mode-setting command alone.7475### Keep changes bounded7677- Preserve the switch, guards, native detector, and unrelated settings. Use the78 command to change mode; do not delete the implementation or edit shell startup79 files to turn it off.80- Limit protection claims to guarded Git history and bulk GitHub repository,81 release, and artifact downloads. Normal commits, pushes, metadata/API82 requests, curl, package installs, and model traffic remain allowed.83- Do not claim whole-machine airplane mode, a firewall, or a bandwidth cap.84 PATH wrappers are not a network boundary. Never bypass them through absolute85 Git or GitHub CLI binaries, aliases, or custom hooks.86- Allow `LOW_DATA_ALLOW_NETWORK=1 command ...` only for one explicitly approved87 command. Never export that override globally.88- Do not pause, resume, kill, or relaunch agent, tmux, terminal, or background89 sessions. A mode change is not process-control authority.90- Do not change other hosts, credentials, GitHub authentication, proxy settings,91 or remote repositories.9293## Inputs9495- Requested local operation: `status`, `on`, `off`, or `auto`.96- Already-installed compatible `low-data` command and its trusted source.9798## Outputs99100- Saved mode, effective protected/unprotected state, and detected reason.101- Post-change `status` and `active` exit-code proof.102- Exact missing prerequisite or failed verification when the operation cannot103 complete.