@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.
Files changed (4) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +154 -29
  3. package/dist/cli.js +33964 -0
  4. 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
- # @chrisleekr/agentsync
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
- ## ⚠️ IMPORTANT NOTICE ⚠️
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
- **This package is created solely for the purpose of setting up OIDC (OpenID Connect) trusted publishing with npm.**
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
- This is **NOT** a functional package and contains **NO** code or functionality beyond the OIDC setup configuration.
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
- ## Purpose
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
- This package exists to:
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
- ## What is OIDC Trusted Publishing?
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
- OIDC trusted publishing allows package maintainers to publish packages directly from their CI/CD workflows without needing to manage npm access tokens. Instead, it uses OpenID Connect to establish trust between the CI/CD provider (like GitHub Actions) and npm.
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
- ## Setup Instructions
29
+ Prerequisites for the released CLI path:
21
30
 
22
- To properly configure OIDC trusted publishing for this package:
31
+ - Bun 1.3.9 or later
32
+ - A published AgentSync package for the version you want to run
23
33
 
24
- 1. Go to [npmjs.com](https://www.npmjs.com/) and navigate to your package settings
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
- ## DO NOT USE THIS PACKAGE
36
+ ```bash
37
+ bunx --package @chrisleekr/agentsync agentsync --version
38
+ ```
30
39
 
31
- This package is a placeholder for OIDC configuration only. It:
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
- ## More Information
42
+ ```bash
43
+ bunx --package @chrisleekr/agentsync agentsync <command> [options]
44
+ ```
38
45
 
39
- For more details about npm's trusted publishing feature, see:
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
- **Maintained for OIDC setup purposes only**
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.