agent_sync 0.0.1-dev05
agent_sync: ^0.0.1-dev05 copied to clipboard
Thin Dart wrapper for AgentSync shell engine with GitHub-backed SSOT.
What is AgentSync? #
agent_sync is a thin Dart wrapper over the AgentSync shell engine.
The engine remains the single source of truth (agent/.ai/system/*.sh).
The Dart package executes this engine locally using Isolate resolution to ensure scripts are always synced natively with your installed package version.
Table of Contents #
Getting Started #
Installation #
Add the package via standard pub.dev dependency:
dependencies:
agent_sync: ^0.0.1-dev05
Then run:
dart pub get
Minimal workflow for users #
- Add package to
pubspec.yaml. - Create
.ai/in your project and put:.ai/AGENTS.md.ai/rules/*.md.ai/skills/*/SKILL.md.ai/tools/*.yaml
- Run:
dart run agent_sync:agent_sync sync
Generated files appear in destinations from .ai/tools/*.yaml (for example .codex/*, .claude/*, .github/*, .gemini/*).
CLI #
dart run agent_sync:agent_sync sync --project-dir .
dart run agent_sync:agent_sync sync --project-dir . --only codex,cursor --dry-run
dart run agent_sync:agent_sync check --project-dir .
dart run agent_sync:agent_sync setup-hooks --project-dir .
Useful options: #
| Option | Description |
|---|---|
--repo-url / --repo-ref |
Point to a remote GitHub repository instead of the locally installed package |
--cache-dir |
Where the cloned remote engine repo is cached (if using --repo-url) |
--no-update |
Use existing remote cache without git fetch (default behavior) |
--update |
Refresh cached repository before command execution |
--local-repo-path |
Run scripts from a local checkout instead of cloning |
Note: Local repository auto-detection is used only when repo options are not explicitly provided.
Optional project config #
You can customize source paths via agent_sync.yaml in project root:
source:
agents: ".ai/AGENTS.md"
rules: ".ai/rules"
skills: ".ai/skills"
tools: ".ai/tools"
Flat keys are also supported:
agents: ".ai/AGENTS.md"
rules: ".ai/rules"
skills: ".ai/skills"
tools: ".ai/tools"
Dart API #
You can also use AgentSync programmatically from Dart:
import 'package:agent_sync/agent_sync.dart';
Future<void> main() async {
final client = AgentSyncClient();
await client.sync(projectDirectory: '.', dryRun: true);
}
Notes #
- Requires
bashavailable inPATH. (gitis only required if using remote--repo-urloverrides). - Scripts are executed with
AGENTSYNC_REPO_ROOT=<project-dir>. - Source layout is auto-detected for both
.ai/src/*and.ai/*. If omitted, fallback defaults are extracted securely from your local pub-cache directly!