@conceptcraft/mindframes 0.3.16 → 0.3.17

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 (3) hide show
  1. package/README.md +207 -48
  2. package/dist/index.js +580 -1533
  3. package/package.json +1 -2
package/README.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # Mindframes CLI
2
2
 
3
- Command-line tool for creating AI-powered presentations with [Mindframes](https://www.mindframes.app).
3
+ Command-line tool for [Mindframes](https://www.mindframes.app) — presentations, videos, avatars, audio,
4
+ branding, media and research.
5
+
6
+ Run `mindframes capabilities` at any time for the full, always-current list of callable
7
+ capabilities, and `mindframes <group> --help` to drill into one.
4
8
 
5
9
  ## Installation
6
10
 
@@ -42,37 +46,57 @@ mindframes create "Q4 Report" --context "Revenue: $10M, Growth: 25%, New custome
42
46
  # From a file (markdown, text, or JSON)
43
47
  mindframes create "Research Summary" --context-file ./research.md
44
48
 
45
- # Pipe content from another command
49
+ # Pipe content from another command (stdin is read automatically when piped)
46
50
  cat notes.md | mindframes create "Meeting Notes"
47
51
 
48
- # Scrape content from URLs
49
- mindframes create "Competitor Analysis" --sources https://example.com/report
52
+ # Upload source documents (PDF, PPTX, DOCX, images)
53
+ mindframes create "Competitor Analysis" --file ./competitor-report.pdf
54
+
55
+ # Brand and style the deck
56
+ mindframes create "Board Update" --branding-id <brand-id> --template <template-id>
57
+ ```
50
58
 
51
- # Combine multiple sources
52
- cat data.json | mindframes create "Analysis" --sources https://article.com --context "Focus on Q4"
59
+ To use a web page as context, scrape it first and pipe the text in:
60
+
61
+ ```bash
62
+ mindframes scrape https://example.com/report | mindframes create "Competitor Analysis"
53
63
  ```
54
64
 
55
65
  ### Create Options
56
66
 
57
67
  | Option | Description | Default |
58
68
  |--------|-------------|---------|
59
- | `-n, --slides <count>` | Number of slides (1-20) | 10 |
60
- | `-m, --mode <mode>` | Quality: best, balanced, fast, ultrafast, instant | balanced |
61
- | `-t, --tone <tone>` | Tone: creative, professional, educational, formal, casual | professional |
62
- | `--amount <amount>` | Density: minimal, concise, detailed, extensive | concise |
63
- | `--audience <text>` | Target audience description | General Audience |
64
- | `-l, --language <lang>` | Output language code | en |
65
- | `-b, --brand <id\|url>` | Branding ID or URL | - |
66
- | `-c, --context <text>` | Direct text context | - |
67
- | `--context-file <path>` | Read context from file | - |
68
- | `--sources <urls...>` | URLs to scrape for context | - |
69
- | `--styling <mode>` | freeform, brand-only, brand-plus-style, style-only, no-styling | freeform |
70
- | `--reference-url <url>` | Style reference image URL | - |
71
- | `--thinking-depth <depth>` | AI depth: quick, moderate, deep, profound | moderate |
69
+ | `-n, --slides <count>` | Number of slides (1-20) | server default |
70
+ | `-m, --mode <mode>` | Quality: best, balanced, fast, ultrafast, instant, image-min, image, image-max | fast |
71
+ | `--image-tier <tier>` | Embedded-image quality for HTML modes: smart, fast, balanced, best | smart |
72
+ | `-t, --tone <tone>` | Tone: creative, professional, educational, formal, casual | server default |
73
+ | `--amount <amount>` | Density: minimal, concise, detailed, extensive | server default |
74
+ | `--audience <text>` | Target audience description | - |
75
+ | `-g, --goal <type>` | Goal: inform, persuade, train, learn, entertain, report | - |
76
+ | `-l, --language <lang>` | Output language | - |
77
+ | `--branding-id <id>` | Saved brand profile ID (see `mindframes branding list`) | - |
78
+ | `--brand-domain <url>` | Brand the deck by website/domain of a saved brand | - |
79
+ | `--template <id>` | Slide template ID (see `mindframes templates`) | auto |
80
+ | `-c, --context <text>` | Inline text context | - |
81
+ | `--context-file <path>` | Read context from a file | - |
82
+ | `--stdin` | Read context from stdin (also auto-detected when piped) | - |
83
+ | `-f, --file <paths...>` | Upload source files (PDF, PPTX, DOCX, images) | - |
84
+ | `--styling <mode>` | freeform, brand-only, brand-plus-style, style-only, no-styling | server default |
85
+ | `--reference-url <url>` | Image URL used as a visual style reference | - |
86
+ | `--thinking-depth <depth>` | AI depth: quick, moderate, deep, profound | server default |
87
+ | `--theme <preset>` | *instant mode only* — blue, violet, rose, orange, green | - |
88
+ | `--primary-color <hex>` | *instant mode only* — primary color | - |
89
+ | `--decorations <style>` | *instant mode only* — none, waves-bottom-left, waves-top-right, blob-corners, minimal | - |
90
+ | `--team-id <id>` | Team/workspace override | - |
72
91
  | `-o, --output <format>` | Output: human, json, quiet | human |
73
- | `--no-stream` | Disable progress streaming | - |
92
+ | `--no-stream` | Wait for completion without streaming progress | - |
93
+ | `--wait` | Poll until generation completes | - |
94
+ | `--open` | Open the deck in a browser when done | - |
74
95
  | `--debug` | Enable debug logging | - |
75
96
 
97
+ `--secondary-color`, `--accent-color`, `--background-color`, `--foreground-color`,
98
+ `--id` and `--studio` are also available; run `mindframes create --help` for the full list.
99
+
76
100
  ### Examples
77
101
 
78
102
  ```bash
@@ -84,9 +108,9 @@ mindframes create "Series A Pitch" -m best -t formal --slides 12 \
84
108
  mindframes create "Weekly Update" -m instant -t casual --slides 5 \
85
109
  --context "Shipped 3 features, fixed 12 bugs, 2 new hires joining Monday"
86
110
 
87
- # Educational content with research
111
+ # Educational content built from uploaded research
88
112
  mindframes create "AI in Healthcare" -t educational --amount detailed \
89
- --sources https://research-paper.pdf https://news-article.com
113
+ --file ./research-paper.pdf
90
114
 
91
115
  # JSON output for scripting
92
116
  URL=$(mindframes create "Demo" --context "..." -o json | jq -r '.viewUrl')
@@ -129,8 +153,17 @@ mindframes import presentation.zip --dry-run # Validate only
129
153
  ### Branding
130
154
 
131
155
  ```bash
132
- mindframes branding list # List brand profiles
133
- mindframes branding extract <url> # Extract branding from website
156
+ mindframes branding list # List brand profiles
157
+ mindframes branding find "acme" # Find a saved brand by name or URL
158
+ mindframes branding get <id> # Brand profile details
159
+ mindframes branding extract <url> # Extract a brand profile from a website
160
+ mindframes branding status <run-id> # Check an extraction run
161
+ mindframes branding set-default <id> # Make a brand the workspace default
162
+ mindframes branding profile [brand-id] # Read design tokens
163
+ mindframes branding set [brand-id] ... # Write design tokens (key=value or design.md)
164
+ mindframes branding logo set ... # Set logo, dark variant, or favicon
165
+ mindframes branding competitor list|add # Competitors
166
+ mindframes branding social add ... # Social handles
134
167
  ```
135
168
 
136
169
  ### Configuration
@@ -140,6 +173,8 @@ mindframes config init # Interactive setup
140
173
  mindframes config show # Show current config
141
174
  mindframes config set api-key KEY # Set API key
142
175
  mindframes config set api-url URL # Set custom API URL
176
+ mindframes config refresh # Refresh feature flags (unlocks gated commands)
177
+ mindframes config pull # Pull workspace config
143
178
  mindframes config path # Show config file path
144
179
  mindframes config clear # Clear all config
145
180
  ```
@@ -161,45 +196,139 @@ mindframes skill show # View skill content
161
196
  mindframes skill uninstall # Remove skill from editors
162
197
  ```
163
198
 
164
- Supported editors: Claude Code, Cursor, Codex, OpenCode, Windsurf, Agent
199
+ Supported editors: Claude Code, GitHub Copilot, Cursor, Codex, OpenCode, Windsurf, Agent
200
+
201
+ ## Two different video pipelines
202
+
203
+ The CLI has **two** unrelated video paths. Picking the wrong one is the most
204
+ common mistake:
205
+
206
+ | You want | Use |
207
+ |----------|-----|
208
+ | Turn a **finished presentation** into an MP4 with narration, avatar, music and captions | `mindframes presentation video` |
209
+ | Build a **video from a brief/storyboard** with stock + generated footage | `mindframes video` |
210
+
211
+ They share no state: `presentation video` renders slides you already have,
212
+ `video` produces a new film.
213
+
214
+ ## Presentation → MP4 (`presentation video`)
215
+
216
+ ```bash
217
+ # 1) Create (or reuse) a video project for a deck
218
+ mindframes presentation video prepare <presentation-id> --yes
219
+
220
+ # 2) Inspect the project and its ordered scene timeline
221
+ mindframes presentation video inspect <project-id>
222
+
223
+ # 3) Optional: persist render settings for the project
224
+ mindframes presentation video settings <project-id> --settings ./settings.json --yes
225
+
226
+ # 4) Render the MP4
227
+ mindframes presentation video <presentation-id> --render-engine remotion --yes
228
+ mindframes presentation video <presentation-id> --render-engine hyperframes --yes
229
+
230
+ # 5) Poll the render
231
+ mindframes presentation video status <run-id>
232
+ ```
233
+
234
+ `prepare` accepts `--force-new`, `--team-id`, `--idempotency-key` and requires `--yes`.
235
+
236
+ The render itself takes either a `<presentation-id>` argument **or**
237
+ `--project-id <id>` (never both), plus `--settings <json-or-path>`,
238
+ `--force-new`, `--force-rerender`, `--render-engine <remotion|hyperframes>`
239
+ (`remotion` = Standard, `hyperframes` = Premium), `--team-id`,
240
+ `--idempotency-key`, and `--yes` to confirm. `--settings` and `--force-new`
241
+ only work with a presentation id, not `--project-id`.
165
242
 
166
- ## Video Generation (Remotion)
243
+ ### Editing the video draft
167
244
 
168
- The video workflow is intentionally simple. Run commands **inside the project folder** so you can omit `--project`.
245
+ ```bash
246
+ mindframes presentation video edit <project-id> --edit ./edit.json # one atomic draft edit
247
+ mindframes presentation video refresh <project-id> # re-pull slides from the deck
248
+ mindframes presentation video versions <project-id> # list saved draft versions
249
+ mindframes presentation video restore <project-id> <version-number> # restore a version
250
+ mindframes presentation video presenter <project-id> <slide-id> --avatar-id <id>
251
+ mindframes video library list <project-id> # reusable clips/recordings
252
+ ```
169
253
 
170
- ### 1) Create a video project
254
+ `presenter` takes exactly one of `--avatar-id`, `--cast-preset-id` or
255
+ `--inherit`; `--render-tier <basic|standard|premium>` is only valid with
256
+ `--avatar-id`, and `--no-apply-preset-voice` keeps the scene's current voice
257
+ when applying a cast preset. Avatar and voice IDs come from `mindframes avatar options`.
258
+
259
+ ### Narration and speaker notes
171
260
 
172
261
  ```bash
173
- mindframes video generate new my-video --type youtube
174
- cd my-video
262
+ # Regenerate one slide's narration inside a video draft
263
+ mindframes presentation video-narration <project-id> --slide-id <id> --instructions "warmer, shorter"
264
+ mindframes presentation video-narration-status <run-id>
265
+
266
+ # Persisted deck speaker notes
267
+ mindframes presentation speaker-notes <presentation-id> --mode ensure --style concise
268
+ mindframes presentation speaker-notes <presentation-id> --mode regenerate --slide-id <id> --language de
269
+ mindframes presentation speaker-notes-status <run-id>
175
270
  ```
176
271
 
177
- ### 2) Generate early assets (voiceover, images, videos)
272
+ Both follow the run by default; pass `--no-follow` (or `-f json`) to get the run ID back immediately.
273
+
274
+ ### PowerPoint import and run status
178
275
 
179
276
  ```bash
180
- mindframes video generate assets
277
+ mindframes presentation import --file deck.pptx --mode preserve
278
+ mindframes presentation import --file deck.pptx --mode rebrand --branding-id <id>
279
+ mindframes presentation import transform <import-id>
280
+ mindframes presentation import status <run-id>
281
+ mindframes presentation status <run-id> # deck generation run
181
282
  ```
182
283
 
183
- ### 3) Generate the video plan
284
+ ## Video from a storyboard (`video`)
285
+
286
+ The hosted pipeline builds a video from a Markdown storyboard revision.
184
287
 
185
288
  ```bash
186
- mindframes video generate plan
289
+ # Optional: analyze a reference video and reuse it as a media binding
290
+ mindframes video reference analyze --file ./ref.mp4 --idempotency-key ref-1
291
+ mindframes video reference status <run-id>
292
+
293
+ # 1) Create a versioned Markdown storyboard
294
+ mindframes video storyboard create --file ./storyboard.md --duration 30 --aspect 16:9 \
295
+ --idempotency-key sb-1 --title "Launch teaser"
296
+
297
+ # 2) Revise it (immutable revisions)
298
+ mindframes video storyboard revise <storyboard-id> --base-revision <rev-id> \
299
+ --file ./storyboard-v2.md --duration 30 --aspect 16:9 --idempotency-key sb-2
300
+
301
+ # 3) Read it back
302
+ mindframes video storyboard show <storyboard-id> --json
303
+
304
+ # 4) Render from a pinned revision (this is the terminal step)
305
+ mindframes video create --storyboard-revision <rev-id> --idempotency-key run-1 --yes
306
+
307
+ # 5) Poll
308
+ mindframes video status <run-id>
187
309
  ```
188
310
 
189
- After TTS durations and the final timeline are known, generate music/SFX with
190
- the factual `--request` commands below.
311
+ `video create` also accepts `--source-video <id>`, `--draft` (480p),
312
+ `--team-id` and `--approval-receipt`. Omit `--approval-receipt` on the first
313
+ call to get the browser confirmation URL back.
191
314
 
192
- ### 4) Export the video (poster embedded by default)
315
+ ### Poster frames
316
+
317
+ To attach a poster frame to a finished MP4:
193
318
 
194
319
  ```bash
195
- mindframes video export --out out/video.mp4 --thumb out/thumb.png
196
- mindframes video export --no-embed-poster
320
+ mindframes video thumbnail inject -i out/video.mp4 -t out/thumb.png -o out/final.mp4
197
321
  ```
198
322
 
199
- ### Supporting commands
323
+ ### Supporting video commands
200
324
 
201
325
  ```bash
202
- mindframes video find "city timelapse" # search stock videos
326
+ mindframes video find "city timelapse" # stock/web video search
327
+ mindframes video analyze ./clip.mp4 # local frame + audio analysis
328
+ mindframes video lipsync --source-video-id <uuid> --audio-url <url> -o out.mp4
329
+ mindframes video translate --source-video-id <uuid> --output-dir ./translated
330
+ mindframes video translate-languages # supported target languages
331
+ mindframes video library list <project-id> # reusable clips
203
332
  ```
204
333
 
205
334
  ### Video-aware music and SFX
@@ -217,13 +346,43 @@ Both JSON files use `schema_version: 1`, `video_description`, `duration_s`, and
217
346
  word timings when TTS provides them. Gemini turns those final facts into the
218
347
  provider-ready music or SFX prompt on the backend.
219
348
 
220
- ### If you prefer using --project
221
-
222
- ```bash
223
- mindframes video generate assets --project my-video
224
- mindframes video generate plan --project my-video
225
- mindframes video export --project my-video --out out/video.mp4 --thumb out/thumb.png
226
- ```
349
+ ## Command groups
350
+
351
+ `mindframes capabilities` lists every callable capability with its exact command
352
+ path, and `mindframes <group> --help` drills into any group below. Some groups
353
+ appear only after `mindframes login` + `mindframes config refresh` (feature-flag gated —
354
+ `derive` is the clearest example).
355
+
356
+ | Group | Purpose |
357
+ |-------|---------|
358
+ | `create` | Create a presentation |
359
+ | `list` / `get` / `delete` | List, inspect and delete presentations |
360
+ | `export` / `import` | Export a deck to ZIP; import one back (`import` is admin-only) |
361
+ | `templates` | List slide design templates for `create --template` |
362
+ | `ideas` | Generate presentation topic ideas |
363
+ | `presentation` | Deck → MP4, speaker notes, PowerPoint import, run status |
364
+ | `video` | Storyboard-driven video generation, stock search, lipsync, translation, analysis |
365
+ | `derive` | Derivative content from a deck (blog, tweets, LinkedIn, red-team questions, cheat sheet) — feature-flag gated |
366
+ | `branding` | Brand profiles, design tokens, logos, competitors, social handles |
367
+ | `avatar` | Presenter clips and looks (`avatar options` lists avatars and voices) |
368
+ | `cast` | The faces and voices your videos can use, incl. saved presets |
369
+ | `tts` / `music` / `sfx` / `mix` | Voiceover, video-aware music, sound effects, audio mixing |
370
+ | `image` | Image search and AI image generation |
371
+ | `search` | Web, news, image and stock-video search |
372
+ | `scrape` / `content` / `transcript` | Extract text from a URL, a file, or a YouTube video |
373
+ | `media` | Ingest and transcribe recordings you already own |
374
+ | `document` | Create, read and edit Library documents (with versions/restore) |
375
+ | `library` | Library folders and filing |
376
+ | `knowledge` | Search the workspace Knowledge Hub and read knowledge bundles |
377
+ | `agent` | Scheduled agents; read, edit or erase agent memory |
378
+ | `poll` | Standalone polls |
379
+ | `microsite` | Shareable multi-section web microsite from a brief |
380
+ | `ad-set` | Ad creatives (hooks, copy, visuals) from a campaign brief |
381
+ | `visual-abstract` | One-page visual abstract graphic from a dense brief |
382
+ | `capabilities` | List every callable capability and its parity state |
383
+ | `config` / `login` / `logout` / `whoami` | Auth and configuration |
384
+ | `skill` | Install the agent skill into Claude Code, Cursor, Codex, … |
385
+ | `runner` | Run agent work locally with your own Claude Code / Codex login |
227
386
 
228
387
  ## Scripting Examples
229
388