makaron-cli 0.11.0 → 0.11.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "makaron-cli",
3
- "version": "0.11.0",
3
+ "version": "0.11.1",
4
4
  "description": "AI image editing, video generation, music creation, and marketplace skill workflows via CLI. Agents can self-register, install skills, create projects, and produce creative media.",
5
5
  "author": {
6
6
  "name": "Makaron AI",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "makaron-cli",
3
- "version": "0.11.0",
3
+ "version": "0.11.1",
4
4
  "description": "AI image editing, video generation, music creation, and marketplace skill workflows via CLI. Agents can self-register, install skills, create projects, and produce creative media.",
5
5
  "displayName": "Makaron",
6
6
  "shortDescription": "AI image/video/music creation from the terminal",
package/README.md CHANGED
@@ -7,8 +7,10 @@ Makaron is a multimodal AI creative agent. You talk to it via `makaron chat`, an
7
7
  ## Setup
8
8
 
9
9
  ```bash
10
- npm install -g makaron-cli
11
- # or use directly: npx makaron-cli
10
+ # Install makaron-cli globally and add the Makaron Agent Skill.
11
+ npx makaron-cli setup
12
+
13
+ npx makaron-cli --help
12
14
  ```
13
15
 
14
16
  ### Get your API key
package/bin/makaron.mjs CHANGED
@@ -15,6 +15,7 @@ import fs from 'fs';
15
15
  import path from 'path';
16
16
  import { createInterface } from 'readline';
17
17
  import { execFileSync } from 'child_process';
18
+ import { fileURLToPath } from 'url';
18
19
 
19
20
  // ─── Config ──────────────────────────────────────────────────────────────────
20
21
 
@@ -267,12 +268,13 @@ function printChatHelp() {
267
268
  console.log(`Makaron chat — create and edit with Makaron Agent
268
269
 
269
270
  Usage:
270
- makaron chat --project <id|auto> [options] "your message"
271
+ makaron chat --project <id|auto> [options] [--skill <id|label|name>] "your message"
271
272
 
272
273
  Options:
273
274
  --project <id|auto> Project to work in. Use "auto" to create one.
274
275
  --image <file|url> Attach a reference image or screenshot. Repeatable.
275
276
  --video <file|url> Attach a video to the project timeline. Repeatable.
277
+ --skill <id|label|name> Use an installed skill or auto-install a matched marketplace skill.
276
278
  --model <name> Preferred image/model route.
277
279
  --video-model <name> Preferred video model: seedance-fast, seedance, kling, or grok.
278
280
  --video-resolution <res> Video resolution: auto, 480p, 720p, 1080p, or 4k.
@@ -291,6 +293,9 @@ What you can ask:
291
293
  Video from image or timeline
292
294
  makaron chat --project <id> "make this into a 5 second cinematic video"
293
295
 
296
+ Marketplace skill
297
+ makaron chat --project auto --image selfie.jpg --skill "Football Captain" "make this cinematic"
298
+
294
299
  Fix one video moment from a screenshot
295
300
  makaron chat --project <id> --image screenshot.png "@4 this frame should be Paris; only fix this moment"
296
301
 
@@ -1197,6 +1202,8 @@ function printRootHelp() {
1197
1202
  console.log(`Makaron CLI — Talk to Makaron Agent from the terminal
1198
1203
 
1199
1204
  Commands:
1205
+ setup Install makaron-cli globally and add the Agent Skill
1206
+ install-skill Install Makaron Agent Skill into your coding agent
1200
1207
  register --json Get challenge for agent self-registration
1201
1208
  register --verify --challenge-id <id> --answer <n> Verify and save API key
1202
1209
  claim Get claim URL for human to link account
@@ -1208,6 +1215,7 @@ Commands:
1208
1215
  create --title "name" Create empty project (text-to-image)
1209
1216
 
1210
1217
  chat --project <id> "message" Chat (non-blocking, polls for result)
1218
+ chat --project <id> --skill <id> Use or auto-install a marketplace skill
1211
1219
  chat --project <id> --video <file> Attach video to conversation
1212
1220
  chat --project <id> -b "message" Background: submit and print runId
1213
1221
  chat --project <id> --stream "msg" Legacy: stream SSE in real-time
@@ -1232,13 +1240,56 @@ Environment:
1232
1240
  `);
1233
1241
  }
1234
1242
 
1243
+ function installAgentSkill(values = []) {
1244
+ if (hasHelpFlag(values)) {
1245
+ console.log('Usage: makaron install-skill [--global] [--agent <agent>] [--yes]');
1246
+ return;
1247
+ }
1248
+
1249
+ const skillDir = fileURLToPath(new URL('../skills/makaron', import.meta.url));
1250
+ const skillFile = path.join(skillDir, 'SKILL.md');
1251
+ if (!fs.existsSync(skillFile)) {
1252
+ console.error(`Makaron Agent Skill not found at ${skillFile}`);
1253
+ process.exit(1);
1254
+ }
1255
+
1256
+ execFileSync('npx', [
1257
+ '-y',
1258
+ 'skills',
1259
+ 'add',
1260
+ skillDir,
1261
+ '--skill',
1262
+ 'makaron',
1263
+ '--copy',
1264
+ ...values,
1265
+ ], { stdio: 'inherit' });
1266
+ }
1267
+
1268
+ function setupMakaron(values = []) {
1269
+ if (hasHelpFlag(values)) {
1270
+ console.log('Usage: makaron setup [--agent <agent>]');
1271
+ return;
1272
+ }
1273
+
1274
+ const version = getCliVersion();
1275
+ console.error(`Installing ${NPM_PACKAGE_NAME}@${version} globally...`);
1276
+ execFileSync('npm', ['install', '-g', `${NPM_PACKAGE_NAME}@${version}`], { stdio: 'inherit' });
1277
+
1278
+ const skillArgs = [...values];
1279
+ if (!skillArgs.includes('--global') && !skillArgs.includes('-g')) skillArgs.unshift('--global');
1280
+ if (!skillArgs.includes('--yes') && !skillArgs.includes('-y')) skillArgs.push('--yes');
1281
+
1282
+ console.error('Installing Makaron Agent Skill globally...');
1283
+ installAgentSkill(skillArgs);
1284
+ }
1285
+
1235
1286
  function printHelp(topic, subtopic) {
1236
1287
  if (topic === 'login') {
1237
1288
  console.log('Usage: makaron login');
1238
1289
  } else if (topic === 'create') {
1239
1290
  console.log('Usage: makaron create --image <file> [--image <file2>] | --image-url <url> | --title "name"');
1240
1291
  } else if (topic === 'chat') {
1241
- console.log('Usage: makaron chat --project <id|auto> [--image <file>] [--video <file|url>] [--stream] [--background|-b] [--json] "your message"');
1292
+ printChatHelp();
1242
1293
  } else if (topic === 'responses' || topic === 'run') {
1243
1294
  if (subtopic === 'get') console.log('Usage: makaron responses get <runId> [--wait] [--json] [--pick <field>]');
1244
1295
  else if (subtopic === 'watch') console.log('Usage: makaron responses watch <runId> [--jsonl] [--interval <ms>]');
@@ -1259,6 +1310,10 @@ function printHelp(topic, subtopic) {
1259
1310
  `);
1260
1311
  } else if (topic === 'abort') {
1261
1312
  console.log('Usage: makaron abort <runId>');
1313
+ } else if (topic === 'setup') {
1314
+ console.log('Usage: makaron setup [--agent <agent>]');
1315
+ } else if (topic === 'install-skill') {
1316
+ console.log('Usage: makaron install-skill [--global] [--agent <agent>] [--yes]');
1262
1317
  } else if (topic === 'skills') {
1263
1318
  if (subtopic === 'list') console.log('Usage: makaron skills list [--json]');
1264
1319
  else if (subtopic === 'search') console.log('Usage: makaron skills search <query> [--json]');
@@ -1332,6 +1387,10 @@ if (!command || command === '--help' || command === '-h' || command === 'help')
1332
1387
  printHelp(command, args[1]);
1333
1388
  } else if (command === '--version' || command === '-v' || command === 'version') {
1334
1389
  console.log(getCliVersion());
1390
+ } else if (command === 'setup') {
1391
+ setupMakaron(args.slice(1));
1392
+ } else if (command === 'install-skill') {
1393
+ installAgentSkill(args.slice(1));
1335
1394
  } else if (command === 'login') {
1336
1395
  await login();
1337
1396
  } else if (command === 'create') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "makaron-cli",
3
- "version": "0.11.0",
3
+ "version": "0.11.1",
4
4
  "description": "Talk to Makaron Agent from the terminal — create projects, edit images, generate videos",
5
5
  "type": "module",
6
6
  "scripts": {