@conceptcraft/mindframes 0.3.16 → 0.3.18
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/README.md +207 -48
- package/dist/index.js +580 -1533
- package/package.json +1 -2
package/README.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
# Mindframes CLI
|
|
2
2
|
|
|
3
|
-
Command-line tool for
|
|
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
|
-
#
|
|
49
|
-
mindframes create "Competitor Analysis" --
|
|
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
|
-
|
|
52
|
-
|
|
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) |
|
|
60
|
-
| `-m, --mode <mode>` | Quality: best, balanced, fast, ultrafast, instant |
|
|
61
|
-
|
|
|
62
|
-
|
|
|
63
|
-
| `--
|
|
64
|
-
|
|
|
65
|
-
| `-
|
|
66
|
-
| `-
|
|
67
|
-
| `--
|
|
68
|
-
| `--
|
|
69
|
-
| `--
|
|
70
|
-
|
|
|
71
|
-
| `--
|
|
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` |
|
|
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
|
|
111
|
+
# Educational content built from uploaded research
|
|
88
112
|
mindframes create "AI in Healthcare" -t educational --amount detailed \
|
|
89
|
-
--
|
|
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
|
|
133
|
-
mindframes branding
|
|
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
|
-
|
|
243
|
+
### Editing the video draft
|
|
167
244
|
|
|
168
|
-
|
|
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
|
-
|
|
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
|
-
|
|
174
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
190
|
-
|
|
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
|
-
###
|
|
315
|
+
### Poster frames
|
|
316
|
+
|
|
317
|
+
To attach a poster frame to a finished MP4:
|
|
193
318
|
|
|
194
319
|
```bash
|
|
195
|
-
mindframes video
|
|
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"
|
|
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
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
mindframes
|
|
225
|
-
|
|
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
|
|