# Pilot Backup

> Automated backup of agent state to trusted peers with encryption and versioning. Use this skill when: 1. You need to backup agent configuration and state files to remote agents 2. You want automated scheduled backups with rotation and retention 3. You need encrypted backup storage on trusted peers Do NOT use this skill when: - You need general file synchronization (use pilot-sync instead) - You need one-time file transfer (use pilot-share instead) - You need streaming data backup (use pilot-stream-data instead)

- Skill: `teoslayer/pilot-backup` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add teoslayer/pilot-backup`
- Raw SKILL.md: https://api.skillmd.com/api/skills/teoslayer/pilot-backup/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- License: AGPL-3.0
- Author: TeoSlayer (https://skillmd.com/u/teoslayer)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/teoslayer/pilot-backup

---


# pilot-backup

Automated backup of agent configuration and state files to trusted peers with encryption and versioning.

## Commands

### Backup Agent State
```bash
BACKUP_DEST="1:0001.AAAA.BBBB"
BACKUP_FILE="/tmp/pilot-backup-$(date +%Y%m%d_%H%M%S).tar.gz"

tar czf "$BACKUP_FILE" "$HOME/.pilot"/*.json
pilotctl --json send-file "$BACKUP_DEST" "$BACKUP_FILE"
rm "$BACKUP_FILE"
```

### Restore from Backup
```bash
pilotctl --json send-message "$BACKUP_PEER" --data '{"type":"backup_request","date":"latest"}'
sleep 3

BACKUP_FILE=$(pilotctl --json received | jq -r '.received[0].filename')
tar xzf "$HOME/.pilot/received/$BACKUP_FILE" -C "$HOME/.pilot/"
```

### Backup Rotation
```bash
BACKUP_STORAGE="$HOME/.pilot/backup-storage"
MAX_BACKUPS=7

ls -1t "$BACKUP_STORAGE"/pilot-backup-*.tar.gz | tail -n +$((MAX_BACKUPS + 1)) | xargs rm -f
```

## Workflow Example

```bash
#!/bin/bash
# Automated backup management

BACKUP_STORAGE="$HOME/.pilot/backup-storage"
MAX_BACKUPS=7

mkdir -p "$BACKUP_STORAGE"

create_backup() {
  local dest="$1"
  local backup_file="/tmp/pilot-backup-$(date +%Y%m%d_%H%M%S).tar.gz"

  tar czf "$backup_file" "$HOME/.pilot"/*.json

  pilotctl --json send-file "$dest" "$backup_file"
  cp "$backup_file" "$BACKUP_STORAGE/"
  rm "$backup_file"

  # Rotate old backups
  ls -1t "$BACKUP_STORAGE"/pilot-backup-*.tar.gz | tail -n +$((MAX_BACKUPS + 1)) | xargs rm -f
}

create_backup "1:0001.AAAA.BBBB"
```

## Dependencies

Requires pilot-protocol, pilotctl, jq, and tar/gzip.

