@chrisleekr/agentsync 0.0.1 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +154 -29
- package/dist/cli.js +33964 -0
- package/package.json +69 -6
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 AgentSync Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,45 +1,170 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="./docs/agentsync-logo.png" alt="AgentSync logo" width="200" height="200"/>
|
|
3
|
+
<h1>AgentSync</h1>
|
|
4
|
+
<h3><em>Encrypted sync for AI agent configuration.</em></h3>
|
|
5
|
+
</div>
|
|
2
6
|
|
|
3
|
-
|
|
7
|
+
<p align="center">
|
|
8
|
+
<strong>Snapshot, redact, encrypt, and restore Claude, Cursor, Codex, Copilot, and VS Code setup from a Git-backed vault.</strong>
|
|
9
|
+
</p>
|
|
4
10
|
|
|
5
|
-
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://github.com/chrisleekr/agentsync/releases/latest"><img src="https://img.shields.io/github/v/release/chrisleekr/agentsync" alt="Latest Release"/></a>
|
|
13
|
+
<a href="https://github.com/chrisleekr/agentsync/stargazers"><img src="https://img.shields.io/github/stars/chrisleekr/agentsync?style=social" alt="GitHub stars"/></a>
|
|
14
|
+
<a href="https://github.com/chrisleekr/agentsync/blob/main/LICENSE"><img src="https://img.shields.io/github/license/chrisleekr/agentsync" alt="License"/></a>
|
|
15
|
+
<a href="./docs/development.md"><img src="https://img.shields.io/badge/docs-in_repo-blue" alt="Documentation"/></a>
|
|
16
|
+
</p>
|
|
6
17
|
|
|
7
|
-
|
|
18
|
+
AgentSync is a Bun-based CLI and background daemon that snapshots AI agent configuration from your machine, encrypts it with age recipients, and stores it in a Git-backed vault so you can pull the same setup onto another machine.
|
|
8
19
|
|
|
9
|
-
|
|
20
|
+
It is for people who keep global agent configuration in tools like Claude, Cursor, Codex, Copilot, and VS Code and want one encrypted source of truth instead of manually copying files between laptops.
|
|
10
21
|
|
|
11
|
-
|
|
12
|
-
1. Configure OIDC trusted publishing for the package name `@chrisleekr/agentsync`
|
|
13
|
-
2. Enable secure, token-less publishing from CI/CD workflows
|
|
14
|
-
3. Establish provenance for packages published under this name
|
|
22
|
+
## Released CLI path
|
|
15
23
|
|
|
16
|
-
|
|
24
|
+
Use the published package path only after a tagged GitHub Release and npm publish have both completed for the version you want.
|
|
17
25
|
|
|
18
|
-
|
|
26
|
+
Use this path when you are evaluating or operating a published AgentSync release.
|
|
27
|
+
If you are developing from a local clone or testing unreleased changes, use the contributor-from-source workflow instead.
|
|
19
28
|
|
|
20
|
-
|
|
29
|
+
Prerequisites for the released CLI path:
|
|
21
30
|
|
|
22
|
-
|
|
31
|
+
- Bun 1.3.9 or later
|
|
32
|
+
- A published AgentSync package for the version you want to run
|
|
23
33
|
|
|
24
|
-
|
|
25
|
-
2. Configure the trusted publisher (e.g., GitHub Actions)
|
|
26
|
-
3. Specify the repository and workflow that should be allowed to publish
|
|
27
|
-
4. Use the configured workflow to publish your actual package
|
|
34
|
+
First-run verification command for the published CLI:
|
|
28
35
|
|
|
29
|
-
|
|
36
|
+
```bash
|
|
37
|
+
bunx --package @chrisleekr/agentsync agentsync --version
|
|
38
|
+
```
|
|
30
39
|
|
|
31
|
-
|
|
32
|
-
- Contains no executable code
|
|
33
|
-
- Provides no functionality
|
|
34
|
-
- Should not be installed as a dependency
|
|
35
|
-
- Exists only for administrative purposes
|
|
40
|
+
Run the published CLI with `bunx` when you do not want a separate global install:
|
|
36
41
|
|
|
37
|
-
|
|
42
|
+
```bash
|
|
43
|
+
bunx --package @chrisleekr/agentsync agentsync <command> [options]
|
|
44
|
+
```
|
|
38
45
|
|
|
39
|
-
|
|
40
|
-
- [npm Trusted Publishing Documentation](https://docs.npmjs.com/generating-provenance-statements)
|
|
41
|
-
- [GitHub Actions OIDC Documentation](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect)
|
|
46
|
+
Common `bunx` examples:
|
|
42
47
|
|
|
43
|
-
|
|
48
|
+
```bash
|
|
49
|
+
# Verify the published CLI resolves correctly
|
|
50
|
+
bunx --package @chrisleekr/agentsync agentsync --version
|
|
44
51
|
|
|
45
|
-
|
|
52
|
+
# Initialize a vault from the published package
|
|
53
|
+
bunx --package @chrisleekr/agentsync agentsync init --remote git@github.com:<you>/agentsync-vault.git --branch main
|
|
54
|
+
|
|
55
|
+
# Push local agent config into the encrypted vault
|
|
56
|
+
bunx --package @chrisleekr/agentsync agentsync push
|
|
57
|
+
|
|
58
|
+
# Pull the latest vault state onto this machine
|
|
59
|
+
bunx --package @chrisleekr/agentsync agentsync pull
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Use the GitHub Release record as the canonical place to see:
|
|
63
|
+
|
|
64
|
+
- which version you are installing
|
|
65
|
+
- what changed in that release
|
|
66
|
+
|
|
67
|
+
Start here:
|
|
68
|
+
|
|
69
|
+
- [Latest release](https://github.com/chrisleekr/agentsync/releases/latest)
|
|
70
|
+
- [All releases](https://github.com/chrisleekr/agentsync/releases)
|
|
71
|
+
|
|
72
|
+
## What a vault means here
|
|
73
|
+
|
|
74
|
+
The vault is a normal Git repository that stores encrypted artifacts such as `claude/CLAUDE.md.age` or `copilot/skills/<name>.tar.age`. AgentSync never pushes plaintext configs. Files that match hard never-sync patterns or contain literal secrets abort the push before encryption.
|
|
75
|
+
|
|
76
|
+
## Current implementation status
|
|
77
|
+
|
|
78
|
+
Currently supported:
|
|
79
|
+
|
|
80
|
+
- Local config loading, schema validation, and vault path resolution
|
|
81
|
+
- age recipient management for machine-based encryption
|
|
82
|
+
- Push, pull, status, doctor, daemon, and key CLI entry points
|
|
83
|
+
- Agent snapshot and apply flows for Claude, Cursor, Codex, Copilot, and VS Code
|
|
84
|
+
- Secret redaction and never-sync enforcement before artifacts reach the vault
|
|
85
|
+
|
|
86
|
+
Not yet positioned as a full hosted service:
|
|
87
|
+
|
|
88
|
+
- No remote conflict UI beyond the CLI flow
|
|
89
|
+
- No web dashboard or multi-user admin surface
|
|
90
|
+
- No runtime API server outside the local daemon IPC channel
|
|
91
|
+
|
|
92
|
+
## Prerequisites
|
|
93
|
+
|
|
94
|
+
- Bun 1.3.9 or later
|
|
95
|
+
- A Git remote you control for the encrypted vault
|
|
96
|
+
- An age keypair managed by AgentSync or migrated into the local key path
|
|
97
|
+
- One or more supported agent config directories on the machine you are syncing
|
|
98
|
+
- macOS, Linux, or Windows for daemon installation paths described in the docs
|
|
99
|
+
|
|
100
|
+
## Contributor setup from source
|
|
101
|
+
|
|
102
|
+
This is the contributor workflow for developing from a clone of the repository. It is separate from the published CLI path above.
|
|
103
|
+
|
|
104
|
+
Do not use this section when you are trying to run a published release from npm.
|
|
105
|
+
For released usage, start with the released CLI path above and continue in [docs/command-reference.md](docs/command-reference.md).
|
|
106
|
+
|
|
107
|
+
If your change follows the spec-kit workflow, start with [docs/speckit.md](docs/speckit.md).
|
|
108
|
+
If you are maintaining the repo-local speckit setup itself, use
|
|
109
|
+
[docs/speckit-local-development.md](docs/speckit-local-development.md).
|
|
110
|
+
|
|
111
|
+
Install dependencies and verify the repo first:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
bun install
|
|
115
|
+
bun run check
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Initialize a vault and machine key:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
bun run src/cli.ts init --remote git@github.com:<you>/agentsync-vault.git --branch main
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Push local agent configs into the encrypted vault:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
bun run src/cli.ts push
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Pull the vault back onto this machine or a new one:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
bun run src/cli.ts pull
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Command summary
|
|
137
|
+
|
|
138
|
+
| Command | Why you run it |
|
|
139
|
+
| -------- | -------------------------------------------------------------------------------- |
|
|
140
|
+
| `init` | Create the local vault workspace, key, config, and initial remote state |
|
|
141
|
+
| `push` | Snapshot local agent configs, redact secrets, encrypt artifacts, and push to Git |
|
|
142
|
+
| `pull` | Pull the latest vault state and apply decrypted artifacts locally |
|
|
143
|
+
| `status` | Compare local files with the vault and surface drift |
|
|
144
|
+
| `doctor` | Run environment, key, vault, and daemon diagnostics |
|
|
145
|
+
| `daemon` | Install or manage background auto-sync |
|
|
146
|
+
| `key` | Add recipients or rotate the local machine key |
|
|
147
|
+
|
|
148
|
+
## Documentation
|
|
149
|
+
|
|
150
|
+
- [Speckit guide](docs/speckit.md): start or continue feature work through the repo's spec-kit workflow
|
|
151
|
+
- [Speckit local development guide](docs/speckit-local-development.md): prompt-file locations, active-feature detection, timestamp branches, and workflow upkeep rules
|
|
152
|
+
- [Development guide](docs/development.md): contributor setup, local workflow, and verification steps
|
|
153
|
+
- [Architecture guide](docs/architecture.md): module map, sync flow, security boundaries, and daemon design
|
|
154
|
+
- [Maintenance guide](docs/maintenance.md): release upkeep, OIDC-only publish rules, and documentation/JSDoc change policy
|
|
155
|
+
- [Command reference](docs/command-reference.md): released CLI install path, command usage, prerequisites, caveats, and release-info lookup
|
|
156
|
+
- [Troubleshooting guide](docs/troubleshooting.md): common setup, key, remote, and daemon failures with next actions
|
|
157
|
+
|
|
158
|
+
## Safety notes
|
|
159
|
+
|
|
160
|
+
- Treat the private key file as recoverability-critical material. Back it up outside the vault.
|
|
161
|
+
- Do not paste literal API keys or tokens into synced config. AgentSync aborts pushes when it detects them.
|
|
162
|
+
- Use the command reference and troubleshooting guide when a workflow is partially supported or platform-specific instead of assuming parity across all agents.
|
|
163
|
+
|
|
164
|
+
## Next steps
|
|
165
|
+
|
|
166
|
+
If you are evaluating the released CLI path, start with the [latest release](https://github.com/chrisleekr/agentsync/releases/latest) and then [docs/command-reference.md](docs/command-reference.md).
|
|
167
|
+
If you are developing from source, start with [docs/development.md](docs/development.md).
|
|
168
|
+
If you are doing feature planning or workflow work through spec-kit, start with [docs/speckit.md](docs/speckit.md).
|
|
169
|
+
If you want the system model before changing code, read [docs/architecture.md](docs/architecture.md).
|
|
170
|
+
If you are modifying commands or agent integrations, read [docs/maintenance.md](docs/maintenance.md) before opening a PR.
|