{"id":48767822,"url":"https://github.com/rios0rios0/aisync","last_synced_at":"2026-04-13T08:35:24.262Z","repository":{"id":349192445,"uuid":"1201317267","full_name":"rios0rios0/aisync","owner":"rios0rios0","description":"Sync AI coding assistant configurations (rules, agents, commands, hooks, skills, memories) across devices. Git-backed, age-encrypted, 30+ tools supported. The chezmoi for AI tools.","archived":false,"fork":false,"pushed_at":"2026-04-04T18:08:28.000Z","size":371,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-04T19:36:35.536Z","etag":null,"topics":["ai-rules","claude-code","cli","developer-tools","dotfiles"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rios0rios0.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"rios0rios0"}},"created_at":"2026-04-04T14:11:02.000Z","updated_at":"2026-04-04T18:08:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rios0rios0/aisync","commit_stats":null,"previous_names":["rios0rios0/aisync"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/rios0rios0/aisync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rios0rios0%2Faisync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rios0rios0%2Faisync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rios0rios0%2Faisync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rios0rios0%2Faisync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rios0rios0","download_url":"https://codeload.github.com/rios0rios0/aisync/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rios0rios0%2Faisync/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31746107,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T06:26:45.479Z","status":"ssl_error","status_checked_at":"2026-04-13T06:26:44.645Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-rules","claude-code","cli","developer-tools","dotfiles"],"created_at":"2026-04-13T08:35:21.004Z","updated_at":"2026-04-13T08:35:24.255Z","avatar_url":"https://github.com/rios0rios0.png","language":null,"funding_links":["https://github.com/sponsors/rios0rios0"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eaisync\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/rios0rios0/aisync/releases/latest\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/release/rios0rios0/aisync.svg?style=for-the-badge\u0026logo=github\" alt=\"Latest Release\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/rios0rios0/aisync/blob/main/LICENSE\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/license/rios0rios0/aisync.svg?style=for-the-badge\u0026logo=github\" alt=\"License\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/rios0rios0/aisync/actions/workflows/default.yaml\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/rios0rios0/aisync/default.yaml?branch=main\u0026style=for-the-badge\u0026logo=github\" alt=\"Build Status\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nSync AI coding assistant configurations across devices. Pull shared rules from community sources, push personal configs via Git, encrypt sensitive data with age.\n\n## Features\n\n- **30+ AI tools**: Claude Code, Cursor, Copilot, Codex, Gemini CLI, Windsurf, Cline, Roo Code, and [25+ more](#supported-ai-tools)\n- **Cross-device sync**: Git-backed, no cloud dependency, no SaaS subscription\n- **External sources**: Pull shared rules from any public Git repository (tarball-only, zero API calls)\n- **Shared/personal split**: Enforced namespaces — shared rules from sources, personal rules across devices\n- **Age encryption**: Memories and sensitive settings encrypted at rest — public repos are safe\n- **File watching**: Real-time change detection with fsnotify + polling fallback for Termux\n- **Diff preview**: See what would change before applying, with recency detection\n- **Secret scanning**: 15 regex patterns block accidental credential leaks before push\n- **Atomic apply**: Two-phase commit with journal prevents partial updates\n- **Self-update**: Single binary, updates from GitHub Releases via `aisync self-update`\n\n## Quick Start\n\n```bash\n# Install\ngo install github.com/rios0rios0/aisync/cmd/aisync@latest\n\n# Initialize a new aifiles repo\naisync init\n\n# Generate an age encryption key\naisync key generate\n\n# Add the engineering guide as an external source\naisync source add guide --source-repo rios0rios0/guide --branch generated\n\n# Pull shared rules into ~/.claude/, ~/.cursor/, ~/.codex/, etc.\naisync pull\n\n# Check status\naisync status\n```\n\n### Restore on a new device\n\n```bash\n# Clone your existing aifiles repo (convention: \u003cgithub-user\u003e/aifiles)\naisync init rios0rios0\n\n# Or with a full URL\naisync init --remote-url git@github.com:rios0rios0/aifiles.git --key ~/.config/aisync/key.txt\n```\n\n## The `aifiles` Convention\n\nLike chezmoi expects a `dotfiles` repo, aisync expects an `aifiles` repo:\n\n| Aspect | chezmoi | aisync |\n|--------|---------|--------|\n| Repo name | `dotfiles` | `aifiles` |\n| Local clone | `~/.local/share/chezmoi/` | `~/.config/aisync/repo/` |\n| Shorthand | `chezmoi init \u003cuser\u003e` | `aisync init \u003cuser\u003e` |\n\nThe `aifiles` repo can be **public** — personal data (memories, local settings) is encrypted with age.\n\n## Usage\n\n### Daily Workflow\n\n```bash\naisync sync          # Pull shared rules + push personal changes\naisync watch         # Monitor for changes in real-time\naisync watch --auto-push  # Auto-push after 60s debounce\n```\n\n### Source Management\n\n```bash\naisync source add guide --source-repo rios0rios0/guide --branch generated\naisync source add ecc --source-repo affaan-m/everything-claude-code --branch main\naisync source pin ecc --ref v2.1.0\naisync source list\naisync source update\naisync source remove ecc\n```\n\n### Encryption\n\n```bash\naisync key generate          # Create age key pair\naisync key export            # Print public key\naisync key add-recipient \u003cpubkey\u003e  # Multi-device decryption\naisync key import \u003cpath\u003e     # Import existing key\n```\n\n### Diagnostics\n\n```bash\naisync status     # Sync state, managed files, sources (offline indicator if unreachable)\naisync diff       # Preview what would change (interactive TUI viewer when TTY)\naisync doctor     # Check config, git, age key, tools, sources, git connectivity\naisync device list\n```\n\n### Advanced Options\n\n```bash\n# Use system git instead of built-in go-git (for Git LFS, SSH edge cases)\naisync pull --use-system-git\n\n# Add source from a specific subdirectory\naisync source add mytools --source-repo org/repo --branch main --path tools/claude\n\n# Import source definition from a URL\naisync source add --from-url https://example.com/aisync-source.yaml\n\n# Configure polling interval for Android/Termux\naisync watch --polling-interval 15s --auto-push\n```\n\n### Encryption Filters\n\nNew repos created with `aisync init` are automatically configured with git clean/smudge filters for transparent age encryption. Files matching `.aisyncencrypt` patterns are encrypted on `git add` and decrypted on `git checkout`. This works with `--use-system-git`; with built-in go-git, encryption is handled during push/pull.\n\n## Recommended External Sources\n\n| Source | Repository | Branch | Description |\n|--------|-----------|--------|-------------|\n| **Guide** | `rios0rios0/guide` | `generated` | 14 engineering standard rules, 7 agents, 8 commands, 5 skills |\n| **Agents** | `wshobson/agents` | `main` | 112+ specialized agents (docs, TDD, CI/CD) |\n| **Everything Claude Code** | `affaan-m/everything-claude-code` | `main` | Anthropic Hackathon winner. 28 agents, 125 skills, 60 commands |\n| **Power Platform** | `microsoft/power-platform-skills` | `main` | Official Microsoft Power Platform plugins |\n| **HVE Core** | `microsoft/hve-core` | `main` | 49 agents, 102 instructions, 63 prompts, 11 skills |\n\n```bash\naisync source add guide --source-repo rios0rios0/guide --branch generated\naisync source add agents --source-repo wshobson/agents --branch main\naisync source add ecc --source-repo affaan-m/everything-claude-code --branch main\naisync source add power-platform --source-repo microsoft/power-platform-skills --branch main\naisync source add hve-core --source-repo microsoft/hve-core --branch main\naisync pull\n```\n\n## Supported AI Tools\n\n### Tier 1 (full support)\n\nClaude Code, Cursor, GitHub Copilot (IDE + CLI), Codex CLI, Gemini CLI, Windsurf\n\n### Tier 2 (extended support)\n\nCline, Roo Code, Continue.dev, Aider, Zed, Trae, Warp, Amazon Q Developer, Amp, Junie, Kilo Code, Goose\n\n### Tier 3 (community support)\n\nOpenCode, OpenClaw, Antigravity, Kiro, Factory/Droid, Augment Code, Tabnine, Qwen Code, Rovo Dev, deepagents, Replit, Blackbox AI, JetBrains AI\n\nNew tools are added by editing `config.yaml` — aisync treats all files as opaque blobs.\n\n## How aisync Compares\n\n| Feature | **aisync** | memoir.sh | memories.sh | claude-brain | chezmoi | ai-rules-sync | skillshare | rulesync |\n|---------|-----------|-----------|-------------|--------------|---------|---------------|------------|----------|\n| **Open source (fully)** | Yes (MIT) | CLI only | CLI only | Yes (MIT) | Yes (MIT) | Yes | Yes (MIT) | Yes (MIT) |\n| **No cloud dependency** | Yes (Git) | No ($15-29/mo) | No ($15-25/mo) | Yes (Git) | Yes (Git) | Yes (Git) | Yes | Yes |\n| **AI tools supported** | 30+ | 11 | 19 | 1 | N/A | 31 | 55+ | 24 |\n| **Cross-device sync** | Yes | Yes (paid) | Yes (paid) | Yes | Yes | No | No | No |\n| **External source pull** | Yes | No | No | No | Yes | Yes | Yes | Yes |\n| **Encryption (at rest)** | Yes (age) | Yes (AES) | Yes | Yes (age) | Yes | No | No | No |\n| **File watching** | Yes | No | No | No | No | No | No | No |\n| **Diff preview** | Yes | Yes | Yes | No | Yes | No | No | No |\n| **Secret scanning** | Yes | Yes | No | No | No | No | Yes | No |\n| **Shared/personal split** | Yes | Profiles (paid) | Profiles (paid) | Yes | Manual | Yes | No | No |\n| **Scoped to AI tools** | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes |\n| **Atomic apply** | Yes (journal) | No | No | No | No | No | No | No |\n| **Offline support** | Yes | No | No | Yes | Yes | N/A | N/A | N/A |\n\n### When to Use Each Tool\n\n| If you need... | Use |\n|----------------|-----|\n| Sync AI configs across devices + pull shared rules | **aisync** |\n| MCP-based persistent memory with cloud backup | **memoir.sh** or **memories.sh** |\n| Semantic merge of Claude Code memory using LLM | **claude-brain** |\n| General-purpose dotfile management | **chezmoi** |\n| Distribute rules on the same machine via symlinks | **ai-rules-sync** or **skillshare** |\n| Generate tool-specific rules from a unified source | **rulesync** |\n| Claude Code native plugin distribution | **Claude Code Plugin Marketplace** |\n\naisync is **complementary** to the Claude Code Plugin Marketplace — plugins cannot distribute rules (`.claude/rules/*.md`), which is aisync's core value.\n\n## Why Not chezmoi?\n\naisync is heavily inspired by chezmoi — Git-backed sync, age encryption, diff previews, external source fetching. But chezmoi solves a **different problem**.\n\n| Concern | chezmoi | aisync |\n|---------|---------|--------|\n| **Scope** | Entire `$HOME` | Only AI tool directories |\n| **Shared vs personal** | Manual (no enforcement) | Enforced namespaces (`shared/`, `personal/`) |\n| **Multi-source aggregation** | `.chezmoiexternal.toml` (fragile at scale) | First-class with ordering, conflict detection, provenance |\n| **Merge strategies** | Generic 3-way text merge | AI-tool-aware (hooks concat, settings deep merge, section concat) |\n| **File watching** | Declined ([issue #752](https://github.com/twpayne/chezmoi/issues/752)) | Built-in (fsnotify + polling fallback) |\n| **User prerequisite** | Full chezmoi installation | Single binary, one config file |\n\n**Use chezmoi for your dotfiles. Use aisync for your AI tools.** Add `~/.claude/`, `~/.cursor/`, `~/.codex/`, `~/.gemini/` to `.chezmoiignore` and let aisync manage those directories.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frios0rios0%2Faisync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frios0rios0%2Faisync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frios0rios0%2Faisync/lists"}