@any-sync/cli 0.2.5 → 0.2.6

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 (2) hide show
  1. package/lib/onboard.js +45 -9
  2. package/package.json +1 -1
package/lib/onboard.js CHANGED
@@ -266,18 +266,54 @@ async function _runWizard({ rl, output, configPath, branch, doPull, opts }) {
266
266
  write(output, '\nNext steps:\n');
267
267
 
268
268
  if (presets.includes('claude')) {
269
- const instructions =
270
- 'Run these commands inside Claude Code:\n' +
271
- ' /plugin marketplace add imink/any-sync\n' +
272
- ' /plugin install any-sync@any-sync-marketplace';
273
- write(output, `\n Claude Code plugin:\n ${instructions.split('\n').join('\n ')}\n`);
274
- result.pluginInstructions.push({ tool: 'claude', instructions });
269
+ if (tools.claude) {
270
+ write(output, '\n Installing Claude Code plugin...\n');
271
+ try {
272
+ execFileSync('claude', ['plugin', 'marketplace', 'add', 'imink/any-sync'], {
273
+ stdio: 'pipe',
274
+ encoding: 'utf8',
275
+ });
276
+ execFileSync('claude', ['plugin', 'install', 'any-sync@any-sync-marketplace'], {
277
+ stdio: 'pipe',
278
+ encoding: 'utf8',
279
+ });
280
+ write(output, ' Any Sync plugin installed successfully.\n');
281
+ result.pluginInstructions.push({ tool: 'claude', installed: true });
282
+ } catch (err) {
283
+ write(output, ` Install failed: ${err.message}\n`);
284
+ write(output, ' Install manually inside Claude Code:\n');
285
+ write(output, ' /plugin marketplace add imink/any-sync\n');
286
+ write(output, ' /plugin install any-sync@any-sync-marketplace\n');
287
+ result.pluginInstructions.push({ tool: 'claude', installed: false });
288
+ }
289
+ } else {
290
+ write(output, '\n Claude Code not found. Install the plugin manually inside Claude Code:\n');
291
+ write(output, ' /plugin marketplace add imink/any-sync\n');
292
+ write(output, ' /plugin install any-sync@any-sync-marketplace\n');
293
+ result.pluginInstructions.push({ tool: 'claude', installed: false });
294
+ }
275
295
  }
276
296
 
277
297
  if (presets.includes('openclaw')) {
278
- const instructions = 'Run: openclaw plugins install any-sync';
279
- write(output, `\n OpenClaw plugin:\n ${instructions}\n`);
280
- result.pluginInstructions.push({ tool: 'openclaw', instructions });
298
+ if (tools.openclaw) {
299
+ write(output, '\n Installing OpenClaw plugin...\n');
300
+ try {
301
+ execFileSync('openclaw', ['plugins', 'install', 'any-sync'], {
302
+ stdio: 'pipe',
303
+ encoding: 'utf8',
304
+ });
305
+ write(output, ' Any Sync plugin installed successfully.\n');
306
+ result.pluginInstructions.push({ tool: 'openclaw', installed: true });
307
+ } catch (err) {
308
+ write(output, ` Install failed: ${err.message}\n`);
309
+ write(output, ' Install manually: openclaw plugins install any-sync\n');
310
+ result.pluginInstructions.push({ tool: 'openclaw', installed: false });
311
+ }
312
+ } else {
313
+ write(output, '\n OpenClaw not found. Install the plugin manually:\n');
314
+ write(output, ' openclaw plugins install any-sync\n');
315
+ result.pluginInstructions.push({ tool: 'openclaw', installed: false });
316
+ }
281
317
  }
282
318
 
283
319
  if (installVscode) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@any-sync/cli",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "description": "CLI and core library for Any Sync — bidirectional GitHub file sync",
5
5
  "main": "lib/index.js",
6
6
  "exports": {