@higgsfield/video-editor-mcp 1.0.7 → 1.1.1-dev.0
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/THIRD_PARTY_NOTICES.md +24 -24
- package/dist/cli.mjs +134 -125
- package/dist/index.html +136 -133
- package/dist/launcher.mjs +90 -90
- package/dist/server.mjs +1553 -1389
- package/node_modules/@higgsfield/higgsedit/README.md +181 -1
- package/node_modules/@higgsfield/higgsedit/dist/capture-page.js +902 -314
- package/node_modules/@higgsfield/higgsedit/dist/chunk-2JYLVSVV.mjs +1594 -0
- package/node_modules/@higgsfield/higgsedit/dist/chunk-2WKNH7OL.mjs +16 -0
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-OMKZ5BXM.mjs → chunk-5LTTL3Q3.mjs} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/chunk-7PYXSJS7.mjs +717 -0
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-MLJAIZGP.mjs → chunk-BH2QF635.mjs} +33 -326
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-WZR5PZM7.mjs → chunk-BV5COOQZ.mjs} +250 -161
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-HTCYVKFX.mjs → chunk-C3GSB3XZ.mjs} +8 -7
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-CYH2EUQV.mjs → chunk-DVN4LUXV.mjs} +13 -4
- package/node_modules/@higgsfield/higgsedit/dist/chunk-F4CMIG5G.mjs +36 -0
- package/node_modules/@higgsfield/higgsedit/dist/chunk-IEPPEDEU.mjs +33 -0
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-UVAZ6I6U.mjs → chunk-KIWGVAPJ.mjs} +16 -12
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-L6QDNSL3.mjs → chunk-L5LWBA6A.mjs} +5 -5
- package/node_modules/@higgsfield/higgsedit/dist/chunk-LMQR3DHT.mjs +37 -0
- package/node_modules/@higgsfield/higgsedit/dist/chunk-LTKMGZ6T.mjs +58 -0
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-VI6IV6JP.mjs → chunk-MV2JTTBQ.mjs} +65 -47
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-4D6AXU4B.mjs → chunk-NARTAWRN.mjs} +50 -30
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-27NBQ5FA.mjs → chunk-NUXTKQNM.mjs} +33 -21
- package/node_modules/@higgsfield/higgsedit/dist/chunk-OCIZ36XD.mjs +40 -0
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-MK6PL7N4.mjs → chunk-OF6RMSM2.mjs} +19 -17
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-6BETMESC.mjs → chunk-P2BGHTRR.mjs} +2 -2
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-EKFC4S4M.mjs → chunk-PAHMD6SU.mjs} +5 -0
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-QVLAEV3U.mjs → chunk-PFQYUJQL.mjs} +3 -4
- package/node_modules/@higgsfield/higgsedit/dist/chunk-QJTILFBS.mjs +335 -0
- package/node_modules/@higgsfield/higgsedit/dist/chunk-QQ3GGKDN.mjs +21 -0
- package/node_modules/@higgsfield/higgsedit/dist/chunk-TH7TK67K.mjs +23 -0
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-SIMO6I3D.mjs → chunk-UDL5AHKO.mjs} +163 -158
- package/node_modules/@higgsfield/higgsedit/dist/chunk-UMWOUQN3.mjs +60 -0
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-3AIM3THH.mjs → chunk-VLM5EOWJ.mjs} +4 -4
- package/node_modules/@higgsfield/higgsedit/dist/chunk-WENFTPXQ.mjs +403 -0
- package/node_modules/@higgsfield/higgsedit/dist/chunk-YLVXQIPX.mjs +464 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/.vite/manifest.json +559 -506
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/agent-corner-bottom-q4hZltI-.svg +431 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/agent-corner-top-BJYI-I24.svg +431 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/confirmation-BTnwl3LS.css +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/drag-Bt_t4HZO.css +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/local-B3OTAV_A.css +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/menubar-2Y1Y2XJt.css +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/model-DdE4hCgf.css +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/{IconText1-CzbCrP7v.css → notifications-B08L1jSe.css} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/{panel-g852pZf_.css → panel-BRN_AbBM.css} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/panel-CYELNqrv.css +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/panel-DYLpT6oA.css +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/panel-v84HaGTZ.css +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconChainLink1-Bxb1Or0F.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconCheckmark2Medium-daaES9uF.js → IconCheckmark2Medium-hegaz9mQ.js} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconChevronDownSmall-BhTBJk26.js → IconChevronDownSmall-DaruzJwU.js} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconClosedCaptioning-BPqcqKsD.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconCrossMedium-acfnCXOM.js → IconCrossMedium-BsPFJzc6.js} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconOpenaiFilled-D1fzthmi.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconPause-pTeVSvUe.js → IconPause-ClNg8pao.js} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconPlayFilled-CwdgIuDG.js → IconPlayFilled-CHb-7GSx.js} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconSparklesSoftFilled-o7o33KRn.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/ai-composer-B9h-eaki.js +567 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/auto-layout-BO20Tg4B.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{button-CjG6GcgF.js → button-Cg0U0zpV.js} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/canvas-Bw4CVzfw.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/capabilities-BCd4-zPF.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/commands-QeSqAbCt.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/components-tXMtIZNL.js +51 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/confirmation-CO2PHR_z.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/dom-6aoQn29n.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/drag-Dw8b_vO2.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{editing-CjWbiCxv.js → editing-Cy-SaOyB.js} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/edits-CqLBqir0.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/export-dialog-BjBskOe3.js +2 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/factories-Bw_iQrUL.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/id3-CSR0NCRI.js +2 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/import-DP49i4ke.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/import-error-CMz9sLPe.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/ingest-DsmIc415.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/jsx-runtime-B5yqYJvp.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{media-Bwjxu-0U.js → media-DQw6vU_T.js} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/menubar-D31srALX.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/meters-D0nZVEJs.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/mode-DEG6doKF.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/model-Duf9fszJ.js +2 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/model-DyAkLA69.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/notifications-DqWZNIrK.js +9 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/palette-HT83gWgL.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-B5Mvm6dg.js +7 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-BC90wyvd.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-Bw_ZJ2JI.js +3 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DNS060Nt.js +3 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DSgxIrEq.js +2 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DgBttE5O.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-assets-_T2bHsHW.js +771 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-inspector-DfHvAt5X.js +2 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-nBZvHlkA.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-timeline-DsCpJVSt.js +327 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-viewport-CEhZwZ67.js +280 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/projects-2_tW9Do7.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/react-dom-1uB7Vbbb.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/schemas-CddYAOcj.js +64 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/session-BpFeKAI2.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/src-BLG3tYBa.js +2 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/styles-e2n2A_JN.js +284 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/supercomputer-CuV0zYKd.js +24 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/tabs-XeAgs9cs.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/toggle-DbNEaSIl.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/transport-C8Ll3qFl.js +69 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/transport-bar-Dv1LPFbu.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/useOpenInteractionType-HWSfSsp2.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/useRenderElement-D4SOg3N_.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/value-EB7YmAdS.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/writeback-support-fj5rA9k3.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/editor-B-WAkLt7.js +372 -0
- package/node_modules/@higgsfield/higgsedit/dist/higgsedit.mjs +39 -24
- package/node_modules/@higgsfield/higgsedit/dist/jsx/hooks.d.ts +26 -0
- package/node_modules/@higgsfield/higgsedit/dist/jsx/index.d.ts +17 -0
- package/node_modules/@higgsfield/higgsedit/dist/jsx/inspect.d.ts +42 -0
- package/node_modules/@higgsfield/higgsedit/dist/jsx/jsx-runtime.d.ts +28 -0
- package/node_modules/@higgsfield/higgsedit/dist/jsx/svg.d.ts +9 -0
- package/node_modules/@higgsfield/higgsedit/dist/jsx/time.d.ts +6 -0
- package/node_modules/@higgsfield/higgsedit/dist/jsx/types.d.ts +420 -0
- package/node_modules/@higgsfield/higgsedit/package.json +28 -20
- package/package.json +4 -3
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/plugin.json +1 -1
- package/plugin/skills/video-editing/references/caption-titling.md +1 -1
- package/plugin/skills/video-editing/references/local-setup.md +3 -3
- package/node_modules/@higgsfield/higgsedit/dist/chunk-C6SASQHE.mjs +0 -424
- package/node_modules/@higgsfield/higgsedit/dist/chunk-FZ5U36SQ.mjs +0 -83
- package/node_modules/@higgsfield/higgsedit/dist/chunk-QLPCYN6K.mjs +0 -292
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/edit-drag-D2EV5ddd.css +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/editor-CuRHT75g.css +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/panel-DnuQD7ja.css +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/FieldControl-B0fenhBJ.js +0 -2
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconChainLink1-Cwv1X7hi.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconEyeOpen-BqTT9_VV.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconEyeSlash-Whv58c1m.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconPencil-Dr17k_7e.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconPlay-BroH3ziH.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconPlusSmall-43T9aE3d.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconText1-BaP_p9DW.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconTrashCan-DX2w2AIC.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/ai-composer-C-l0eIdP.js +0 -560
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/captions-Cd-bDG3G.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/clip-highlight-DpAvcA4x.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/components-e3ZbUVns.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/disposables-CwUPjcuA.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/drag-HLBkto5o.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/dropdown-BJ04G_X3.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/edit-drag-Bg6LggKC.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/edits-a2IixhrN.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/export-dialog-4I4gqI5V.js +0 -2
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/face-tracker-DzVfjVOO.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/fit-imported-media-CaCB0x0b.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/generation-queue-DuL2F4-_.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/import-error-CMARA0Hy.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/jsx-runtime-B-hcVAMW.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/menubar-Bs26OdwP.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/meters-YEr9OQjq.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/paints-DS2Msf91.js +0 -67
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/palette-CcS9IcAC.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-7M3uQokX.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-BBK1NyG-.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-CHZTs7By.js +0 -4
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DaSOa3MP.js +0 -2
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DlK3RYVo.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-Dst5OKWu.js +0 -2
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-H_ZoDiKK.js +0 -2
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-Rn9Z7Eek.js +0 -3
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-assets-FAghGFG3.js +0 -678
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-inspector-DEqULBNF.js +0 -260
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-timeline-0GYNz1uc.js +0 -333
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-viewport-DOWjJi5-.js +0 -317
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/projects-BBJc7h5_.js +0 -2
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/session-B9sZaFKC.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/supercomputer-CX-LCL6Y.js +0 -24
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/tabs-CvKQ-eas.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/toggle-CrzrwiDZ.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/transport-BgRfk-Qq.js +0 -69
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/transport-bar-C9nqAfE2.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/typography-C5-w9LOu-kD3uLKkf.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/useOpenInteractionType-DbrQ6Ehu.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/useRenderElement-bbxXdYq0.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/writeback-support-BZfNpkmB.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/editor-Csn2_T_e.js +0 -293
- package/node_modules/@higgsfield/higgsedit/dist/export-settings.mjs +0 -75
- package/node_modules/@higgsfield/higgsedit/dist/history.mjs +0 -295
- package/node_modules/@higgsfield/higgsedit/dist/media-upload.mjs +0 -381
- package/node_modules/@higgsfield/higgsedit/dist/proxy.mjs +0 -170
|
@@ -1,3 +1,183 @@
|
|
|
1
1
|
# higgsedit
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Make videos in code. A higgsedit project is a folder with an `index.tsx` file: the scenes, clips, titles and
|
|
4
|
+
music are elements in that file. `higgsedit` checks the project, previews any frame, edits it and renders it to MP4.
|
|
5
|
+
|
|
6
|
+
```sh
|
|
7
|
+
npx @higgsfield/higgsedit init my-video
|
|
8
|
+
cd my-video && npm install
|
|
9
|
+
npm run render # writes renders/out.mp4
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Install
|
|
13
|
+
|
|
14
|
+
```sh
|
|
15
|
+
npm install -g @higgsfield/higgsedit # adds the `higgsedit` command
|
|
16
|
+
npx @higgsfield/higgsedit <command> # or run it without installing
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
You need **Node 22.12+** and **ffmpeg** (`brew install ffmpeg` or `apt install ffmpeg`). Headless Chrome
|
|
20
|
+
(about 100 MB) downloads by itself the first time you render. Run `higgsedit doctor` to check your setup.
|
|
21
|
+
|
|
22
|
+
## A project
|
|
23
|
+
|
|
24
|
+
`higgsedit init my-video` creates:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
my-video/
|
|
28
|
+
index.tsx the video
|
|
29
|
+
media/ your footage, music and pictures
|
|
30
|
+
package.json npm run dev | check | typecheck | render
|
|
31
|
+
tsconfig.json
|
|
32
|
+
README.md
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
`index.tsx` looks like this:
|
|
36
|
+
|
|
37
|
+
```tsx
|
|
38
|
+
export default function Project() {
|
|
39
|
+
return (
|
|
40
|
+
<stage id="stage">
|
|
41
|
+
<scene id="scene" width={1080} height={1920} fps={30} fill="#0b0c0e">
|
|
42
|
+
<video id="clip" src="./media/intro.mp4" end={8} />
|
|
43
|
+
<text id="title" y={800} width={1080} end={5} fontSize={96} fontWeight={700} align="center" fill="#ffffff">
|
|
44
|
+
Hello
|
|
45
|
+
</text>
|
|
46
|
+
</scene>
|
|
47
|
+
</stage>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Every element has an `id`, which is how the editor and `higgsedit edit` find it. Run `higgsedit stamp .` to
|
|
53
|
+
add any that are missing.
|
|
54
|
+
|
|
55
|
+
## Times
|
|
56
|
+
|
|
57
|
+
Commands that take a time accept seconds (`2.5`), frames (`48f`) or minutes and seconds (`0:05`). Some, such as
|
|
58
|
+
`media grab -t`, also take a negative frame count (`-1f`) for the end of the file.
|
|
59
|
+
|
|
60
|
+
## Commands
|
|
61
|
+
|
|
62
|
+
Run `higgsedit` with no arguments to print them all. `<dir>` is your project folder (`.` for the current one).
|
|
63
|
+
|
|
64
|
+
### Start and check
|
|
65
|
+
|
|
66
|
+
| Command | What it does |
|
|
67
|
+
|---|---|
|
|
68
|
+
| `higgsedit init <dir> [--size 1080x1920] [--fps 30]` | Create a new project. Existing files are kept. |
|
|
69
|
+
| `higgsedit check <dir>` | Compile and load the project, then report errors. |
|
|
70
|
+
| `higgsedit outline <dir>` | Print the element tree: ids, timing and props. |
|
|
71
|
+
| `higgsedit stamp <dir>` | Add an `id` to every element that lacks one. |
|
|
72
|
+
| `higgsedit doctor` | Check ffmpeg, Chrome, Node and the optional tools. |
|
|
73
|
+
| `higgsedit version` | Print the version. |
|
|
74
|
+
|
|
75
|
+
### Preview
|
|
76
|
+
|
|
77
|
+
| Command | What it does |
|
|
78
|
+
|---|---|
|
|
79
|
+
| `higgsedit frame <dir> <time> -o frame.png` | Render one frame to a PNG. |
|
|
80
|
+
| `higgsedit sheet <dir> --times 0,15f,0:05 -o sheet.png [--columns 4] [--width 480]` | Render several frames side by side on one image. |
|
|
81
|
+
| `higgsedit dev <dir> [--port 4173]` | Start the editor server for the project. It reloads when you save `index.tsx`, and edits made in the editor are written back into the file. |
|
|
82
|
+
|
|
83
|
+
### Render
|
|
84
|
+
|
|
85
|
+
```sh
|
|
86
|
+
higgsedit render <dir> -o out.mp4
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
| Option | Default | |
|
|
90
|
+
|---|---|---|
|
|
91
|
+
| `--from <time>`, `--to <time>` | whole video | Render only part of it. |
|
|
92
|
+
| `--crf <n>` | `18` | Quality: lower is better and bigger. |
|
|
93
|
+
| `--preset <name>` | `fast` | Encoder speed preset. |
|
|
94
|
+
| `--encoder x265\|x264\|videotoolbox\|webcodecs` | | Which encoder to use. |
|
|
95
|
+
| `--depth 10` | | 10-bit color. |
|
|
96
|
+
|
|
97
|
+
`higgsedit verify <dir>` checks that every frame renders the same however it is visited: in order, or shuffled.
|
|
98
|
+
|
|
99
|
+
### Edit from the command line
|
|
100
|
+
|
|
101
|
+
`higgsedit edit` changes `index.tsx` for you, finding the element by its `id`.
|
|
102
|
+
|
|
103
|
+
```sh
|
|
104
|
+
higgsedit edit . title set-text "Summer trip"
|
|
105
|
+
higgsedit edit . title set-prop '{"fill": "#ffcc00"}'
|
|
106
|
+
higgsedit edit . clip retime '{"start": "0:02", "end": "0:10"}'
|
|
107
|
+
higgsedit edit . scene insert '{"tag": "rect", "props": {"width": 200, "height": 200, "fill": "#ff0000"}}'
|
|
108
|
+
# ok index.tsx:8 (rect-3ckv) new id rect-3ckv
|
|
109
|
+
higgsedit edit . rect-3ckv move '{"parent": "scene", "before": "title"}'
|
|
110
|
+
higgsedit edit . rect-3ckv remove '{}'
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
| Operation | JSON |
|
|
114
|
+
|---|---|
|
|
115
|
+
| `set-text` | the new text, as a bare word or a JSON string |
|
|
116
|
+
| `set-prop` | `{"<prop>": value}` or `{"name": "<prop>", "value": value}` |
|
|
117
|
+
| `retime` | `{"start": time, "end": time}` (either one) |
|
|
118
|
+
| `insert` | `{"tag": "rect", "props": {...}, "text"?: "...", "before"?: "<id>"}`, inserted into the element you name. It prints the new element's `id`. |
|
|
119
|
+
| `move` | `{"parent": "<id>", "before"?: "<id>"}` |
|
|
120
|
+
| `remove` | `{}` |
|
|
121
|
+
|
|
122
|
+
Values marked with `@inspect` in the source are changed by name: `higgsedit edit <dir> <name> set-const <value>`.
|
|
123
|
+
`higgsedit outline` lists the names.
|
|
124
|
+
|
|
125
|
+
### Footage
|
|
126
|
+
|
|
127
|
+
| Command | What it does |
|
|
128
|
+
|---|---|
|
|
129
|
+
| `higgsedit media probe <file>` | Show the container, duration and codecs. |
|
|
130
|
+
| `higgsedit media grab <file> -t 0,1.5,-1f` | Save frames as contact sheets. Use `-c 6` for 6 evenly spaced frames, or `-S` for one PNG each. |
|
|
131
|
+
| `higgsedit media filmstrip <file> [-s <time>] [-e <time>]` | Make a thumbnail strip with a timecode ruler. |
|
|
132
|
+
| `higgsedit media waveform <file> [--silence-db -40]` | Draw the loudness and list the silent parts, to find cut points. |
|
|
133
|
+
| `higgsedit transcribe <file> -o words.json [--language en]` | Make a word-timed transcript for captions. Needs `mlx_whisper` installed. |
|
|
134
|
+
|
|
135
|
+
Add `--json` to any `media` command for machine-readable output. `higgsedit media help` lists every option.
|
|
136
|
+
|
|
137
|
+
### Cut out objects (masks)
|
|
138
|
+
|
|
139
|
+
| Command | What it does |
|
|
140
|
+
|---|---|
|
|
141
|
+
| `higgsedit segment <file> --point x,y -o person.mask` | Track an object you click on through the clip (SAM 2.1). The model downloads on first use. |
|
|
142
|
+
| `higgsedit select <file> --at <time> --text "dog, ball"` | Find objects in one frame by name or by point. Needs a select server (`HIGGSEDIT_SELECT_URL`). |
|
|
143
|
+
|
|
144
|
+
Narrow the selection with more `--point x,y`, `--exclude x,y` or `--box x0,y0,x1,y1`, and set the range with
|
|
145
|
+
`--start <time>` and `--end <time>`. Use the result as a mask: `mask={{ src: "./media/person.mask" }}`.
|
|
146
|
+
|
|
147
|
+
### Fonts and presets
|
|
148
|
+
|
|
149
|
+
| Command | What it does |
|
|
150
|
+
|---|---|
|
|
151
|
+
| `higgsedit fonts [name] [--category serif] [--cached]` | Search Google Fonts for `<text fontFamily>`. Downloaded fonts also render offline. |
|
|
152
|
+
| `higgsedit presets` | List installed motion presets. The editor's Presets panel inserts them. |
|
|
153
|
+
| `higgsedit presets install <pack-dir>` | Install a preset pack. |
|
|
154
|
+
|
|
155
|
+
If a font can't be loaded, `frame`, `sheet`, `render` and `verify` stop with an error. Add
|
|
156
|
+
`--allow-font-fallback` to render with a fallback font instead.
|
|
157
|
+
|
|
158
|
+
The dev editor saves Undo/Redo across restarts in `.higgsedit-cache/history.json`. History retains up
|
|
159
|
+
to 100 edits and 16 MiB in total, trimming oldest entries; a single edit larger than that limit is
|
|
160
|
+
refused. Keep one dev server per project. Undo refuses files changed outside the editor; reopen the
|
|
161
|
+
project if another editor has changed its history.
|
|
162
|
+
|
|
163
|
+
Requires Node 22.12+ and ffmpeg. Headless Chrome (~100 MB) downloads into `~/.higgsedit-next/chrome` on first
|
|
164
|
+
use (`HIGGSEDIT_HOME` moves that folder, `HIGGSEDIT_NEXT_CHROME` points at a browser of your own).
|
|
165
|
+
|
|
166
|
+
## Settings
|
|
167
|
+
|
|
168
|
+
| Variable | |
|
|
169
|
+
|---|---|
|
|
170
|
+
| `HIGGSEDIT_HOME` | Where Chrome, models and presets are kept. Default: `~/.higgsedit-next`. |
|
|
171
|
+
| `HIGGSEDIT_NEXT_CHROME` | Use your own Chrome instead of downloading one. |
|
|
172
|
+
| `HIGGSEDIT_FFMPEG`, `HIGGSEDIT_FFPROBE` | Paths to ffmpeg and ffprobe if they aren't on your `PATH`. |
|
|
173
|
+
| `HIGGSEDIT_PRESETS_DIR` | Where `dev` and `presets` look for presets. |
|
|
174
|
+
| `HIGGSEDIT_SELECT_URL`, `HIGGSEDIT_SELECT_TOKEN` | The server `select` uses. |
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
Media imports stream to a private temporary file, then publish atomically without replacing existing
|
|
178
|
+
files. Both direct HTTP imports and the MCP editor use the same limits: 8 GiB per file, four active
|
|
179
|
+
uploads, a 60 second idle timeout and a 30 minute total timeout. Override these with positive integers
|
|
180
|
+
in `HIGGSEDIT_MEDIA_MAX_BYTES`, `HIGGSEDIT_MEDIA_MAX_CONCURRENT`, `HIGGSEDIT_MEDIA_IDLE_MS` and
|
|
181
|
+
`HIGGSEDIT_MEDIA_TOTAL_MS`. Failed, cancelled and timed-out uploads are removed. On drives without hard
|
|
182
|
+
links (for example exFAT), imports use a unique `media/import-XXXXXX/` directory; the editor lists them
|
|
183
|
+
alongside ordinary media files. Symlinked media directories are refused.
|