AI-translated from English; not yet reviewed by a fluent editor.
# I-back up ang Hermes Agent sa pribadong GitHub at suriin ang pagbawi
> Gumawa ng buong kopya ng datos ng Hermes, i-encrypt bago ipadala sa pribadong GitHub, magtakda ng takbong walang ahente, at suriin ang pagkuha at pag-import sa ibang makina. Gabay batay sa dokumentasyon.
By BIG CHANGE Editorial
Published: 2026-10-19T18:30:35.265Z
Updated: 2026-10-19T18:30:35.265Z
Canonical: https://bigchange.ai/blog/hermes-encrypted-github-backup-recovery-guide

AI-generated conceptual illustration by BIG CHANGE.
Para ito sa operator ng sariling host na Hermes Agent na may kapangyarihang mamahala sa Linux account at pribadong GitHub repository. Tiyak ang resulta: buong archive ng Hermes **datos ng gumagamit**, naka-encrypt bago umalis sa host, nakumpirma sa nilalayong pribadong remote, at nakuha at na-import sa hiwalay na pansubok na makinang maaaring itapon. Dokumentadong pamamaraan ito para sa [Hermes CLI sa commit `86fa9e6`](https://github.com/NousResearch/hermes-agent/blob/86fa9e6ca1de7ee71132d2be0103f3e37d1fa872/website/docs/reference/cli-commands.md), sinuri noong 19 Oktubre 2026. Sinuri ng BIG CHANGE ang shell syntax at daloy gamit ang hindi aktuwal na lokal na datos ng pagsubok; hindi ito nagpatakbo ng tunay na Hermes backup, age encryption, GitHub push, nakatakdang pagtakbo o restore. Ituring lang na napatunayan sa iyong instalasyon matapos mong gawin ang lahat ng pagsusuri sa ibaba.
## Ang malaking pagbabago
- **Ano ang nagbago:** Kayang tipunin ng buong backup command ng Hermes ang datos nito sa ZIP, habang kayang magpatakbo ng sinuring script ang cron mode na walang ahente. Magkasama, nakagagawa ang operator ng nakatakdang naka-encrypt na kopya nang hindi ipinagagawa ang backup sa modelo ng AI.
- **Bakit mahalaga:** Tatlong magkahiwalay na bagay ang nasusuri: natapos ng Hermes ang archive, nakarating ang naka-encrypt na datos sa tamang pribadong repository, at mai-import ito ng bagong instalasyon. Iba-ibang pagkabigo ang nahuhuli. Hindi pa rin kasama ang aplikasyon at ilang datos na lokal sa makina.
- **Ano ang babantayan:** Ang praktikal na pasya ay kung sapat pang maliit ang archive at lumalaking Git history para sa limitadong paraang ito. Kapag nabigo ang pagsasanay sa pagbawi o umabot sa alinmang hangganan ng laki, kailangan ng ibang plano sa imbakan bago umasa sa iskedyul.
## 1. Ihanda ang host, susi at repository
Gumamit ng Linux, Bash, GNU `stat -c` at `du -sb`, kasama ang naka-install na Hermes CLI, Git, GitHub CLI (`gh`), age, `unzip`, `sha256sum`, SSH at aktibong Hermes gateway para sa cron. Tiyaking tumutugma ang naka-install na `hermes backup`, `hermes import` at `hermes cron create --help` sa [CLI reference na nakapirmi sa commit](https://github.com/NousResearch/hermes-agent/blob/86fa9e6ca1de7ee71132d2be0103f3e37d1fa872/website/docs/reference/cli-commands.md), [mga madalas na tanong](https://github.com/NousResearch/hermes-agent/blob/86fa9e6ca1de7ee71132d2be0103f3e37d1fa872/website/docs/reference/faq.md) at [manwal ng cron](https://github.com/NousResearch/hermes-agent/blob/86fa9e6ca1de7ee71132d2be0103f3e37d1fa872/website/docs/user-guide/features/cron.md). Tukuyin ang gumagamit ng OS at `HERMES_HOME` na may-ari ng gateway. Gawin ang lahat ng pag-aayos at unang manwal na backup bilang gumagamit na iyon. Ipinapalagay ng halimbawa ang nakalaang malinis na Git clone at `main` branch.
Kasama sa buong Hermes backup ang pagsasaayos, kredensiyal, alaala, kasanayan, sesyon at profile sa ilalim ng ugat ng datos. Hindi kasama ang Hermes code, na-download na dependency at runtime, dating backup, checkpoint, profile ng kredensiyal ng browser, SQLite na kasamang file at ilang lokal na file. Hindi nito kinukuha ang ibang walang kaugnayang file sa host. **Huwag gumamit ng `--quick`** para sa buong datos na resultang ito. Suriin at hiwalay na protektahan ang mahahalagang bagay sa labas ng saklaw. May mga lihim ang ZIP kahit pribado ang destinasyon.
Gumawa ng age identity, ang pribadong susing kailangan sa pag-decrypt, sa protektadong lugar sa labas ng `HERMES_HOME`, pansamantalang paghahandang direktoryo at Git clone. Magtago ng hiwalay na kopya ng identity para sa pagbawi. Ang inilabas na tatanggap na `age1…` ay pampubliko at ilalagay sa pagsasaayos; hindi ang pribadong identity. Sundin ang [sanggunian sa paggamit ng age](https://github.com/FiloSottile/age/blob/main/README.md).
```bash
umask 077
install -d -m 700 /PRIVATE-KEY-STORE
age-keygen -o /PRIVATE-KEY-STORE/hermes-backup-identity.txt
age-keygen -y /PRIVATE-KEY-STORE/hermes-backup-identity.txt
```
Gumawa ng **pribadong** repository para lamang sa backup na ito, suriin ang may access at magtakda ng hindi interaktibong pagbasa gamit ang `gh` at Git SSH na pagsulat para sa parehong gumagamit ng OS na nagpapatakbo ng Hermes cron. Ilayo ang token at pribadong SSH key sa Hermes data, paghahanda at Git. Ang interaktibong pag-login sa ibang account ay hindi patunay ng nakatakdang access. Palitan ang malalaking titik na pansamantalang halaga bago tumakbo. Kung may README o `main` branch na mula sa paglikha ng repository, suriin at laktawan ang salungat na utos sa pagsisimula.
```bash
gh repo create ACCOUNT/PRIVATE-REPOSITORY --private --clone
gh repo view ACCOUNT/PRIVATE-REPOSITORY --json isPrivate --jq .isPrivate
cd PRIVATE-REPOSITORY
git remote set-url origin git@github.com:ACCOUNT/PRIVATE-REPOSITORY.git
git remote get-url --all origin
git remote get-url --push --all origin
git branch -M main
printf '%s\n' 'Encrypted Hermes backup storage; ciphertext and checksum only.' > README.md
git add README.md
git commit -m 'Initialize private backup repository'
git push -u origin HEAD:main
git ls-remote --heads origin main
```
`gh repo create --clone` ay maaaring pumili ng HTTPS mula sa lokal na kagustuhan; ang tahasang SSH remote sa itaas ang destinasyon ng paraang ito. Magpatuloy lang kapag `isPrivate` ay nagbalik ng `true`, tama ang mga katuwang, ang epektibong URL ng pagkuha at pagpapadala ay bawat isa eksaktong katumbas ng iisang sinuring SSH URL, at gumagana ang remote access bilang nakatakdang gumagamit. Ang [mga tuntunin ng Git remote](https://git-scm.com/docs/git-remote) ay nagpapahintulot ng pagbabago ng URL, dagdag na destinasyon at hiwalay na `pushurl`; sinusuri ng script ang orihinal at epektibong halaga sa bawat takbo.
Lumabas sa clone bago i-save ang susunod na dalawang bloke. Gumawa ng pribadong direktoryo sa pag-aayos sa labas ng ugat ng Hermes data, Git clone, pansamantalang paghahanda at imbakan ng susi. I-save ang `hermes-github-backup.sh` at `hermes-github-backup.conf` doon; kokopyahin ng mga utos sa pag-install sa profile ng may-ari. Dapat manatiling malinis ang nakalaang Git clone.
```bash
install -d -m 700 /ABSOLUTE/PRIVATE-SETUP
cd /ABSOLUTE/PRIVATE-SETUP
```
## 2. I-install ang sinuring backup script
I-save ang buong Bash block sa ibaba bilang `hermes-github-backup.sh` sa pribadong direktoryong iyon. I-save ang ikalawang bloke bilang `hermes-github-backup.conf` sa tabi nito matapos palitan ang lahat ng pansamantalang halaga ng ganap na path o pampublikong tatanggap. Ito ay shell configuration na dapat lokal na suriin bago i-load at may pahintulot lamang para sa may-ari. Hindi dapat maglaman ng password, token o pribadong age identity. Ito ang buong iminungkahing halimbawa; sinuri ang syntax at hindi aktuwal na daloy, pero iangkop at subukan sa iyong instalasyon. Ang nilikhang `latest.zip.age` ay ang naka-encrypt na archive.
```bash
#!/usr/bin/env bash
# Documentation-based Linux sample for an operator to review and adapt.
# Place with hermes-github-backup.conf under the owning HERMES_HOME/scripts/.
# Requires GNU stat -c and du -sb. Git Bash was used only for inert fixtures.
set -Eeuo pipefail
umask 077
script_dir=$(CDPATH= cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)
owning_home=$(CDPATH= cd -- "$script_dir/.." && pwd -P)
if [[ -n ${HERMES_HOME:-} && $(CDPATH= cd -- "$HERMES_HOME" && pwd -P) != "$owning_home" ]]; then
printf 'Backup stopped: cron profile and script directory differ.\n' >&2
exit 1
fi
export HERMES_HOME="$owning_home"
config="$script_dir/hermes-github-backup.conf"
[[ -f "$config" ]] || { printf 'Backup stopped: reviewed configuration missing.\n' >&2; exit 1; }
# This file is local, owner-reviewed shell configuration. It must contain no secret.
# shellcheck source=/dev/null
source "$config"
: "${HERMES_BIN:?set an absolute Hermes executable path}"
: "${REPO_DIR:?set an absolute private clone path}"
: "${STAGING_PARENT:?set an absolute private staging path}"
: "${AGE_RECIPIENT:?set an age public recipient}"
: "${EXPECTED_REMOTE:?set the exact private GitHub SSH remote}"
: "${BRANCH:=main}"
fail() { printf 'Backup stopped: %s.\n' "$1" >&2; exit 1; }
for path in "$HERMES_BIN" "$REPO_DIR" "$STAGING_PARENT"; do
[[ $path == /* ]] || fail 'a configured path is not absolute'
done
[[ -x "$HERMES_BIN" ]] || fail 'Hermes executable unavailable'
[[ $AGE_RECIPIENT == age1* ]] || fail 'age public recipient invalid'
[[ $EXPECTED_REMOTE == git@github.com:*/*.git ]] || fail 'remote is not the reviewed GitHub SSH URL'
[[ $BRANCH =~ ^[a-zA-Z0-9._/-]+$ ]] || fail 'branch name invalid'
[[ -d "$STAGING_PARENT" ]] || fail 'staging directory unavailable'
stage_parent=$(CDPATH= cd -- "$STAGING_PARENT" && pwd -P)
[[ $stage_parent != "$owning_home" && $stage_parent != "$owning_home"/* ]] || fail 'staging is inside Hermes data'
# Atomic, nonblocking whole-flow lock: keep it through push and remote readback.
# A stale directory after a crash requires operator inspection; never steal it.
lockdir="$stage_parent/.hermes-github-backup-flow.lock"
mkdir -- "$lockdir" 2>/dev/null || fail 'another backup flow holds the lock or a stale lock needs review'
work=''
cleanup() {
if [[ -n $work ]]; then
rm -f -- "$work/hermes.zip" "$work/latest.zip.age" "$work/latest.sha256" "$work/backup.log"
rmdir -- "$work" 2>/dev/null || true
fi
rmdir -- "$lockdir" 2>/dev/null || true
}
trap cleanup EXIT
[[ -d "$REPO_DIR/.git" ]] || fail 'Git repository unavailable'
repo=$(CDPATH= cd -- "$REPO_DIR" && pwd -P)
[[ $repo != "$owning_home" && $repo != "$owning_home"/* ]] || fail 'repository is inside Hermes data'
[[ $stage_parent != "$repo" && $stage_parent != "$repo"/* ]] || fail 'staging is inside Git repository'
[[ $repo != "$stage_parent"/* ]] || fail 'Git repository is inside staging'
command -v age >/dev/null || fail 'age unavailable'
command -v gh >/dev/null || fail 'GitHub CLI unavailable for private visibility check'
command -v unzip >/dev/null || fail 'zip verifier unavailable'
command -v git >/dev/null || fail 'Git unavailable'
remote_repo=${EXPECTED_REMOTE#git@github.com:}
remote_repo=${remote_repo%.git}
visibility=$(gh repo view "$remote_repo" --json isPrivate --jq .isPrivate 2>/dev/null) || fail 'GitHub repository visibility unreadable'
[[ $visibility == true ]] || fail 'GitHub repository is not confirmed private'
raw_fetch_urls=$(git -C "$repo" config --get-all remote.origin.url) || fail 'Git fetch URL missing'
[[ $raw_fetch_urls == "$EXPECTED_REMOTE" ]] || fail 'Git has multiple or unexpected raw fetch URLs'
raw_push_urls=$(git -C "$repo" config --get-all remote.origin.pushurl || true)
[[ -z $raw_push_urls ]] || fail 'separate Git pushurl requires independent review'
effective_fetch_urls=$(git -C "$repo" remote get-url --all origin) || fail 'effective fetch URL unreadable'
effective_push_urls=$(git -C "$repo" remote get-url --push --all origin) || fail 'effective push URL unreadable'
[[ $effective_fetch_urls == "$EXPECTED_REMOTE" ]] || fail 'Git fetch URL rewrite or extra destination'
[[ $effective_push_urls == "$EXPECTED_REMOTE" ]] || fail 'Git push URL rewrite or extra destination'
[[ $(git -C "$repo" branch --show-current) == "$BRANCH" ]] || fail 'local branch changed'
[[ -z $(git -C "$repo" status --porcelain --untracked-files=all) ]] || fail 'repository has unrelated changes'
# No interactive prompt is possible in an unattended Hermes cron tick.
export GIT_TERMINAL_PROMPT=0
export GIT_SSH_COMMAND='ssh -o BatchMode=yes'
remote_head=$(git -C "$repo" ls-remote --heads origin "$BRANCH" | awk '{print $1}')
[[ -n $remote_head && $remote_head == "$(git -C "$repo" rev-parse HEAD)" ]] || fail 'remote unreadable or branch has changed'
work=$(mktemp -d "$stage_parent/hermes-backup.XXXXXXXX") || fail 'private staging creation failed'
if "$HERMES_BIN" backup -o "$work/hermes.zip" >"$work/backup.log" 2>&1; then
:
else
backup_rc=$?
fail "Hermes full backup returned $backup_rc; temporary zip/log will be removed, so diagnose with a separate controlled manual run"
fi
[[ -s "$work/hermes.zip" ]] || fail 'Hermes archive absent or empty'
unzip -tq "$work/hermes.zip" >"$work/backup.log" 2>&1 || fail 'zip integrity check failed'
age -r "$AGE_RECIPIENT" -o "$work/latest.zip.age" "$work/hermes.zip" >"$work/backup.log" 2>&1 || fail 'archive encryption failed'
[[ -s "$work/latest.zip.age" ]] || fail 'encrypted archive absent or empty'
# Deliberately below GitHub's 50 MiB warning. Git history retains every version.
cipher_bytes=$(stat -c %s "$work/latest.zip.age")
(( cipher_bytes <= 40000000 )) || fail 'encrypted archive exceeds this small-repository recipe'
git_bytes=$(du -sb "$repo/.git" | awk '{print $1}')
(( git_bytes + cipher_bytes + 10000000 <= 500000000 )) || fail 'repository history approaches the review limit'
hash=$(sha256sum "$work/latest.zip.age" | awk '{print $1}')
printf '%s latest.zip.age\n' "$hash" >"$work/latest.sha256"
cp -- "$work/latest.zip.age" "$repo/latest.zip.age"
cp -- "$work/latest.sha256" "$repo/latest.sha256"
git -C "$repo" add -- latest.zip.age latest.sha256
staged=$(git -C "$repo" diff --cached --name-only)
[[ $staged == $'latest.sha256\nlatest.zip.age' ]] || fail 'staged paths are not the two reviewed files'
git -C "$repo" diff --cached --check >/dev/null || fail 'staged content check failed'
git -C "$repo" commit -m "Encrypted Hermes backup $(date -u +%Y-%m-%dT%H:%M:%SZ)" >/dev/null || fail 'local backup commit failed'
run_head=$(git -C "$repo" rev-parse HEAD)
(( $(du -sb "$repo/.git" | awk '{print $1}') <= 500000000 )) || fail 'Git history exceeds review limit before push'
[[ $(git -C "$repo" rev-parse HEAD) == "$run_head" ]] || fail 'local HEAD changed before push'
git -C "$repo" push origin "$run_head:refs/heads/$BRANCH" >/dev/null || fail 'remote push failed; inspect exact remote before retrying'
remote_head=$(git -C "$repo" ls-remote --heads origin "$BRANCH" | awk '{print $1}')
[[ $remote_head == "$run_head" ]] || fail 'this run commit not confirmed at remote'
printf 'Encrypted backup verified at private remote commit %s.\n' "$run_head"
```
```bash
# No passwords, tokens, age identities or private keys belong here.
HERMES_BIN=/absolute/path/to/hermes
REPO_DIR=/absolute/path/to/dedicated-private-github-clone
STAGING_PARENT=/absolute/path/to/private-staging-outside-hermes-and-git
AGE_RECIPIENT=age1replace_with_operator_public_recipient
EXPECTED_REMOTE=git@github.com:ACCOUNT/PRIVATE-REPOSITORY.git
BRANCH=main
```
Gumawa ng pansamantalang paghahanda sa labas ng ugat ng Hermes data at Git clone. Ilagay ang sinuring file sa `scripts/` direktoryo ng profile ng may-ari. Dapat malinis ang clone at tugma sa remote `main` bago bawat takbo. Naka-lock ang buong daloy hanggang pagpapadala at muling pagbasa; hindi nito inaagaw ang hawak o lumang lock. Tinatanggap lamang ang `latest.zip.age` at `latest.sha256` bilang bagong backup path na ihahanda sa Git. Humihinto kapag lumampas ang naka-encrypt na file sa **40,000,000 byte** o lumapit ang lokal na `.git` kasama ang reserba sa **500,000,000 byte**. Maingat na limitasyon ito ng halimbawa, hindi garantiya ng imbakan ng GitHub.
```bash
export HERMES_HOME=/absolute/path/to/owning-hermes-data-root
install -d -m 700 /ABSOLUTE/PRIVATE-STAGING
install -d -m 700 "$HERMES_HOME/scripts"
install -m 700 hermes-github-backup.sh "$HERMES_HOME/scripts/hermes-github-backup.sh"
install -m 600 hermes-github-backup.conf "$HERMES_HOME/scripts/hermes-github-backup.conf"
"$HERMES_HOME/scripts/hermes-github-backup.sh"
```
Dapat magtapos sa exit code na sero ang manwal na takbo at ilabas ang commit na nilikha **ng mismong takbong iyon** matapos sariwang basahin ang remote. Tiyaking `gh repo view` ay pribado pa rin, tingnan ang mga sinusubaybayang path at patunayan ang eksaktong commit sa nilalayong remote. Hindi offsite na resulta ang lokal na archive o commit. Huwag itala na ganoon ang humintong takbo. Ayon sa Hermes, nagbabalik ang buong backup ng `0` kapag naidagdag lamang ang lahat ng piniling file, `1` para sa hindi kumpletong archive kahit may ZIP, at `2` kung may ibang backup na tumatakbo. Tinatanggal ng script ang pansamantalang ZIP at log sa paglabas; hindi ligtas na pagbura ang karaniwang pagtanggal. Para sa nalaktawang file, siyasatin sa hiwalay na kontroladong manwal na `hermes backup -o /PRIVATE-DIAGNOSTIC/hermes.zip`, tingnan ang exit status at ulat, at magpasya kung paano protektahan ang naiwan.
## 3. Itakda at siyasatin ang unang nakatakdang takbo
Pagkatapos lamang ng manwal na resulta, gamitin ang dokumentadong Hermes `--no-agent --script` mode mula sa parehong profile. Nagpapatakbo ito ng file nang walang LLM turn. Piliin nang sadya ang dalas at lokal na status na walang lihim. Suriin ang OS identity ng gateway, profile at susunod na oras. Ayon sa Hermes, ang script timeout ay mula sa `HERMES_CRON_SCRIPT_TIMEOUT`, kasunod ang `cron.script_timeout_seconds`, pagkatapos ay ang **paunang 3,600 segundo**. Magtakda at magpatunay ng halagang tugma sa naobserbahang takbo; kabiguan ang timeout. Hindi awtomatikong natatanggap ng nilinis na kapaligiran ang kredensiyal ng provider na pinamamahalaan ng Hermes, kaya tiyakin ang walang nagbabantay na `gh` at SSH access bilang aktuwal na nakatakdang gumagamit bago umasa rito.
```bash
hermes cron create '0 3 * * *' --no-agent --script hermes-github-backup.sh --deliver local --name 'Encrypted Hermes backup'
hermes cron list
hermes cron status
hermes cron doctor
```
Pagkatapos ng unang **nakatakdang** oras, siyasatin ang eksaktong job ID at tala ng takbo, lokal na output sa `~/.hermes/cron/output/` para sa paunang profile, anumang insidente at head commit ng nilalayong remote. Tiyaking nanatiling magagamit ang gateway at iniulat ng takbo ang remote commit na ginawa ng mismong pag-trigger. Hindi patunay ng cron ang manwal na pagtawag. Kung walang output, siyasatin ang trabaho at gateway, huwag gumawa ng ikalawang iskedyul. Walang laman ng ZIP, lihim o kredensiyal sa mga mensahe ng status.
## 4. Patunayan ang pagkuha at pag-import sa bagong makina
Gumamit ng **hiwalay na pansamantalang Linux machine na walang production Hermes profile o gateway**. Mag-install muna ng katugmang Hermes release: datos ng gumagamit ang archive, hindi larawan ng aplikasyon o runtime. Bigyan ang test machine ng hiwalay na awtorisadong pagbasa sa nilalayong pribadong repository at sa hiwalay na age identity. Tiyakin ang remote ng clone at piniling commit. Huwag magpatakbo ng `hermes import` sa pinagmulang host o umiiral na profile. Panatilihing hindi aktibo ang lahat ng nabawing iskedyul at panlabas na gawain hanggang suriin ng tao ang destinasyon at magpasya kung iaaktibo.
```bash
umask 077
unset HERMES_HOME
git clone git@github.com:ACCOUNT/PRIVATE-REPOSITORY.git /PRIVATE-RECOVERY/hermes-backup-clone
cd /PRIVATE-RECOVERY/hermes-backup-clone
sha256sum -c latest.sha256
age --decrypt -i /PRIVATE-KEY-STORE/hermes-backup-identity.txt -o /PRIVATE-RECOVERY/hermes.zip latest.zip.age
unzip -tq /PRIVATE-RECOVERY/hermes.zip
hermes import /PRIVATE-RECOVERY/hermes.zip
hermes setup
hermes cron list
```
Ihambing ang na-import na profile, kasanayan, alaala, sesyon at cron definition sa nais protektahan. `hermes setup` ang tumitingin sa pagsasaayos ng provider, pero siyasatin ang kredensiyal at path na tiyak sa makina at kailangang baguhin. Itala ang aktuwal na resulta. Hindi sapat ang tugmang checksum at nade-decrypt na ZIP upang patunayang magagamit ang restore. Alisin ang plain-text na test ZIP pagkatapos ng pagsasanay ayon sa lokal na patakaran; hindi garantisadong ligtas na pagbura ang karaniwang pagtanggal.
## Kapag huminto ang mga pagsusuri
Hindi kumpletong Hermes backup, ZIP o encryption error, hindi inaasahang epektibong Git URL, hindi pribado o hindi mabasang repository, hawak na flow lock, limitasyon ng laki, nabigong push, hindi tugmang remote commit o nabigong import ay nag-iiwan sa takbo na **hindi kumpirmado**. Lutasin ang tiyak na sanhi at suriin ang kasalukuyang estado bago subukan muli. Kung hindi tiyak ang push, tingnan muna ang eksaktong remote branch at commit. Kung may lock matapos ang pag-crash, siyasatin ang buhay na proseso at lokal/remote na estado; huwag magtanggal ng aktibong lock. Kung nawala ang pribadong age identity, kailangan ng hiwalay na wastong kopya para mag-decrypt. Palitan muna ang nalantad na kredensiyal kung may plain-text na lihim na napunta sa Git; ang pagtanggal ng file sa huli ay hindi nag-aalis ng lumang kasaysayan o ibang clone.
[Ang gabay ng GitHub sa malalaking file](https://docs.github.com/en/repositories/working-with-files/managing-large-files/about-large-files-on-github) ay nagbababala sa **50 MiB**, humaharang sa karaniwang Git file na lampas **100 MiB** at nagsasabing hindi idinisenyo ang Git na backup tool. Sadyang humihinto ang halimbawa bago ang mga hangganang iyon. Bawat binagong naka-encrypt na file ay nananatili sa Git history kahit palitan ang `latest.zip.age`. Huwag tahimik na itaas ang 40 MB/500 MB na hangganan, isulat muli ang history o ituring na encryption ang pagiging pribado. Muling suriin ang imbakan para sa backup o hiwalay na nirepasong LFS plan kapag hindi pumasa ang laki o pagbawi. May gastos pa rin sa account, imbakan, network at host; ang script na walang ahente ay hindi mismo nangangailangan ng LLM turn. Walang sinukat na tagal, antas ng tagumpay o pagtitipid.
Para sa hiwalay at mas makitid na gawain sa Hermes scheduling, tingnan ang [pagtatakda ng paulit-ulit na Hermes job na may kasanayan at pagtiyak sa unang takbo](https://bigchange.ai/blog/hermes-skill-recurring-job-first-run). Hindi kapalit ng naka-encrypt na archive at pagsasanay sa pagbawi ang pagsusuri sa ulat nito.
## Mga sanggunian at karagdagang babasahin
- [Hermes Agent CLI commands, nakapirming commit `86fa9e6`](https://github.com/NousResearch/hermes-agent/blob/86fa9e6ca1de7ee71132d2be0103f3e37d1fa872/website/docs/reference/cli-commands.md) — Buong backup command, saklaw, hindi kasama at exit status. Sinuri noong 19 Oktubre 2026 sa nakapirming source; hindi patunay na tumakbo sa tunay na profile.
- [Hermes Agent madalas na tanong, parehong nakapirming commit](https://github.com/NousResearch/hermes-agent/blob/86fa9e6ca1de7ee71132d2be0103f3e37d1fa872/website/docs/reference/faq.md) — Paglipat ng buong backup, `hermes import` at `hermes setup`; datos ang archive, hindi runtime image.
- [Manwal ng nakatakdang Hermes task, parehong nakapirming commit](https://github.com/NousResearch/hermes-agent/blob/86fa9e6ca1de7ee71132d2be0103f3e37d1fa872/website/docs/user-guide/features/cron.md) — Script mode na walang ahente, paghahatid, nilinis na kapaligiran, gateway at timeout. Suriin ang tulong ng naka-install na bersiyon bago magtakda.
- [age README](https://github.com/FiloSottile/age/blob/main/README.md) — Encryption sa tatanggap at decryption gamit ang identity. Ang nagbabagong `main` pahina ay sinuri noong 19 Oktubre 2026; hindi sinubukan ang tunay na encryption sa inert na pagsubok.
- [Pagkapribado ng GitHub repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/about-repositories), [Paglikha ng repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/quickstart-for-repositories) at [GitHub CLI repo view](https://cli.github.com/manual/gh_repo_view) — Pribadong access at muling pagbasa ng visibility. Nakasalalay pa rin ang access sa nirepasong katuwang at kredensiyal.
- [Git remote](https://git-scm.com/docs/git-remote) at [Git push](https://git-scm.com/docs/git-push) — Epektibong destinasyon at ipinadalang reference; may sariling pagsusuri ang script sa eksaktong head ng remote ng takbo.
- [Gabay ng GitHub sa malalaking file](https://docs.github.com/en/repositories/working-with-files/managing-large-files/about-large-files-on-github) at [Pag-alis ng sensitibong datos](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository) — Git size/history na limitasyon at bakit dapat palitan ang tumagas na kredensiyal sa halip na simpleng magtanggal ng file. Sinuri ang nagbabagong manwal noong 19 Oktubre 2026.
## Sources
- [Hermes Agent CLI commands, nakapirming commit 86fa9e6](https://github.com/NousResearch/hermes-agent/blob/86fa9e6ca1de7ee71132d2be0103f3e37d1fa872/website/docs/reference/cli-commands.md) — Buong backup syntax, saklaw ng datos ng gumagamit, hindi kasama at exit status; nakapirming commit sinuri 2026-10-19. Walang tunay na backup na sinubukan.
- [Hermes Agent madalas na tanong, nakapirming commit 86fa9e6](https://github.com/NousResearch/hermes-agent/blob/86fa9e6ca1de7ee71132d2be0103f3e37d1fa872/website/docs/reference/faq.md) — Pag-import at pag-aayos sa bagong makina; datos na archive, hindi aplikasyon/runtime image. Walang restore na sinubukan.
- [Manwal ng nakatakdang Hermes task, nakapirming commit 86fa9e6](https://github.com/NousResearch/hermes-agent/blob/86fa9e6ca1de7ee71132d2be0103f3e37d1fa872/website/docs/user-guide/features/cron.md) — Script na walang ahente, nilinis na kapaligiran, gateway, paghahatid at prayoridad ng timeout; naka-install na CLI hindi naobserbahan.
- [age README](https://github.com/FiloSottile/age/blob/main/README.md) — Encryption sa tatanggap at decryption sa identity; nagbabagong main sinuri 2026-10-19; hindi nag-encrypt ang inert na pagsubok.
- [Pagkapribado ng GitHub repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/about-repositories) — Hangganan ng pribadong access at epekto ng katuwang; nagbabagong manwal sinuri 2026-10-19.
- [Paglikha ng GitHub repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/quickstart-for-repositories) — Pribadong repository setup; nagbabagong manwal sinuri 2026-10-19.
- [GitHub CLI repo view](https://cli.github.com/manual/gh_repo_view) — isPrivate visibility readback; sinuri 2026-10-19.
- [Git remote](https://git-scm.com/docs/git-remote) — Asal ng epektibong fetch/push na destinasyon; nagbabagong Git manwal sinuri 2026-10-19.
- [Git push](https://git-scm.com/docs/git-push) — Asal ng tahasang reference push; nagbabagong manwal sinuri 2026-10-19.
- [Gabay ng GitHub sa malalaking file](https://docs.github.com/en/repositories/working-with-files/managing-large-files/about-large-files-on-github) — Babala sa 50 MiB, harang sa ordinaryong Git file lampas 100 MiB at hindi-backup-tool na babala; nagbabagong manwal sinuri 2026-10-19.
- [Pag-alis ng sensitibong GitHub datos](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository) — Pagpalit ng kredensiyal at limitasyon ng pag-alis ng history; nagbabagong manwal sinuri 2026-10-19.
Newsletter ng BIG CHANGE
Ang kabuuang larawan, sa sarili mong bilis.
Mga kamakailang kuwento tungkol sa AI at robotics, mga pagbabagong dapat bantayan, at mga praktikal na ideyang magagamit. Pumili ng araw-araw na briefing, lingguhang digest, o buwanang pananaw.
Next scheduled send (UTC): . Your first edition arrives at the next scheduled send after you confirm.
Privacy mo, pasya mo.
Tumutulong ang kinakailangang storage na panatilihing ligtas ang site at tandaan ang mga pinili mo. Nananatiling naka-off ang opsyonal na Google Analytics hangga’t hindi mo ito pinapahintulutan. Mababasa mo ang lahat ng kuwento gamit lamang ang kinakailangang storage. Mga detalye tungkol sa privacy