{"id":50927787,"url":"https://github.com/danielxxomg/bak-cli","last_synced_at":"2026-06-17T01:01:43.559Z","repository":{"id":362622255,"uuid":"1259981185","full_name":"danielxxomg/bak-cli","owner":"danielxxomg","description":"bak — CLI tool to backup, restore \u0026 sync your AI coding setup across machines. Supports Claude Code, Cursor, Codex, Windsurf, Kiro, KiloCode, pi.dev, OpenCode.","archived":false,"fork":false,"pushed_at":"2026-06-16T06:53:13.000Z","size":7378,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-16T08:23:25.547Z","etag":null,"topics":["ai-assistant","ai-coding","backup-tool","claude-code","cli-tool","cloud-sync","codex","coding-config","config-backup","cross-platform","cursor-ide","dotfiles","encryption","go-cli","golang","opencode","restore","secret-detection","sync","windsurf"],"latest_commit_sha":null,"homepage":"https://github.com/danielxxomg/bak-cli","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danielxxomg.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-05T03:38:23.000Z","updated_at":"2026-06-16T06:53:15.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/danielxxomg/bak-cli","commit_stats":null,"previous_names":["danielxxomg/bak-cli"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/danielxxomg/bak-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielxxomg%2Fbak-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielxxomg%2Fbak-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielxxomg%2Fbak-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielxxomg%2Fbak-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danielxxomg","download_url":"https://codeload.github.com/danielxxomg/bak-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielxxomg%2Fbak-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34429493,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-16T02:00:06.860Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-assistant","ai-coding","backup-tool","claude-code","cli-tool","cloud-sync","codex","coding-config","config-backup","cross-platform","cursor-ide","dotfiles","encryption","go-cli","golang","opencode","restore","secret-detection","sync","windsurf"],"created_at":"2026-06-17T01:01:41.325Z","updated_at":"2026-06-17T01:01:43.492Z","avatar_url":"https://github.com/danielxxomg.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/brand/banner/bak-github-banner.png\" alt=\"bak — Pack your AI coding setup. Move anywhere.\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://goreportcard.com/report/github.com/danielxxomg/bak-cli\"\u003e\u003cimg src=\"https://goreportcard.com/badge/github.com/danielxxomg/bak-cli\" alt=\"Go Report Card\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opensource.org/licenses/MIT\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" alt=\"License: MIT\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/danielxxomg/bak-cli/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/danielxxomg/bak-cli\" alt=\"Release\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Go-1.25+-00ADD8?logo=go\u0026logoColor=white\" alt=\"Go 1.25+\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20Windows-lightgrey\" alt=\"Platform\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/tests-1235+-brightgreen\" alt=\"Tests\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003ebak\u003c/strong\u003e is a CLI tool that backs up, restores, and syncs your AI coding configuration across machines. Supports Claude Code, Cursor, Codex, Windsurf, Kiro, KiloCode, pi.dev, and OpenCode. Never lose your skills, MCP servers, plugins, agents, or config files again.\n\u003c/p\u003e\n\n## Supported Platforms\n\n| Platform | Install Method | Package Format |\n|----------|---------------|----------------|\n| macOS (arm64, amd64) | Homebrew, Go | `brew install --cask`, `go install` |\n| Linux (arm64, amd64) | Homebrew, .deb, .rpm, Go | `brew install --cask`, `.deb`, `.rpm`, `go install` |\n| Windows (arm64, amd64) | Scoop, Go | `scoop install`, `go install` |\n\n## Features\n\n- 🤖 **Multi-Agent Support** — Auto-detects 8 AI coding tools: Claude Code, Cursor, Codex, Windsurf, Kiro, KiloCode, pi.dev, and OpenCode\n- 🔄 **Backup \u0026 Restore** — Preset-based backups (quick, full, skills) with mandatory dry-run before restore\n- 🔒 **Secret Detection** — Automatically excludes API keys, tokens, and generates `.env.example` templates\n- ☁️ **Multi-Cloud Sync** — Push/pull backups to GitHub Gist, GitHub Repo, Codeberg, Gitea/Forgejo, and rclone (Google Drive, S3, etc.)\n- 🔐 **Encryption at Rest** — AES-256-GCM encryption with Argon2id key derivation; opt-in per profile\n- 👤 **Machine Profiles** — `bak profile` commands to scope backups per machine with independent adapter, category, preset, provider, and encryption settings\n- 🖥️ **Cross-Platform** — Works on Windows, macOS, and Linux with path normalization\n- 🎯 **Interactive Picker** — TUI with bubbletea for selective category backup\n- ↩️ **Undo** — Git-backed safety with `bak undo` (git revert)\n- 📦 **Export** — Export backups as portable tar.gz archives\n\n## Why bak?\n\nThere are many dotfile managers. **bak** is not one of them — it's purpose-built for AI coding setups, with features generic tools don't cover.\n\n| Feature | bak | chezmoi | mackup | stow |\n|---------|-----|---------|--------|------|\n| AI agent auto-detection (8 agents) | ✅ | ❌ | ❌ | ❌ |\n| Cloud sync (Gist, Codeberg, Gitea, rclone) | ✅ | ✅ (git) | ✅ (iCloud, etc.) | ❌ |\n| Encryption at rest (AES-256-GCM) | ✅ | ❌ | ❌ | ❌ |\n| Machine profiles | ✅ | ✅ (templates) | ❌ | ❌ |\n| Secret detection (auto-exclude tokens) | ✅ | ❌ | ❌ | ❌ |\n| Mandatory dry-run before restore | ✅ | ❌ | ❌ | ❌ |\n| Git-backed undo | ✅ | ✅ (git) | ❌ | ❌ |\n| YAML extensibility (presets, adapters) | ✅ | ❌ | ❌ | ❌ |\n\nIf you back up AI coding configs, bak is the only tool that auto-detects your agents, encrypts your data, and syncs across clouds — all with safety guarantees built in.\n\n## Installation\n\n### macOS / Linux (Recommended)\n\n```bash\nbrew install --cask danielxxomg/tap/bak\n```\n\n### Windows (Recommended)\n\n```bash\nscoop bucket add danielxxomg https://github.com/danielxxomg/bak-cli-tap\nscoop install bak\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eAlternative install methods\u003c/summary\u003e\n\n### Debian/Ubuntu\n\nDownload the `.deb` file from [GitHub Releases](https://github.com/danielxxomg/bak-cli/releases) and install:\n\n```bash\nsudo dpkg -i bak_*.deb\n```\n\n### RHEL/Fedora\n\nDownload the `.rpm` file from [GitHub Releases](https://github.com/danielxxomg/bak-cli/releases) and install:\n\n```bash\nsudo rpm -i bak-*.rpm\n```\n\n### Go\n\n```bash\ngo install github.com/danielxxomg/bak-cli@latest\n```\n\n### From Source\n\n```bash\ngit clone https://github.com/danielxxomg/bak-cli.git\ncd bak-cli\ngo build -o bak .\n```\n\n\u003c/details\u003e\n\n## Quick Start\n\n```bash\n# Create a backup\nbak backup\n\n# Create a backup scoped to a machine profile\nbak profile create work --provider github-gist --preset full --encrypt\nbak backup --profile work\n\n# Preview what would be restored\nbak restore --dry-run 20260604-150405\n\n# Restore a backup\nbak restore 20260604-150405\n\n# Undo the last restore\nbak undo\n\n# Sync to cloud (GitHub Gist, Codeberg, Gitea, rclone, etc.)\nbak login\nbak push --provider github-gist\nbak pull\n\n# Verify backup integrity\nbak verify 20260604-150405\nbak verify --verbose 20260604-150405\n\n# Compare two backups\nbak diff 20260604-150405 20260605-080000\n```\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `bak backup [--preset quick\\|full\\|skills] [--profile \u003cname\u003e]` | Create a backup |\n| `bak restore [--dry-run] [--force] \u003cid\u003e` | Restore a backup |\n| `bak undo` | Revert the last operation |\n| `bak list [--provider \u003cname\u003e]` | List local or cloud backups |\n| `bak pick` | Interactive TUI picker |\n| `bak push [id] [--provider \u003cname\u003e] [--profile \u003cname\u003e]` | Push to a cloud backend |\n| `bak pull [id] [--provider \u003cname\u003e] [--profile \u003cname\u003e]` | Pull from a cloud backend |\n| `bak export \u003cid\u003e [--output path]` | Export as tar.gz |\n| `bak login [--provider \u003cname\u003e]` | Authenticate with a cloud provider |\n| `bak profile create\\|list\\|show\\|delete` | Manage machine profiles |\n| `bak verify [--verbose] \u003cid\u003e` | Verify backup integrity |\n| `bak diff \u003cid1\u003e \u003cid2\u003e` | Show file-level differences between two backups |\n| `bak version` | Show version info |\n| `bak schedule create\\|list\\|remove` | Manage OS-native backup schedules |\n| `bak wizard` | Launch the interactive profile/backup wizard |\n\n## Configuration\n\n### Storage Location\n\nBackups are stored in `~/.bak/backups/\u003cid\u003e/`:\n\n```\n~/.bak/\n├── config.json          # bak configuration\n└── backups/\n    └── 20260604-150405/\n        ├── manifest.json\n        ├── .env.example\n        └── opencode/\n            ├── skills/\n            ├── commands/\n            ├── plugins/\n            └── config files...\n```\n\n### GitHub Token\n\nFor cloud sync, configure a GitHub token:\n\n```bash\n# Option 1: Interactive (GitHub only)\nbak login\n\n# Option 2: Environment variable\nexport GITHUB_TOKEN=ghp_xxxxxxxxxxxx\n\n# Option 3: Config file\nbak config set github.token ghp_xxxxxxxxxxxx\n```\n\n### Cloud Providers\n\nUse `--provider` to select a cloud backend for push/pull/list:\n\n| Provider | Flag | Config Key | Env Token |\n|----------|------|------------|-----------|\n| GitHub Gist | `github-gist` (default) | `providers.github.token` | `GITHUB_TOKEN` |\n| GitHub Repo | `github-repo` | `providers.github.token` + `.repo` | `GITHUB_TOKEN` |\n| Codeberg | `codeberg` | `providers.codeberg.token` + `.repo` | `CODEBERG_TOKEN` |\n| Gitea / Forgejo | `gitea` | `providers.gitea.token` + `.repo` + `.base_url` | `GITEA_TOKEN` |\n| Rclone | `rclone` | `providers.rclone.remote` | — |\n\n```bash\n# Push to a specific provider\nbak push --provider codeberg\n\n# List cloud backups\nbak list --provider github-gist\n\n# Configure non-GitHub providers\nbak config set providers.codeberg.token \u003cyour-token\u003e\nbak config set providers.codeberg.repo owner/backups\n```\n\n### Machine Profiles\n\nProfiles let you scope backups to specific machines with independent settings\nfor adapters, categories, preset, provider, and encryption.\n\n```bash\n# Create a profile for your work laptop\nbak profile create work-laptop --provider github-gist --preset full --encrypt\n\n# Create a lightweight profile for your home PC\nbak profile create home-pc --provider github-repo --preset quick\n\n# Create a profile that only backs up OpenCode and Cursor config\nbak profile create dev-box --provider codeberg --adapters opencode,cursor --categories config,skills\n\n# List all profiles\nbak profile list\n\n# Show full profile details\nbak profile show work-laptop\n\n# Delete a profile\nbak profile delete old-machine\n```\n\nUse a profile with `--profile` on `backup`, `push`, or `pull`:\n\n```bash\nbak backup --profile work-laptop\nbak push --profile work-laptop\nbak pull --profile work-laptop\n```\n\nWhen `--profile` is set, its preset, categories, and adapter list override\nthe equivalent CLI flags.\n\n### Custom Presets\n\nYou can define custom backup presets as YAML files under\n`~/.config/bak/presets/`. Each file defines a preset with a name and\ncategory list.\n\n**Example** (`~/.config/bak/presets/my-full.yaml`):\n\n```yaml\nname: my-full\ncategories:\n  - config\n  - skills\n  - commands\n  - plugins\n  - agents\n\nmetadata:\n  description: \"Custom full preset without MCP servers\"\n  author: \"you\"\n```\n\nIf a custom preset has the same name as a built-in (quick, full, skills),\nuse `--override` to prefer the custom version:\n\n```bash\nbak backup --preset full --override\n```\n\nWithout `--override`, name conflicts produce an error so you don't\naccidentally replace built-in behavior.\n\nCustom presets are merged with built-ins: any preset name not matching\na built-in is treated as a custom preset loaded from YAML.\n\n### Custom Adapters\n\nYou can register adapters for new tools without writing Go code by\nplacing YAML declarations in `~/.config/bak/adapters/`.\n\n**Example** (`~/.config/bak/adapters/myapp.yaml`):\n\n```yaml\nname: myapp\nconfig_path: .config/myapp\n\ncategories:\n  - name: config\n    root_files:\n      - config.yaml\n      - settings.json\n\n  - name: skills\n    sub_path: skills\n    is_dir: true\n\n  - name: commands\n    sub_path: commands\n    is_dir: true\n```\n\n`bak backup` will auto-detect your custom adapter if the `config_path`\ndirectory exists under your home directory. Use `--adapter myapp` to\nforce it.\n\nCustom adapters that share a name with a built-in adapter require\n`--override` to replace the built-in:\n\n```bash\nbak backup --adapter opencode --override\n```\n\nSee `examples/presets/` and `examples/adapters/` for annotated samples.\n\n### Backup Scheduling\n\nSchedule automatic backups using OS-native task schedulers (crontab on\nLinux/macOS, schtasks on Windows).\n\n```bash\n# Create a daily scheduled backup for a profile\nbak schedule create work --every daily\n\n# List all active bak-cli schedules\nbak schedule list\n\n# Remove a schedule\nbak schedule remove work\n```\n\nSupported intervals: `daily`, `weekly`, `every-12h`, `every-6h`.\n\nEach schedule runs `bak backup --profile \u003cname\u003e \u0026\u0026 bak push --profile \u003cname\u003e`\nat the configured interval.\n\n### Interactive Wizard\n\nUse `--interactive` on `profile create` or `login` to launch a step-by-step\nTUI wizard powered by [Bubble Tea](https://github.com/charmbracelet/bubbletea).\n\n```bash\n# Create a profile interactively (no flags needed)\nbak profile create my-machine --interactive\n\n# Login with provider selection wizard\nbak login --interactive\n```\n\nThe wizard walks through provider selection, preset choice, adapter toggling,\nand category selection with keyboard navigation.\n\n### Encryption\n\nEncryption is enabled per profile with the `--encrypt` flag on `bak profile create`.\nEncrypted archives use **AES-256-GCM** with **Argon2id** key derivation (64 MB RAM,\n3 iterations, 4 parallelism).\n\n| Feature | Detail |\n|---------|--------|\n| Algorithm | AES-256-GCM |\n| Key derivation | Argon2id (64 MB, 3 iter, 4 parallel) |\n| Magic bytes | `BAK_ENC\\x01` — instant detection without parsing |\n| Password input | Interactive prompt (stdin) or `BAK_ENCRYPTION_PASSWORD` env var |\n| Backward compat | Plaintext archives from v0.2.0 are detected and handled automatically |\n\n**Push flow**: `bak push --profile work` encrypts the tar.gz archive before upload.\n**Pull flow**: `bak pull` detects magic bytes, prompts for password, decrypts on the fly.\n\n```bash\n# Set password via environment variable (CI/scripts)\nexport BAK_ENCRYPTION_PASSWORD=\"your-secure-password\"\nbak push --profile work\n\n# Or use interactive prompt (no env var set)\nbak push --profile work\n# → Enter encryption password: ********\n```\n\nEncryption metadata (algorithm, KDF, salt, nonce) is stored in the backup manifest\nfor auditability. The password itself is never persisted to disk.\n\n### Supported AI Coding Agents\n\n`bak backup` auto-detects installed agents in priority order:\n\n| Agent | Path | Priority |\n|-------|------|----------|\n| Claude Code | `~/.claude/` | 1 |\n| Cursor | `~/.cursor/` | 2 |\n| Codex | `~/.codex/` | 3 |\n| Windsurf | `~/.codeium/windsurf/` | 4 |\n| Kiro | `~/.kiro/` | 5 |\n| KiloCode | `~/.kilocode/` | 6 |\n| pi.dev | `~/.pi/` | 7 |\n| OpenCode | `~/.config/opencode/` | 8 |\n\nForce a specific adapter:\n```bash\nbak backup --adapter cursor\n```\n\n## Architecture\n\n```\nbak-cli/\n├── cmd/                    # CLI commands (cobra)\n├── internal/\n│   ├── adapters/           # Agent adapters (8 supported: Claude Code, Cursor, Codex,\n│   │   │                   #   Windsurf, Kiro, KiloCode, pi.dev, OpenCode)\n│   │   └── register/       # RegisterAll() wire-up\n│   ├── backup/             # Backup engine + presets + secrets\n│   ├── restore/            # Restore engine + dry-run + git safety\n│   ├── manifest/           # Manifest schema + validation\n│   ├── cloud/              # Cloud provider abstraction (GitHub Gist, GitHub Repo,\n│   │                       #   Codeberg, Gitea/Forgejo, Rclone)\n│   ├── crypto/             # AES-256-GCM encryption + Argon2id key derivation\n│   ├── paths/              # Cross-platform path normalization\n│   ├── git/                # Git operations (go-git)\n│   ├── config/             # Configuration management + v0.1.0 → v0.3.0 migration\n│   ├── presets/            # Preset definitions\n│   └── schedule/           # OS-native task scheduling (crontab / schtasks)\n├── .goreleaser.yaml        # Cross-platform release config\n└── Taskfile.yml             # Development workflow targets\n```\n\n### Data Flow\n\n```mermaid\ngraph LR\n    subgraph \"bak backup\"\n        A[Detect Adapters] --\u003e B[Resolve Preset]\n        B --\u003e C[Copy Files]\n        C --\u003e D[Scan Secrets]\n        D --\u003e E[Generate Manifest]\n        E --\u003e F[Auto-commit]\n    end\n\n    subgraph \"bak restore\"\n        G[Load Manifest] --\u003e H[Validate Checksums]\n        H --\u003e I[Compute Dry-run]\n        I --\u003e J{User Confirms?}\n        J --\u003e|Yes| K[Apply Restore]\n        J --\u003e|No| L[Cancel]\n        K --\u003e M[Auto-commit]\n    end\n\n    subgraph \"Cloud Sync\"\n        N[bak push] --\u003e O[Package tar.gz]\n        O --\u003e P[Upload to Gist]\n        Q[bak pull] --\u003e R[Download Gist]\n        R --\u003e S[Extract \u0026 Restore]\n    end\n\n    subgraph \"Safety\"\n        T[bak undo] --\u003e U[git revert HEAD]\n    end\n```\n\n### Adapter Pattern\n\n```mermaid\nclassDiagram\n    class Adapter {\n        \u003c\u003cinterface\u003e\u003e\n        +Name() string\n        +Detect(homeDir) bool\n        +ListItems(homeDir, categories) []Item\n        +Backup(homeDir, backupDir, items) error\n        +Restore(homeDir, backupDir) error\n    }\n\n    class OpenCodeAdapter {\n        +Name() \"opencode\"\n        +Detect() ~/.config/opencode\n    }\n\n    class Registry {\n        +Register(adapter)\n        +DetectAll(homeDir) []DetectedAdapter\n        +Get(name) Adapter\n    }\n\n    Adapter \u003c|.. OpenCodeAdapter\n    Registry --\u003e Adapter\n```\n\n## Safety Guarantees\n\n- ✅ **Mandatory dry-run** — Always preview changes before restore\n- ✅ **Git-backed safety** — Auto-commit before/after restore\n- ✅ **Instant rollback** — `bak undo` reverts in one command\n- ✅ **Secret exclusion** — API keys/tokens never backed up\n- ✅ **Path validation** — Prevents path traversal attacks\n- ✅ **Checksum verification** — SHA-256 integrity checks\n\n## Contributing\n\nContributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, code style, adapter implementation guide, and PR process.\n\nQuick start: fork → branch → commit (conventional commits) → push → PR.\n\n## Next Steps\n\n- **Interactive setup?** Run `bak wizard` for a step-by-step TUI setup.\n- **Automated backups?** Set up a [schedule](#backup-scheduling) with `bak schedule create`.\n- **Custom backup presets?** Add YAML files to `~/.config/bak/presets/`. See [Custom Presets](#custom-presets).\n- **Support a new tool?** Register a [custom adapter](#custom-adapters) in `~/.config/bak/adapters/`.\n\n## Roadmap\n\n### Completed ✅\n- v1.3.0 — Multi-OS package manager support (Homebrew, Scoop, deb, rpm)\n- v1.2.x — DI refactor, CI hardening, test coverage bump\n- v1.1.0 — QA stack (Taskfile, golangci-lint, E2E, fuzz, benchmarks)\n- v1.0.0 — Stable release (8 adapters, 5 cloud backends, encryption, profiles)\n- v0.3.0 — Encryption at rest + machine profiles\n- v0.2.0 — Multi-agent + cloud backends\n\n### Future\n- [ ] homebrew-core submission\n- [ ] scoop-extras submission\n- [ ] winget, AUR, nix support\n- [ ] Plugin system for custom backup strategies\n\n\u003cdetails\u003e\n\u003csummary\u003eBrand Assets\u003c/summary\u003e\n\nVisual assets are in `docs/brand/`:\n\n| Asset | File | Usage |\n|-------|------|-------|\n| Wordmark (color) | `logo/bak-wordmark-color.png` | Primary brand mark |\n| Wordmark (mono) | `logo/bak-wordmark-mono-white.png` | Dark backgrounds, print |\n| GitHub Banner | `banner/bak-github-banner.png` | Social preview, README |\n| Icon (geometric) | `icon-secondary/bak-icon-geometric.png` | Official icon, favicons |\n| Icon (friendly) | `icon-secondary/bak-icon-friendly.png` | Stickers, swag, presentations |\n| Favicon 32px | `favicon/bak-favicon-32.png` | Browser tab, small icon |\n| Favicon 16px | `favicon/bak-favicon-16.png` | Browser tab (tiny) |\n\n\u003c/details\u003e\n\n## License\n\nMIT License — see [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielxxomg%2Fbak-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanielxxomg%2Fbak-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielxxomg%2Fbak-cli/lists"}