@claudein.org/cli 0.1.28 → 0.1.31

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/dist/index.js CHANGED
@@ -24177,22 +24177,25 @@ config(en_default());
24177
24177
  var zod_default = exports_external;
24178
24178
 
24179
24179
  // ../common/index.ts
24180
+ var Platform = zod_default.enum(["LinkedIn", "Facebook", "Instagram", "YouTube"]);
24180
24181
  var yml;
24181
24182
  ((yml) => {
24182
24183
  const BasicMedia = zod_default.object({
24183
24184
  title: zod_default.string().optional(),
24184
- description: zod_default.string().optional(),
24185
- src: zod_default.string()
24185
+ description: zod_default.string().optional()
24186
24186
  });
24187
24187
  yml.Image = BasicMedia.extend({
24188
- type: zod_default.literal("image")
24188
+ type: zod_default.literal("image"),
24189
+ src: zod_default.string().regex(/.*\.(jpg|jpeg|png)$/)
24189
24190
  });
24190
24191
  yml.Video = BasicMedia.extend({
24191
- type: zod_default.literal("video")
24192
+ type: zod_default.literal("video"),
24193
+ src: zod_default.string().regex(/.*\.(mp4|mkv|avi)$/)
24192
24194
  });
24193
24195
  yml.Media = zod_default.discriminatedUnion("type", [yml.Image, yml.Video]);
24194
24196
  const BasePost = zod_default.object({
24195
- created: zod_default.iso.date()
24197
+ created: zod_default.iso.date(),
24198
+ platforms: zod_default.array(Platform)
24196
24199
  });
24197
24200
  yml.PostText = BasePost.extend({
24198
24201
  type: zod_default.literal("text"),
@@ -26320,6 +26323,7 @@ var posts = {
26320
26323
  posts: [{
26321
26324
  type: "text",
26322
26325
  created: formatter.format(new Date),
26326
+ platforms: ["LinkedIn"],
26323
26327
  text: "I'm using ClaudeIn to share my thoughts and ideas!"
26324
26328
  }]
26325
26329
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claudein.org/cli",
3
- "version": "0.1.28",
3
+ "version": "0.1.31",
4
4
  "description": "Post to LinkedIn from the command line",
5
5
  "type": "module",
6
6
  "repository": {
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: claudein
3
- description: Create LinkedIn posts using the claudein CLI. Use when the user wants to write, draft, or schedule LinkedIn posts, or when working with any .yml posts file.
3
+ description: Create social media posts (LinkedIn, Facebook, Instagram, YouTube) using the claudein CLI. Use when the user wants to write, draft, or schedule posts, or when working with any .yml posts file.
4
4
  allowed-tools: Edit, Write, Bash(cin *), Bash(pgrep *), Bash(curl *)
5
5
  ---
6
6
 
7
- # claudein — LinkedIn posts from the CLI
7
+ # claudein — social media posts from the CLI
8
8
 
9
9
  ## Live schema
10
10
 
@@ -18,24 +18,49 @@ The default file is `posts.yml` but users can use any `.yml` file (pass it to `c
18
18
 
19
19
  `cin start` watches the file for changes and updates the browser preview live — always edit the file in place, never delete and recreate it.
20
20
 
21
+ ## Platforms
22
+
23
+ Each post must include a `platforms` field listing the target platforms. The client decides which platforms a post is for — the web app uses this list to show the correct publish buttons.
24
+
25
+ Available platforms: `LinkedIn`, `Facebook`, `Instagram`, `YouTube`
26
+
27
+ ```yaml
28
+ posts:
29
+ - type: text
30
+ created: 2026-01-01
31
+ platforms: [LinkedIn]
32
+ text: "Hello LinkedIn!"
33
+
34
+ - type: media
35
+ created: 2026-01-02
36
+ platforms: [Instagram, Facebook]
37
+ media:
38
+ type: image
39
+ src: photo.jpg
40
+ ```
41
+
21
42
  ## Workflow
22
43
 
23
44
  1. Write or edit the `.yml` posts file
24
45
  2. Check if `cin start` is already running: `pgrep -fa "cin start"` — if it is, skip step 3
25
46
  3. If not running: `cin start [file]` — opens the live browser preview
26
- 4. Click "Post" in the browser to publish to LinkedIn
47
+ 4. Click the platform button in the browser to publish
48
+
49
+ ## Media guidelines
27
50
 
28
- ## Media guidelines (LinkedIn)
51
+ ### LinkedIn
29
52
 
30
- When generating or sourcing images and videos (e.g. with Remotion), target LinkedIn's specs:
53
+ **Images:** PNG or JPG, max 20 MB, aspect ratio 1:2.4 to 2.4:1
54
+ **Videos:** MP4 H.264, max 5 GB, 3–600 seconds, aspect ratio 1:1 to 4:5 recommended
31
55
 
32
- **Both images and videos:** 1:1 to 4:5 aspect ratio, 1080×1080 px up to 1080×1350 px
56
+ ### Instagram
33
57
 
34
- **Images:** PNG or JPG
58
+ **Images:** PNG or JPG, max 8 MB, aspect ratio 4:5 to 1.91:1
59
+ **Videos:** MP4, max 650 MB, 3–60 seconds
35
60
 
36
- **Videos:** MP4, H.264
61
+ ### YouTube
37
62
 
38
- Content outside the 1:1–4:5 range may be cropped or rejected by LinkedIn.
63
+ **Videos:** MP4, any duration
39
64
 
40
65
  ### Remotion
41
66