Stop copying AI coding-agent instructions between tools by hand.
One local source of truth · Optional private GitHub backup · macOS · Tauri · React
AISync solves one problem: AI coding tools each want their own instruction and skill files, so keeping them consistent becomes manual copy-paste work.
AISync gives you one place to edit those prompts, skills, and instructions. It keeps the source of truth in a local AISync folder, then syncs enabled skills and global instructions into configured tool folders with symbolic links. The default targets are Codex, Copilot, and Pi, and custom targets can be added from the app.
AISync is local-first by default. You can also connect GitHub to back up and sync your AISync instructions and skills through a private repository.
I use AI coding tools on more than one computer and wanted the same skills and instructions everywhere. This started as a simple repo that I cloned onto each machine and synced with a Bash script, but the copies kept drifting out of sync.
AISync turns that manual setup into a small local app: one source of truth, symlinked into each tool, with optional GitHub sync so another machine can pull the same configuration.
Note: the Rust/Tauri backend was generated with AI assistance and reviewed by me. I am not a Rust expert, so security-sensitive or platform-specific changes should get extra review.
- Manage reusable AI-agent skills.
- Edit shared global instructions.
- Sync into multiple tool configurations.
- Optionally sync instructions and skills through GitHub.
- Resolve local/remote sync conflicts.
- Enable or disable individual skills and targets.
- Backup existing target files before replacing them.
- Light, dark, and system themes.
- English and Swedish UI.
AISync stores its data under ~/.aisync by default:
config.jsonstores sync targets and skill metadata.skills/stores skill folders.instructions.mdstores global instructions.
When you save changes, AISync updates enabled targets by creating symlinks from the target tool folders back to the AISync source files. Existing target files are backed up into .aisync-backups before they are replaced.
If GitHub sync is enabled, AISync uses GitHub device login, stores the token in the system keychain, and syncs AISync-owned instructions and skills under .aisync/ in a private aisync-config repository. macOS may ask for permission to store or access the token in Keychain.
For development and tests, the local root can be overridden with AISYNC_HOME.
- macOS
- Node.js
- pnpm
- Rust
- Tauri prerequisites
Linux and Windows adapters exist in the codebase, but they are not implemented yet.
- Open the latest GitHub Release: https://github.com/mohammedhammoud/aisync/releases/latest
- Download the
.dmgfile from the release assets. - Open the DMG.
- Drag
AISync.appintoApplications. - Launch AISync from
Applications.
Only download AISync from the official GitHub Releases page above.
AISync is currently unsigned and not notarized. On first launch, macOS Gatekeeper may show:
"AISync" cannot be opened because Apple cannot check it for malicious software.Safe workaround:
- Move
AISync.apptoApplications. - Right-click
AISync.app. - Choose
Open. - Confirm
Openin the dialog.
If macOS still blocks the app:
- Open
System Settings. - Go to
Privacy & Security. - Scroll to
Security. - Click
Open Anywayfor AISync. - Confirm
Open.
If that still does not work, remove the quarantine flag manually. Only do this for an app downloaded from the official release page:
xattr -dr com.apple.quarantine /Applications/AISync.appThe app checks for updates on startup and can install signed Tauri updater releases in-app. If updater metadata is unavailable, the notice falls back to the GitHub Release page.
- Download and install AISync.
- Open the app and keep the default local AISync folder, or choose another folder.
- Add or edit global instructions.
- Add reusable skills.
- Enable the tools you want to sync, then save.
- Optional: connect GitHub sync for private backup and another-machine sync.
More detail: Quick start tutorial.
Install dependencies:
pnpm installRun the web app:
pnpm devRun the desktop app:
pnpm tauri devBuild:
pnpm build
pnpm tauri buildThe Release workflow runs Release Please from Conventional Commits on main. It opens a release PR; merging that PR updates versions and changelog, creates the aisync-v*.*.* tag, then builds an unsigned universal macOS DMG plus Tauri updater artifacts.
The same workflow can also be run manually with an existing tag to rebuild/upload the DMG.
No Apple Developer Program is required for this workflow. macOS Gatekeeper may warn users on first open because the app is not signed or notarized.
The release build uploads the DMG, updater metadata, SHA256 checksums, and a detached GPG signature for the checksum file when GPG_PRIVATE_KEY is configured.
Updater signing uses the public key in src-tauri/tauri.conf.json. Keep the private key outside the repo and configure TAURI_SIGNING_PRIVATE_KEY in GitHub Actions secrets.
pnpm typecheck
pnpm lint
pnpm test:unit
pnpm test:e2eStorybook:
pnpm storybook- Tauri 2
- React 19
- TypeScript
- Vite
- Tailwind CSS
- Zustand
- TanStack Router
- i18next
- Vitest
- Playwright
- Storybook
- Questions, bugs, and feature requests: open an issue.
- Pull requests: read CONTRIBUTING.md.
- Expected behavior: CODE_OF_CONDUCT.md.
- Sharing notes: docs/PROMOTION.md.
Issues and pull requests are welcome.
Keep changes small, focused, and easy to review. Prefer simple behavior, local-first defaults, and clear file-system safety. Good first contributions include docs improvements, macOS install notes, accessibility fixes, and small UI polish.
MIT. See LICENSE.
