@mevdragon/vidfarm-devcli 0.13.0 → 0.15.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/.agents/skills/embedded-captions/CATALOG.md +93 -0
- package/.agents/skills/embedded-captions/SKILL.md +286 -0
- package/.agents/skills/embedded-captions/assets/brand/CDPR-fankit-terms.txt +35 -0
- package/.agents/skills/embedded-captions/assets/brand/cyberpunk-widths.json +115 -0
- package/.agents/skills/embedded-captions/assets/fonts/char-widths.json +2211 -0
- package/.agents/skills/embedded-captions/assets/strokefonts/HersheyScript1.svg +242 -0
- package/.agents/skills/embedded-captions/assets/strokefonts/HersheyScriptMed.svg +242 -0
- package/.agents/skills/embedded-captions/dna/README.md +148 -0
- package/.agents/skills/embedded-captions/dna/chrome.json +68 -0
- package/.agents/skills/embedded-captions/dna/cream.json +69 -0
- package/.agents/skills/embedded-captions/dna/documentary.json +62 -0
- package/.agents/skills/embedded-captions/dna/editorial.json +70 -0
- package/.agents/skills/embedded-captions/dna/glitch.json +82 -0
- package/.agents/skills/embedded-captions/dna/ink.json +65 -0
- package/.agents/skills/embedded-captions/dna/keynote.json +62 -0
- package/.agents/skills/embedded-captions/dna/loud.json +75 -0
- package/.agents/skills/embedded-captions/dna/neon.json +58 -0
- package/.agents/skills/embedded-captions/dna/velocity.json +89 -0
- package/.agents/skills/embedded-captions/modes/cinematic/README.md +48 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/champion/spec.md +98 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/champion/template.html +188 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/memory-wall/spec.md +134 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/memory-wall/template.html +179 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/portrait-header/spec.md +81 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/portrait-header/template.html +170 -0
- package/.agents/skills/embedded-captions/modes/cinematic/cinematic-cream/spec.md +16 -0
- package/.agents/skills/embedded-captions/modes/cinematic/cinematic-cream/template.html +226 -0
- package/.agents/skills/embedded-captions/modes/cinematic/engine.html +355 -0
- package/.agents/skills/embedded-captions/modes/standard/_anatomy.md +233 -0
- package/.agents/skills/embedded-captions/modes/standard/_motion.md +192 -0
- package/.agents/skills/embedded-captions/modes/standard/fonts/build-fonts-css.cjs +97 -0
- package/.agents/skills/embedded-captions/references/aesthetic-principles.md +168 -0
- package/.agents/skills/embedded-captions/references/anti-patterns.md +188 -0
- package/.agents/skills/embedded-captions/references/bespoke-vs-presets.md +178 -0
- package/.agents/skills/embedded-captions/references/caption-grouping.md +130 -0
- package/.agents/skills/embedded-captions/references/composition-craft.md +522 -0
- package/.agents/skills/embedded-captions/references/direction-catalog.md +138 -0
- package/.agents/skills/embedded-captions/references/example-renders/champion.html +371 -0
- package/.agents/skills/embedded-captions/references/example-renders/memory-wall.html +334 -0
- package/.agents/skills/embedded-captions/references/failure-modes.md +145 -0
- package/.agents/skills/embedded-captions/references/layout-heuristics.md +238 -0
- package/.agents/skills/embedded-captions/references/motion-vocabulary.md +148 -0
- package/.agents/skills/embedded-captions/references/rail.md +68 -0
- package/.agents/skills/embedded-captions/references/reference-bar.md +47 -0
- package/.agents/skills/embedded-captions/references/scene-types.md +94 -0
- package/.agents/skills/embedded-captions/references/test-set.md +66 -0
- package/.agents/skills/embedded-captions/references/typographic-moves.md +266 -0
- package/.agents/skills/embedded-captions/references/typography-presets.md +63 -0
- package/.agents/skills/embedded-captions/scripts/audio-envelope.cjs +95 -0
- package/.agents/skills/embedded-captions/scripts/check-occlusion.cjs +250 -0
- package/.agents/skills/embedded-captions/scripts/check-overflow.cjs +194 -0
- package/.agents/skills/embedded-captions/scripts/check-rail-climax.cjs +233 -0
- package/.agents/skills/embedded-captions/scripts/check-timing.cjs +173 -0
- package/.agents/skills/embedded-captions/scripts/fill-timings.cjs +124 -0
- package/.agents/skills/embedded-captions/scripts/fit-fonts.cjs +158 -0
- package/.agents/skills/embedded-captions/scripts/gen-stroke-path.py +46 -0
- package/.agents/skills/embedded-captions/scripts/inject-fonts.cjs +169 -0
- package/.agents/skills/embedded-captions/scripts/lib-dna.cjs +201 -0
- package/.agents/skills/embedded-captions/scripts/make-cinematic.cjs +1205 -0
- package/.agents/skills/embedded-captions/scripts/make-composition.cjs +404 -0
- package/.agents/skills/embedded-captions/scripts/make-theme.cjs +8781 -0
- package/.agents/skills/embedded-captions/scripts/matte.cjs +294 -0
- package/.agents/skills/embedded-captions/scripts/measure-layout.cjs +293 -0
- package/.agents/skills/embedded-captions/scripts/prepare.sh +39 -0
- package/.agents/skills/embedded-captions/scripts/preview-frames.cjs +268 -0
- package/.agents/skills/embedded-captions/scripts/render-and-composite.sh +509 -0
- package/.agents/skills/embedded-captions/scripts/render-theme.sh +34 -0
- package/.agents/skills/embedded-captions/scripts/safe-zones.cjs +813 -0
- package/.agents/skills/embedded-captions/scripts/transcribe.cjs +349 -0
- package/.agents/skills/embedded-captions/themes/PORTING.md +49 -0
- package/.agents/skills/embedded-captions/themes/README.md +244 -0
- package/.agents/skills/embedded-captions/themes/anchor.json +27 -0
- package/.agents/skills/embedded-captions/themes/arcade.json +51 -0
- package/.agents/skills/embedded-captions/themes/aurora.json +41 -0
- package/.agents/skills/embedded-captions/themes/biolume.json +35 -0
- package/.agents/skills/embedded-captions/themes/brush.json +74 -0
- package/.agents/skills/embedded-captions/themes/chalkboard.json +52 -0
- package/.agents/skills/embedded-captions/themes/dossier.json +56 -0
- package/.agents/skills/embedded-captions/themes/graffiti.json +62 -0
- package/.agents/skills/embedded-captions/themes/hologram.json +41 -0
- package/.agents/skills/embedded-captions/themes/inkwater.json +43 -0
- package/.agents/skills/embedded-captions/themes/laser.json +46 -0
- package/.agents/skills/embedded-captions/themes/lastpage.json +33 -0
- package/.agents/skills/embedded-captions/themes/neonsign.json +53 -0
- package/.agents/skills/embedded-captions/themes/nightcity.json +56 -0
- package/.agents/skills/embedded-captions/themes/ordnance.json +54 -0
- package/.agents/skills/embedded-captions/themes/papercut.json +37 -0
- package/.agents/skills/embedded-captions/themes/popup.json +46 -0
- package/.agents/skills/embedded-captions/themes/ransom.json +62 -0
- package/.agents/skills/embedded-captions/themes/scoreboard.json +54 -0
- package/.agents/skills/embedded-captions/themes/spectrum.json +46 -0
- package/.agents/skills/embedded-captions/themes/stardust.json +29 -0
- package/.agents/skills/embedded-captions/themes/stomp.json +43 -0
- package/.agents/skills/embedded-captions/themes/terminal.json +49 -0
- package/.agents/skills/embedded-captions/themes/thunder.json +44 -0
- package/.agents/skills/embedded-captions/themes/transit.json +44 -0
- package/.agents/skills/embedded-captions/themes/vhs.json +47 -0
- package/.agents/skills/faceless-explainer/SKILL.md +209 -0
- package/.agents/skills/faceless-explainer/references/cut-catalog.md +215 -0
- package/.agents/skills/faceless-explainer/references/motion-language.md +156 -0
- package/.agents/skills/faceless-explainer/references/story-design.md +248 -0
- package/.agents/skills/faceless-explainer/references/visual-design.md +146 -0
- package/.agents/skills/faceless-explainer/scripts/assemble-index.mjs +570 -0
- package/.agents/skills/faceless-explainer/scripts/audio.mjs +260 -0
- package/.agents/skills/faceless-explainer/scripts/build-frame.mjs +536 -0
- package/.agents/skills/faceless-explainer/scripts/captions.mjs +508 -0
- package/.agents/skills/faceless-explainer/scripts/lib/assets.mjs +55 -0
- package/.agents/skills/faceless-explainer/scripts/lib/dimensions.mjs +45 -0
- package/.agents/skills/faceless-explainer/scripts/lib/storyboard.mjs +249 -0
- package/.agents/skills/faceless-explainer/scripts/lib/tokens.mjs +204 -0
- package/.agents/skills/faceless-explainer/scripts/lib/transition-registry.mjs +38 -0
- package/.agents/skills/faceless-explainer/scripts/lib/transitions.json +71 -0
- package/.agents/skills/faceless-explainer/scripts/transitions.mjs +320 -0
- package/.agents/skills/faceless-explainer/sub-agents/frame-worker.md +75 -0
- package/.agents/skills/flockposter/LICENSE +17 -0
- package/.agents/skills/flockposter/README.md +72 -0
- package/.agents/skills/flockposter/SKILL.md +562 -0
- package/.agents/skills/flockposter/examples/cli-instagram-reel.sh +21 -0
- package/.agents/skills/flockposter/examples/cli-multi-platform.json +69 -0
- package/.agents/skills/flockposter/examples/cli-tiktok-upload-only.sh +22 -0
- package/.agents/skills/flockposter/examples/cli-x-thread.sh +17 -0
- package/.agents/skills/flockposter/examples/cli-youtube-short.sh +21 -0
- package/.agents/skills/flockposter/examples/public-api-instagram-reel.json +28 -0
- package/.agents/skills/general-video/SKILL.md +143 -0
- package/.agents/skills/hyperframes/SKILL.md +160 -0
- package/.agents/skills/hyperframes-animation/SKILL.md +84 -0
- package/.agents/skills/hyperframes-animation/adapters/animate-text.md +64 -0
- package/.agents/skills/hyperframes-animation/adapters/animejs.md +114 -0
- package/.agents/skills/hyperframes-animation/adapters/css-animations.md +143 -0
- package/.agents/skills/hyperframes-animation/adapters/gsap-easing-and-stagger.md +118 -0
- package/.agents/skills/hyperframes-animation/adapters/gsap-timeline-and-labels.md +96 -0
- package/.agents/skills/hyperframes-animation/adapters/gsap-transforms-and-perf.md +96 -0
- package/.agents/skills/hyperframes-animation/adapters/gsap.md +105 -0
- package/.agents/skills/hyperframes-animation/adapters/html-in-canvas-patterns.md +507 -0
- package/.agents/skills/hyperframes-animation/adapters/lottie.md +117 -0
- package/.agents/skills/hyperframes-animation/adapters/three.md +131 -0
- package/.agents/skills/hyperframes-animation/adapters/typegpu.md +178 -0
- package/.agents/skills/hyperframes-animation/adapters/waapi.md +101 -0
- package/.agents/skills/hyperframes-animation/blueprints/comparison-split.md +27 -0
- package/.agents/skills/hyperframes-animation/blueprints/constellation-hub.md +44 -0
- package/.agents/skills/hyperframes-animation/blueprints/cta-morph-press.md +28 -0
- package/.agents/skills/hyperframes-animation/blueprints/cursor-ui-demo.md +57 -0
- package/.agents/skills/hyperframes-animation/blueprints/dataviz-countup.md +46 -0
- package/.agents/skills/hyperframes-animation/blueprints/device-surface-showcase.md +53 -0
- package/.agents/skills/hyperframes-animation/blueprints/grid-card-assemble.md +66 -0
- package/.agents/skills/hyperframes-animation/blueprints/kinetic-type-beats.md +78 -0
- package/.agents/skills/hyperframes-animation/blueprints/logo-assemble-lockup.md +69 -0
- package/.agents/skills/hyperframes-animation/blueprints/overwhelm-surround.md +28 -0
- package/.agents/skills/hyperframes-animation/blueprints/spatial-pan-stations.md +37 -0
- package/.agents/skills/hyperframes-animation/blueprints/ticker-takeover.md +29 -0
- package/.agents/skills/hyperframes-animation/blueprints/titlecard-reveal.md +42 -0
- package/.agents/skills/hyperframes-animation/blueprints/typewriter-reveal.md +51 -0
- package/.agents/skills/hyperframes-animation/blueprints/video-text-pivot.md +30 -0
- package/.agents/skills/hyperframes-animation/blueprints-index.md +146 -0
- package/.agents/skills/hyperframes-animation/examples/assets/avatars/02.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/assets/brands/github.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/assets/brands/nvidia.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/assets/brands/visa.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/assets/brands/zoominfo.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/brand-reveal-assemble-zoom.html +382 -0
- package/.agents/skills/hyperframes-animation/examples/comparison-split-cards.html +649 -0
- package/.agents/skills/hyperframes-animation/examples/concept-demo-decode-pan.html +520 -0
- package/.agents/skills/hyperframes-animation/examples/cta-morph-press.html +468 -0
- package/.agents/skills/hyperframes-animation/examples/cta-orbit-collapse.html +1298 -0
- package/.agents/skills/hyperframes-animation/examples/demo-page-scroll-spotlight.html +759 -0
- package/.agents/skills/hyperframes-animation/examples/hook-counter-burst.html +729 -0
- package/.agents/skills/hyperframes-animation/examples/messaging-multi-phrase.html +352 -0
- package/.agents/skills/hyperframes-animation/examples/metric-video-text-pivot.html +779 -0
- package/.agents/skills/hyperframes-animation/examples/problem-mockup-overwhelm.html +1374 -0
- package/.agents/skills/hyperframes-animation/examples/proof-logo-chain.html +861 -0
- package/.agents/skills/hyperframes-animation/examples/takeover-ticker-displace.html +347 -0
- package/.agents/skills/hyperframes-animation/examples/workflow-approve-press.html +606 -0
- package/.agents/skills/hyperframes-animation/rules/3d-page-scroll.md +227 -0
- package/.agents/skills/hyperframes-animation/rules/3d-text-depth-layers.md +297 -0
- package/.agents/skills/hyperframes-animation/rules/ai-tracking-box.md +382 -0
- package/.agents/skills/hyperframes-animation/rules/ambient-glow-bloom.md +305 -0
- package/.agents/skills/hyperframes-animation/rules/asr-keyword-glow.md +286 -0
- package/.agents/skills/hyperframes-animation/rules/avatar-cloud-network.md +371 -0
- package/.agents/skills/hyperframes-animation/rules/camera-cursor-tracking.md +246 -0
- package/.agents/skills/hyperframes-animation/rules/card-morph-anchor.md +267 -0
- package/.agents/skills/hyperframes-animation/rules/center-outward-expansion.md +227 -0
- package/.agents/skills/hyperframes-animation/rules/context-sensitive-cursor.md +257 -0
- package/.agents/skills/hyperframes-animation/rules/coordinate-target-zoom.md +332 -0
- package/.agents/skills/hyperframes-animation/rules/counting-dynamic-scale.md +283 -0
- package/.agents/skills/hyperframes-animation/rules/css-marker-patterns.md +373 -0
- package/.agents/skills/hyperframes-animation/rules/cursor-click-ripple.md +262 -0
- package/.agents/skills/hyperframes-animation/rules/depth-of-field-blur.md +313 -0
- package/.agents/skills/hyperframes-animation/rules/depth-scatter-assemble.md +303 -0
- package/.agents/skills/hyperframes-animation/rules/discrete-text-sequence.md +273 -0
- package/.agents/skills/hyperframes-animation/rules/dynamic-content-sequencing.md +307 -0
- package/.agents/skills/hyperframes-animation/rules/gsap-effects.md +299 -0
- package/.agents/skills/hyperframes-animation/rules/hacker-flip-3d.md +223 -0
- package/.agents/skills/hyperframes-animation/rules/kinetic-beat-slam.md +183 -0
- package/.agents/skills/hyperframes-animation/rules/motion-blur-streak.md +328 -0
- package/.agents/skills/hyperframes-animation/rules/multi-phase-camera.md +273 -0
- package/.agents/skills/hyperframes-animation/rules/orbit-3d-entry.md +301 -0
- package/.agents/skills/hyperframes-animation/rules/physics-press-reaction.md +350 -0
- package/.agents/skills/hyperframes-animation/rules/press-release-spring.md +296 -0
- package/.agents/skills/hyperframes-animation/rules/reactive-displacement.md +277 -0
- package/.agents/skills/hyperframes-animation/rules/scale-swap-transition.md +298 -0
- package/.agents/skills/hyperframes-animation/rules/sine-wave-loop.md +278 -0
- package/.agents/skills/hyperframes-animation/rules/split-tilt-cards.md +277 -0
- package/.agents/skills/hyperframes-animation/rules/spring-pop-entrance.md +273 -0
- package/.agents/skills/hyperframes-animation/rules/stat-bars-and-fills.md +156 -0
- package/.agents/skills/hyperframes-animation/rules/svg-icon-enrichment.md +329 -0
- package/.agents/skills/hyperframes-animation/rules/svg-path-draw.md +274 -0
- package/.agents/skills/hyperframes-animation/rules/vertical-spring-ticker.md +239 -0
- package/.agents/skills/hyperframes-animation/rules/viewport-change.md +349 -0
- package/.agents/skills/hyperframes-animation/rules-index.md +86 -0
- package/.agents/skills/hyperframes-animation/scripts/animation-map.mjs +606 -0
- package/.agents/skills/hyperframes-animation/scripts/package-loader.mjs +288 -0
- package/.agents/skills/hyperframes-animation/scripts/package-loader.test.mjs +62 -0
- package/.agents/skills/hyperframes-animation/techniques.md +507 -0
- package/.agents/skills/hyperframes-animation/transitions/TRANSITION-REGISTRY.md +167 -0
- package/.agents/skills/hyperframes-animation/transitions/catalog.md +127 -0
- package/.agents/skills/hyperframes-animation/transitions/css-3d.md +12 -0
- package/.agents/skills/hyperframes-animation/transitions/css-blur.md +51 -0
- package/.agents/skills/hyperframes-animation/transitions/css-cover.md +43 -0
- package/.agents/skills/hyperframes-animation/transitions/css-destruction.md +95 -0
- package/.agents/skills/hyperframes-animation/transitions/css-dissolve.md +66 -0
- package/.agents/skills/hyperframes-animation/transitions/css-distortion.md +45 -0
- package/.agents/skills/hyperframes-animation/transitions/css-grid.md +10 -0
- package/.agents/skills/hyperframes-animation/transitions/css-light.md +49 -0
- package/.agents/skills/hyperframes-animation/transitions/css-mechanical.md +30 -0
- package/.agents/skills/hyperframes-animation/transitions/css-other.md +25 -0
- package/.agents/skills/hyperframes-animation/transitions/css-push.md +41 -0
- package/.agents/skills/hyperframes-animation/transitions/css-radial.md +37 -0
- package/.agents/skills/hyperframes-animation/transitions/css-scale.md +24 -0
- package/.agents/skills/hyperframes-animation/transitions/overview.md +153 -0
- package/.agents/skills/hyperframes-cli/SKILL.md +113 -0
- package/.agents/skills/hyperframes-cli/references/doctor-browser.md +45 -0
- package/.agents/skills/hyperframes-cli/references/init-and-scaffold.md +55 -0
- package/.agents/skills/hyperframes-cli/references/lambda.md +132 -0
- package/.agents/skills/hyperframes-cli/references/lint-validate-inspect.md +121 -0
- package/.agents/skills/hyperframes-cli/references/preview-render.md +149 -0
- package/.agents/skills/hyperframes-cli/references/upgrade-info-misc.md +75 -0
- package/.agents/skills/hyperframes-core/SKILL.md +78 -0
- package/.agents/skills/hyperframes-core/references/composition-patterns.md +263 -0
- package/.agents/skills/hyperframes-core/references/data-attributes.md +70 -0
- package/.agents/skills/hyperframes-core/references/determinism-rules.md +68 -0
- package/.agents/skills/hyperframes-core/references/full-screen-motion.md +62 -0
- package/.agents/skills/hyperframes-core/references/minimal-composition.md +66 -0
- package/.agents/skills/hyperframes-core/references/script-format.md +49 -0
- package/.agents/skills/hyperframes-core/references/storyboard-format.md +95 -0
- package/.agents/skills/hyperframes-core/references/sub-compositions.md +237 -0
- package/.agents/skills/hyperframes-core/references/subagent-dispatch.md +41 -0
- package/.agents/skills/hyperframes-core/references/tailwind.md +125 -0
- package/.agents/skills/hyperframes-core/references/tracks-and-clips.md +76 -0
- package/.agents/skills/hyperframes-core/references/variables-and-media.md +90 -0
- package/.agents/skills/hyperframes-creative/SKILL.md +70 -0
- package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/FRAME.md +289 -0
- package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/caption-skin.html +221 -0
- package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/frame-showcase.html +1214 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blockframe/FRAME.md +275 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blockframe/caption-skin.html +224 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blockframe/frame-showcase.html +1347 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/FRAME.md +307 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/caption-skin.html +223 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/frame-showcase.html +1372 -0
- package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/FRAME.md +275 -0
- package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/caption-skin.html +230 -0
- package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/frame-showcase.html +1140 -0
- package/.agents/skills/hyperframes-creative/frame-presets/broadside/FRAME.md +284 -0
- package/.agents/skills/hyperframes-creative/frame-presets/broadside/caption-skin.html +225 -0
- package/.agents/skills/hyperframes-creative/frame-presets/broadside/frame-showcase.html +1166 -0
- package/.agents/skills/hyperframes-creative/frame-presets/capsule/FRAME.md +284 -0
- package/.agents/skills/hyperframes-creative/frame-presets/capsule/caption-skin.html +224 -0
- package/.agents/skills/hyperframes-creative/frame-presets/capsule/frame-showcase.html +1465 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cartesian/FRAME.md +278 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cartesian/caption-skin.html +222 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cartesian/frame-showcase.html +1263 -0
- package/.agents/skills/hyperframes-creative/frame-presets/claude/FRAME.md +277 -0
- package/.agents/skills/hyperframes-creative/frame-presets/claude/caption-skin.html +224 -0
- package/.agents/skills/hyperframes-creative/frame-presets/claude/frame-showcase.html +1439 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/FRAME.md +265 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/caption-skin.html +238 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/frame-showcase.html +1468 -0
- package/.agents/skills/hyperframes-creative/frame-presets/coral/FRAME.md +314 -0
- package/.agents/skills/hyperframes-creative/frame-presets/coral/caption-skin.html +226 -0
- package/.agents/skills/hyperframes-creative/frame-presets/coral/frame-showcase.html +1268 -0
- package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/FRAME.md +333 -0
- package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/caption-skin.html +227 -0
- package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/frame-showcase.html +1330 -0
- package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/FRAME.md +274 -0
- package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/caption-skin.html +230 -0
- package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/frame-showcase.html +1444 -0
- package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/FRAME.md +265 -0
- package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/caption-skin.html +223 -0
- package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/frame-showcase.html +1273 -0
- package/.agents/skills/hyperframes-creative/palettes/bold-energetic.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/clean-corporate.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/dark-premium.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/jewel-rich.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/monochrome.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/nature-earth.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/neon-electric.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/pastel-soft.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/warm-editorial.md +14 -0
- package/.agents/skills/hyperframes-creative/references/audio-reactive.md +76 -0
- package/.agents/skills/hyperframes-creative/references/beat-direction.md +164 -0
- package/.agents/skills/hyperframes-creative/references/composition-patterns.md +199 -0
- package/.agents/skills/hyperframes-creative/references/data-in-motion.md +19 -0
- package/.agents/skills/hyperframes-creative/references/design-adherence.md +19 -0
- package/.agents/skills/hyperframes-creative/references/design-picker.md +123 -0
- package/.agents/skills/hyperframes-creative/references/design-spec.md +55 -0
- package/.agents/skills/hyperframes-creative/references/house-style.md +73 -0
- package/.agents/skills/hyperframes-creative/references/motion-principles.md +150 -0
- package/.agents/skills/hyperframes-creative/references/narration.md +92 -0
- package/.agents/skills/hyperframes-creative/references/prompt-expansion.md +68 -0
- package/.agents/skills/hyperframes-creative/references/typography.md +218 -0
- package/.agents/skills/hyperframes-creative/references/video-composition.md +63 -0
- package/.agents/skills/hyperframes-creative/references/visual-styles.md +457 -0
- package/.agents/skills/hyperframes-creative/scripts/contrast-report.mjs +353 -0
- package/.agents/skills/hyperframes-creative/scripts/extract-audio-data.py +188 -0
- package/.agents/skills/hyperframes-creative/scripts/package-loader.mjs +288 -0
- package/.agents/skills/hyperframes-creative/scripts/package-loader.test.mjs +62 -0
- package/.agents/skills/hyperframes-creative/templates/design-picker.html +1432 -0
- package/.agents/skills/hyperframes-keyframes/SKILL.md +237 -0
- package/.agents/skills/hyperframes-keyframes/agents/openai.yaml +4 -0
- package/.agents/skills/hyperframes-keyframes/references/keyframe-patterns.md +106 -0
- package/.agents/skills/motion-graphics/SKILL.md +172 -0
- package/.agents/skills/motion-graphics/agents/builder.md +40 -0
- package/.agents/skills/motion-graphics/agents/director.md +53 -0
- package/.agents/skills/motion-graphics/agents/finalize.md +17 -0
- package/.agents/skills/motion-graphics/catalog-map.md +40 -0
- package/.agents/skills/motion-graphics/categories/asset-fusion/module.md +37 -0
- package/.agents/skills/motion-graphics/categories/charts/module.md +21 -0
- package/.agents/skills/motion-graphics/categories/kinetic-type/module.md +19 -0
- package/.agents/skills/motion-graphics/categories/logo-reveal/module.md +17 -0
- package/.agents/skills/motion-graphics/categories/lower-thirds/module.md +16 -0
- package/.agents/skills/motion-graphics/categories/maps/bake-basemap.mjs +273 -0
- package/.agents/skills/motion-graphics/categories/maps/module.md +61 -0
- package/.agents/skills/motion-graphics/categories/news/module.md +56 -0
- package/.agents/skills/motion-graphics/categories/stat/module.md +21 -0
- package/.agents/skills/motion-graphics/categories/tweet/module.md +16 -0
- package/.agents/skills/motion-graphics/categories/webpage/module.md +21 -0
- package/.agents/skills/motion-graphics/grounding/PROTOCOL.md +64 -0
- package/.agents/skills/motion-graphics/grounding/locate.mjs +227 -0
- package/.agents/skills/motion-graphics/phases/source/guide.md +21 -0
- package/.agents/skills/motion-graphics/references/builder-contract.md +38 -0
- package/.agents/skills/motion-graphics/references/motion-vocabulary.md +43 -0
- package/.agents/skills/motion-graphics/references/shot-plan-ir.md +54 -0
- package/.agents/skills/motion-graphics/samples/asset-fusion/_ref-circle-highlight.html +306 -0
- package/.agents/skills/product-launch-video/SKILL.md +208 -0
- package/.agents/skills/product-launch-video/references/cut-catalog.md +220 -0
- package/.agents/skills/product-launch-video/references/motion-language.md +156 -0
- package/.agents/skills/product-launch-video/references/story-design.md +373 -0
- package/.agents/skills/product-launch-video/references/visual-design.md +126 -0
- package/.agents/skills/product-launch-video/scripts/assemble-index.mjs +570 -0
- package/.agents/skills/product-launch-video/scripts/audio.mjs +260 -0
- package/.agents/skills/product-launch-video/scripts/build-frame.mjs +536 -0
- package/.agents/skills/product-launch-video/scripts/captions.mjs +508 -0
- package/.agents/skills/product-launch-video/scripts/lib/assets.mjs +55 -0
- package/.agents/skills/product-launch-video/scripts/lib/dimensions.mjs +45 -0
- package/.agents/skills/product-launch-video/scripts/lib/pad-frame-duration.mjs +36 -0
- package/.agents/skills/product-launch-video/scripts/lib/pad-frame-duration.test.mjs +76 -0
- package/.agents/skills/product-launch-video/scripts/lib/storyboard.mjs +249 -0
- package/.agents/skills/product-launch-video/scripts/lib/tokens.mjs +204 -0
- package/.agents/skills/product-launch-video/scripts/lib/transition-registry.mjs +38 -0
- package/.agents/skills/product-launch-video/scripts/lib/transitions.json +71 -0
- package/.agents/skills/product-launch-video/scripts/stage-assets.mjs +39 -0
- package/.agents/skills/product-launch-video/scripts/transitions.mjs +327 -0
- package/.agents/skills/product-launch-video/sub-agents/frame-worker.md +75 -0
- package/.agents/skills/slideshow/SKILL.md +550 -0
- package/.agents/skills/slideshow/references/standalone-harness.md +1020 -0
- package/.agents/skills/talking-head-recut/NOTICE.md +39 -0
- package/.agents/skills/talking-head-recut/SKILL.md +1195 -0
- package/.agents/skills/talking-head-recut/assets/vendor/gsap.min.js +10 -0
- package/.agents/skills/talking-head-recut/references/DESIGN_INDEX.md +145 -0
- package/.agents/skills/talking-head-recut/references/frames/clean.html +92 -0
- package/.agents/skills/talking-head-recut/references/frames/hairline.html +171 -0
- package/.agents/skills/talking-head-recut/references/frames/polaroid.html +131 -0
- package/.agents/skills/talking-head-recut/references/layouts/overlay.html +164 -0
- package/.agents/skills/talking-head-recut/references/layouts/pip.html +143 -0
- package/.agents/skills/talking-head-recut/references/layouts/split.html +121 -0
- package/.agents/skills/talking-head-recut/references/layouts/stack.html +109 -0
- package/.agents/skills/talking-head-recut/references/styles/academic.html +172 -0
- package/.agents/skills/talking-head-recut/references/styles/audit.html +170 -0
- package/.agents/skills/talking-head-recut/references/styles/editorial.html +189 -0
- package/.agents/skills/talking-head-recut/references/styles/geom.html +181 -0
- package/.agents/skills/talking-head-recut/references/styles/minimal.html +130 -0
- package/.agents/skills/talking-head-recut/references/styles/spotlight.html +142 -0
- package/.agents/skills/talking-head-recut/references/styles/swiss.html +188 -0
- package/.agents/skills/talking-head-recut/references/styles/terminal.html +196 -0
- package/.agents/skills/talking-head-recut/references/styles/whiteboard.html +170 -0
- package/.agents/skills/talking-head-recut/references/styles/xhs.html +206 -0
- package/.agents/skills/vidfarm-media/SKILL.md +85 -0
- package/.agents/skills/vidfarm-media/references/tts.md +54 -0
- package/.agents/skills/vidfarm-media/scripts/audio.mjs +628 -0
- package/.agents/skills/vidfarm-media/scripts/wait-bgm.mjs +31 -0
- package/.agents/skills/website-to-video/SKILL.md +145 -0
- package/.agents/skills/website-to-video/assets/sfx/CREDITS.md +35 -0
- package/.agents/skills/website-to-video/assets/sfx/manifest.json +97 -0
- package/.agents/skills/website-to-video/references/beat-builder-guide.md +263 -0
- package/.agents/skills/website-to-video/references/capabilities.md +713 -0
- package/.agents/skills/website-to-video/references/step-0-capture.md +55 -0
- package/.agents/skills/website-to-video/references/step-1-design.md +333 -0
- package/.agents/skills/website-to-video/references/step-2-brief.md +178 -0
- package/.agents/skills/website-to-video/references/step-3-storyboard.md +572 -0
- package/.agents/skills/website-to-video/references/step-4-vo.md +225 -0
- package/.agents/skills/website-to-video/references/step-5-build.md +483 -0
- package/.agents/skills/website-to-video/references/step-6-validate.md +341 -0
- package/.agents/skills/website-to-video/scripts/w2h-verify.mjs +759 -0
- package/SKILL.director.md +60 -4
- package/SKILL.platform.md +7 -2
- package/demo/dist/app.css +1 -1
- package/demo/dist/app.js +485 -86
- package/dist/src/account-pages-legacy.js +9 -14
- package/dist/src/app.js +659 -159
- package/dist/src/cli.js +618 -17
- package/dist/src/composition-runtime.js +286 -6
- package/dist/src/devcli/composition-edit.js +176 -8
- package/dist/src/devcli/doctor.js +192 -0
- package/dist/src/devcli/hyperframes-cli.js +118 -0
- package/dist/src/devcli/skills.js +476 -0
- package/dist/src/devcli/stills.js +249 -0
- package/dist/src/devcli/transitions.js +205 -0
- package/dist/src/editor-chat.js +260 -4
- package/dist/src/frontend/template-editor-chat.js +6 -5
- package/dist/src/homepage.js +2 -48
- package/dist/src/hyperframes/composition.js +188 -7
- package/dist/src/services/composition-lint.js +199 -0
- package/dist/src/services/hyperframes.js +127 -28
- package/dist/src/services/serverless-records.js +7 -0
- package/dist/src/template-editor-shell.js +87 -48
- package/package.json +2 -1
- package/public/assets/page-runtime-client-app.js +31 -31
|
@@ -0,0 +1,562 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: flockposter
|
|
3
|
+
description: Use this skill whenever the user wants to install, configure, or use FlockPoster from the command line, automate social media scheduling, upload media before posting, inspect connected integrations, create drafts or scheduled posts, or fetch analytics through the public FlockPoster CLI and API.
|
|
4
|
+
homepage: https://docs.flockposter.com
|
|
5
|
+
metadata: {"clawdbot":{"requires":{"bins":["flockposter"],"env":["FLOCKPOSTER_API_KEY"]}}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# FlockPoster Customer Skill
|
|
9
|
+
|
|
10
|
+
Use this skill for customer-facing FlockPoster CLI workflows only. Stay within the public CLI and public API. Do not assume access to product internals, deployment infrastructure, private repositories, or unreleased features.
|
|
11
|
+
|
|
12
|
+
## Scope
|
|
13
|
+
|
|
14
|
+
Help with:
|
|
15
|
+
- installing `flockposter-cli`
|
|
16
|
+
- configuring `FLOCKPOSTER_API_KEY`
|
|
17
|
+
- listing integrations
|
|
18
|
+
- discovering provider settings and dynamic tools
|
|
19
|
+
- uploading media before posting
|
|
20
|
+
- creating draft or scheduled posts
|
|
21
|
+
- listing or deleting posts
|
|
22
|
+
- fetching platform or post analytics
|
|
23
|
+
- resolving missing release IDs with public commands
|
|
24
|
+
|
|
25
|
+
Do not rely on private files, internal architecture, staging environments, deployment commands, or internal business logic.
|
|
26
|
+
|
|
27
|
+
## Setup
|
|
28
|
+
|
|
29
|
+
Install the CLI if it is missing:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npm install -g flockposter-cli
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Required environment variable:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
export FLOCKPOSTER_API_KEY=your_api_key_here
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Optional for self-hosted or non-default API hosts:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
export FLOCKPOSTER_API_URL=https://your-host.example.com/api
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
If the user does not know where to get an API key, direct them to their FlockPoster account settings and the public docs rather than guessing.
|
|
48
|
+
|
|
49
|
+
## Working Pattern
|
|
50
|
+
|
|
51
|
+
Use this sequence unless the user asks for something narrower:
|
|
52
|
+
|
|
53
|
+
1. Discover integrations with `flockposter integrations:list`
|
|
54
|
+
2. Inspect integration settings with `flockposter integrations:settings <integration-id>`
|
|
55
|
+
3. Fetch provider-specific dynamic data when needed with `flockposter integrations:trigger`
|
|
56
|
+
4. Upload media before posting with `flockposter upload <file>`
|
|
57
|
+
5. Create the post with `flockposter posts:create`
|
|
58
|
+
6. Review output with `flockposter posts:list` or analytics commands
|
|
59
|
+
|
|
60
|
+
Do not skip discovery for provider-specific posts. Integration IDs are customer-specific, and settings can vary by provider, account, and release.
|
|
61
|
+
|
|
62
|
+
## Agent Decision Rules
|
|
63
|
+
|
|
64
|
+
- Use CLI flags for one platform with one shared content body.
|
|
65
|
+
- Use repeated `-c` and matching repeated `-m` values for comments, replies, or X threads.
|
|
66
|
+
- Use `posts:create --json <file>` when each platform needs different content, different media, or different settings.
|
|
67
|
+
- For CLI `--settings`, pass provider fields directly; the backend can infer the provider from the integration ID.
|
|
68
|
+
- For CLI `--json`, include `settings.__type` when settings are present.
|
|
69
|
+
- For public API payloads, always include `settings.__type` for provider-specific settings.
|
|
70
|
+
- Never invent provider values. Run `integrations:settings`, then use the field names and allowed values shown by the schema.
|
|
71
|
+
- Treat uploaded FlockPoster media URLs as the default for TikTok, Instagram, and YouTube posts.
|
|
72
|
+
|
|
73
|
+
## Core Commands
|
|
74
|
+
|
|
75
|
+
Discovery:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
flockposter integrations:list
|
|
79
|
+
flockposter integrations:settings <integration-id>
|
|
80
|
+
flockposter integrations:trigger <integration-id> <method> -d '{"key":"value"}'
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Posting:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
flockposter posts:create -c "Content" -s "2026-05-18T15:00:00Z" -i "integration-id"
|
|
87
|
+
flockposter posts:create -c "Content" -s "2026-05-18T15:00:00Z" -t draft -i "integration-id"
|
|
88
|
+
flockposter posts:create -c "Thread item 1" -c "Thread item 2" -s "2026-05-18T15:00:00Z" -d 5000 -i "integration-id"
|
|
89
|
+
flockposter posts:create --json post.json
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Management:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
flockposter posts:list
|
|
96
|
+
flockposter posts:delete <post-id>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Uploads:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
flockposter upload image.jpg
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
For posts with local media, upload the file first and pass the returned `.path` to `posts:create`:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
MEDIA_RESULT=$(flockposter upload video.mp4)
|
|
109
|
+
MEDIA_URL=$(echo "$MEDIA_RESULT" | jq -r '.path')
|
|
110
|
+
flockposter posts:create -c "Content" -s "2026-05-18T15:00:00Z" -m "$MEDIA_URL" -i "integration-id"
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Analytics:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
flockposter analytics:platform <integration-id> -d 30
|
|
117
|
+
flockposter analytics:post <post-id> -d 7
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Missing release ID recovery:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
flockposter posts:missing <post-id>
|
|
124
|
+
flockposter posts:connect <post-id> --release-id "<content-id>"
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Payload Shapes
|
|
128
|
+
|
|
129
|
+
CLI `--settings` example. Use this for a single integration:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
flockposter posts:create \
|
|
133
|
+
-c "Post content" \
|
|
134
|
+
-s "2026-05-18T15:00:00Z" \
|
|
135
|
+
--settings '{"who_can_reply_post":"everyone"}' \
|
|
136
|
+
-i "x-integration-id"
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
CLI `--json` example. Use this when platforms need different content/settings:
|
|
140
|
+
|
|
141
|
+
```json
|
|
142
|
+
{
|
|
143
|
+
"integrations": ["x-integration-id", "instagram-integration-id"],
|
|
144
|
+
"posts": [
|
|
145
|
+
{
|
|
146
|
+
"provider": "x",
|
|
147
|
+
"post": [{ "content": "Short X version", "image": [] }],
|
|
148
|
+
"settings": { "__type": "x", "who_can_reply_post": "everyone" }
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"provider": "instagram",
|
|
152
|
+
"post": [{ "content": "Instagram caption", "image": ["https://uploads.flockposter.com/reel.mp4"] }],
|
|
153
|
+
"settings": { "__type": "instagram", "post_type": "post" }
|
|
154
|
+
}
|
|
155
|
+
]
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Public API payloads use a different shape from CLI JSON files:
|
|
160
|
+
|
|
161
|
+
```json
|
|
162
|
+
{
|
|
163
|
+
"type": "schedule",
|
|
164
|
+
"date": "2026-05-18T15:00:00.000Z",
|
|
165
|
+
"shortLink": false,
|
|
166
|
+
"tags": [],
|
|
167
|
+
"posts": [
|
|
168
|
+
{
|
|
169
|
+
"integration": { "id": "instagram-integration-id" },
|
|
170
|
+
"value": [
|
|
171
|
+
{
|
|
172
|
+
"content": "Instagram caption",
|
|
173
|
+
"image": [{ "id": "uploaded-media-id", "path": "https://uploads.flockposter.com/reel.mp4" }]
|
|
174
|
+
}
|
|
175
|
+
],
|
|
176
|
+
"settings": { "__type": "instagram", "post_type": "post" }
|
|
177
|
+
}
|
|
178
|
+
]
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Provider-Specific Cases
|
|
183
|
+
|
|
184
|
+
Always run `flockposter integrations:settings <integration-id>` before relying on provider-specific fields. The examples below show common public settings, but the live integration schema should be treated as the source of truth.
|
|
185
|
+
|
|
186
|
+
Common setting keys:
|
|
187
|
+
|
|
188
|
+
| Provider | Required/common settings | Notes |
|
|
189
|
+
|----------|--------------------------|-------|
|
|
190
|
+
| X | `who_can_reply_post`, optional `community` | Valid reply values: `everyone`, `following`, `mentionedUsers`, `subscribers`, `verified`. |
|
|
191
|
+
| TikTok | `privacy_level`, `comment`, `duet`, `stitch`, `autoAddMusic`, `brand_content_toggle`, `brand_organic_toggle`, `content_posting_method` | Use `content_posting_method: "UPLOAD"` for upload without posting. |
|
|
192
|
+
| Instagram | `post_type`, optional `is_trial_reel`, `graduation_strategy`, `collaborators` | Reels use `post_type: "post"` with video media. |
|
|
193
|
+
| YouTube | `title`, `type`, optional `selfDeclaredMadeForKids`, `thumbnail`, `tags` | Shorts use normal YouTube upload settings. |
|
|
194
|
+
|
|
195
|
+
### X
|
|
196
|
+
|
|
197
|
+
Use `who_can_reply_post` to control replies. Valid values are `everyone`, `following`, `mentionedUsers`, `subscribers`, and `verified`. Use `community` only for an X community URL in the form `https://x.com/i/communities/<id>`.
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
flockposter posts:create \
|
|
201
|
+
-c "Post content" \
|
|
202
|
+
-s "2026-05-18T15:00:00Z" \
|
|
203
|
+
--settings '{"who_can_reply_post":"everyone","community":""}' \
|
|
204
|
+
-i "x-integration-id"
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
For threads, create comments/replies through the normal post/comment structure or JSON mode.
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
flockposter posts:create \
|
|
211
|
+
-c "1/ First thread item" \
|
|
212
|
+
-c "2/ Second thread item" \
|
|
213
|
+
-c "3/ Final thread item" \
|
|
214
|
+
-s "2026-05-18T15:00:00Z" \
|
|
215
|
+
-d 5000 \
|
|
216
|
+
--settings '{"who_can_reply_post":"everyone"}' \
|
|
217
|
+
-i "x-integration-id"
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### TikTok
|
|
221
|
+
|
|
222
|
+
Upload media to FlockPoster before creating TikTok posts. TikTok supports two posting methods:
|
|
223
|
+
- `DIRECT_POST`: publish directly to TikTok.
|
|
224
|
+
- `UPLOAD`: upload media to TikTok without posting, so the creator can review/edit/publish in TikTok later.
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
VIDEO_RESULT=$(flockposter upload video.mp4)
|
|
228
|
+
VIDEO_URL=$(echo "$VIDEO_RESULT" | jq -r '.path')
|
|
229
|
+
|
|
230
|
+
flockposter posts:create \
|
|
231
|
+
-c "Video caption #fyp" \
|
|
232
|
+
-s "2026-05-18T15:00:00Z" \
|
|
233
|
+
--settings '{"content_posting_method":"UPLOAD","privacy_level":"PUBLIC_TO_EVERYONE","comment":true,"duet":false,"stitch":false,"autoAddMusic":"no","brand_content_toggle":false,"brand_organic_toggle":false,"video_made_with_ai":false}' \
|
|
234
|
+
-m "$VIDEO_URL" \
|
|
235
|
+
-i "tiktok-integration-id"
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
When `content_posting_method` is `UPLOAD`, TikTok handles final publishing in the TikTok app. Privacy, comment, duet, stitch, and disclosure controls may be disabled or ignored by TikTok for upload-only flows.
|
|
239
|
+
|
|
240
|
+
For a direct TikTok publish, use `content_posting_method: "DIRECT_POST"`:
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
flockposter posts:create \
|
|
244
|
+
-c "Video caption #fyp" \
|
|
245
|
+
-s "2026-05-18T15:00:00Z" \
|
|
246
|
+
--settings '{"content_posting_method":"DIRECT_POST","privacy_level":"PUBLIC_TO_EVERYONE","comment":true,"duet":false,"stitch":false,"autoAddMusic":"no","brand_content_toggle":false,"brand_organic_toggle":false,"video_made_with_ai":false}' \
|
|
247
|
+
-m "$VIDEO_URL" \
|
|
248
|
+
-i "tiktok-integration-id"
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### Instagram Reels, Posts, Stories, And Trial Reels
|
|
252
|
+
|
|
253
|
+
Instagram uses `post_type: "post"` for regular feed posts and Reels, and `post_type: "story"` for Stories. FlockPoster determines Reel behavior from video media under `post_type: "post"`.
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
VIDEO_RESULT=$(flockposter upload reel.mp4)
|
|
257
|
+
VIDEO_URL=$(echo "$VIDEO_RESULT" | jq -r '.path')
|
|
258
|
+
|
|
259
|
+
flockposter posts:create \
|
|
260
|
+
-c "Reel caption" \
|
|
261
|
+
-s "2026-05-18T15:00:00Z" \
|
|
262
|
+
--settings '{"post_type":"post"}' \
|
|
263
|
+
-m "$VIDEO_URL" \
|
|
264
|
+
-i "instagram-integration-id"
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
For Trial Reels, use one video with `is_trial_reel: true`. Optional `graduation_strategy` values are `MANUAL` and `SS_PERFORMANCE`.
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
flockposter posts:create \
|
|
271
|
+
-c "Trial Reel caption" \
|
|
272
|
+
-s "2026-05-18T15:00:00Z" \
|
|
273
|
+
--settings '{"post_type":"post","is_trial_reel":true,"graduation_strategy":"MANUAL"}' \
|
|
274
|
+
-m "$VIDEO_URL" \
|
|
275
|
+
-i "instagram-integration-id"
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
Stories use `post_type: "story"` and should use Story-compatible media.
|
|
279
|
+
|
|
280
|
+
```bash
|
|
281
|
+
STORY_RESULT=$(flockposter upload story.jpg)
|
|
282
|
+
STORY_URL=$(echo "$STORY_RESULT" | jq -r '.path')
|
|
283
|
+
|
|
284
|
+
flockposter posts:create \
|
|
285
|
+
-c "" \
|
|
286
|
+
-s "2026-05-18T15:00:00Z" \
|
|
287
|
+
--settings '{"post_type":"story"}' \
|
|
288
|
+
-m "$STORY_URL" \
|
|
289
|
+
-i "instagram-integration-id"
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
### YouTube Shorts
|
|
293
|
+
|
|
294
|
+
YouTube uses the normal YouTube upload flow for both standard videos and Shorts. Upload a Shorts-compatible video and create a YouTube post with the usual title, privacy, made-for-kids, thumbnail, and tags settings.
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
VIDEO_RESULT=$(flockposter upload short.mp4)
|
|
298
|
+
VIDEO_URL=$(echo "$VIDEO_RESULT" | jq -r '.path')
|
|
299
|
+
|
|
300
|
+
flockposter posts:create \
|
|
301
|
+
-c "Short description" \
|
|
302
|
+
-s "2026-05-18T15:00:00Z" \
|
|
303
|
+
--settings '{"title":"Short title","type":"public","selfDeclaredMadeForKids":"no","tags":[{"value":"shorts","label":"shorts"}]}' \
|
|
304
|
+
-m "$VIDEO_URL" \
|
|
305
|
+
-i "youtube-integration-id"
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
For a normal YouTube video, use the same settings and provide the uploaded video URL as media. If using a thumbnail, upload the thumbnail first and pass it in `settings.thumbnail` as an object with `id` and `path`.
|
|
309
|
+
|
|
310
|
+
## Inline Examples
|
|
311
|
+
|
|
312
|
+
Use these examples directly from the copied `SKILL.md`. Replace integration IDs, dates, captions, and media file paths with the customer's values.
|
|
313
|
+
|
|
314
|
+
### CLI X Thread
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
#!/usr/bin/env bash
|
|
318
|
+
set -euo pipefail
|
|
319
|
+
|
|
320
|
+
# Required:
|
|
321
|
+
# export FLOCKPOSTER_API_KEY=...
|
|
322
|
+
# export X_INTEGRATION_ID=...
|
|
323
|
+
|
|
324
|
+
flockposter integrations:settings "$X_INTEGRATION_ID"
|
|
325
|
+
|
|
326
|
+
flockposter posts:create \
|
|
327
|
+
-c "1/ First thread item" \
|
|
328
|
+
-c "2/ Second thread item" \
|
|
329
|
+
-c "3/ Final thread item" \
|
|
330
|
+
-s "2026-05-18T15:00:00Z" \
|
|
331
|
+
-d 5000 \
|
|
332
|
+
--settings '{"who_can_reply_post":"everyone","community":""}' \
|
|
333
|
+
-i "$X_INTEGRATION_ID"
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
### CLI TikTok Upload Without Posting
|
|
337
|
+
|
|
338
|
+
```bash
|
|
339
|
+
#!/usr/bin/env bash
|
|
340
|
+
set -euo pipefail
|
|
341
|
+
|
|
342
|
+
# Required:
|
|
343
|
+
# export FLOCKPOSTER_API_KEY=...
|
|
344
|
+
# export TIKTOK_INTEGRATION_ID=...
|
|
345
|
+
# export VIDEO_FILE=video.mp4
|
|
346
|
+
#
|
|
347
|
+
# TikTok upload-only means FlockPoster uploads media to TikTok without publishing it.
|
|
348
|
+
# The creator finishes review/edit/publish inside TikTok.
|
|
349
|
+
|
|
350
|
+
flockposter integrations:settings "$TIKTOK_INTEGRATION_ID"
|
|
351
|
+
|
|
352
|
+
VIDEO_RESULT=$(flockposter upload "${VIDEO_FILE:-video.mp4}")
|
|
353
|
+
VIDEO_URL=$(echo "$VIDEO_RESULT" | jq -r '.path')
|
|
354
|
+
|
|
355
|
+
flockposter posts:create \
|
|
356
|
+
-c "Video caption #fyp" \
|
|
357
|
+
-s "2026-05-18T15:00:00Z" \
|
|
358
|
+
--settings '{"content_posting_method":"UPLOAD","privacy_level":"PUBLIC_TO_EVERYONE","comment":true,"duet":false,"stitch":false,"autoAddMusic":"no","brand_content_toggle":false,"brand_organic_toggle":false,"video_made_with_ai":false}' \
|
|
359
|
+
-m "$VIDEO_URL" \
|
|
360
|
+
-i "$TIKTOK_INTEGRATION_ID"
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
### CLI Instagram Reel
|
|
364
|
+
|
|
365
|
+
```bash
|
|
366
|
+
#!/usr/bin/env bash
|
|
367
|
+
set -euo pipefail
|
|
368
|
+
|
|
369
|
+
# Required:
|
|
370
|
+
# export FLOCKPOSTER_API_KEY=...
|
|
371
|
+
# export INSTAGRAM_INTEGRATION_ID=...
|
|
372
|
+
# export VIDEO_FILE=reel.mp4
|
|
373
|
+
#
|
|
374
|
+
# Instagram Reels use post_type "post" with video media.
|
|
375
|
+
|
|
376
|
+
flockposter integrations:settings "$INSTAGRAM_INTEGRATION_ID"
|
|
377
|
+
|
|
378
|
+
VIDEO_RESULT=$(flockposter upload "${VIDEO_FILE:-reel.mp4}")
|
|
379
|
+
VIDEO_URL=$(echo "$VIDEO_RESULT" | jq -r '.path')
|
|
380
|
+
|
|
381
|
+
flockposter posts:create \
|
|
382
|
+
-c "Reel caption" \
|
|
383
|
+
-s "2026-05-18T15:00:00Z" \
|
|
384
|
+
--settings '{"post_type":"post"}' \
|
|
385
|
+
-m "$VIDEO_URL" \
|
|
386
|
+
-i "$INSTAGRAM_INTEGRATION_ID"
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
### CLI YouTube Short
|
|
390
|
+
|
|
391
|
+
```bash
|
|
392
|
+
#!/usr/bin/env bash
|
|
393
|
+
set -euo pipefail
|
|
394
|
+
|
|
395
|
+
# Required:
|
|
396
|
+
# export FLOCKPOSTER_API_KEY=...
|
|
397
|
+
# export YOUTUBE_INTEGRATION_ID=...
|
|
398
|
+
# export VIDEO_FILE=short.mp4
|
|
399
|
+
#
|
|
400
|
+
# YouTube Shorts use the normal YouTube upload flow.
|
|
401
|
+
|
|
402
|
+
flockposter integrations:settings "$YOUTUBE_INTEGRATION_ID"
|
|
403
|
+
|
|
404
|
+
VIDEO_RESULT=$(flockposter upload "${VIDEO_FILE:-short.mp4}")
|
|
405
|
+
VIDEO_URL=$(echo "$VIDEO_RESULT" | jq -r '.path')
|
|
406
|
+
|
|
407
|
+
flockposter posts:create \
|
|
408
|
+
-c "Short description" \
|
|
409
|
+
-s "2026-05-18T15:00:00Z" \
|
|
410
|
+
--settings '{"title":"Short title","type":"public","selfDeclaredMadeForKids":"no","tags":[{"value":"shorts","label":"shorts"}]}' \
|
|
411
|
+
-m "$VIDEO_URL" \
|
|
412
|
+
-i "$YOUTUBE_INTEGRATION_ID"
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
### CLI Multi-Platform JSON
|
|
416
|
+
|
|
417
|
+
Save as `post.json`, replace IDs and media URLs, then run `flockposter posts:create --json post.json`.
|
|
418
|
+
|
|
419
|
+
```json
|
|
420
|
+
{
|
|
421
|
+
"integrations": ["x-integration-id", "instagram-integration-id", "youtube-integration-id", "tiktok-integration-id"],
|
|
422
|
+
"posts": [
|
|
423
|
+
{
|
|
424
|
+
"provider": "x",
|
|
425
|
+
"post": [
|
|
426
|
+
{
|
|
427
|
+
"content": "Short X version",
|
|
428
|
+
"image": []
|
|
429
|
+
}
|
|
430
|
+
],
|
|
431
|
+
"settings": {
|
|
432
|
+
"__type": "x",
|
|
433
|
+
"who_can_reply_post": "everyone",
|
|
434
|
+
"community": ""
|
|
435
|
+
}
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
"provider": "instagram",
|
|
439
|
+
"post": [
|
|
440
|
+
{
|
|
441
|
+
"content": "Instagram Reel caption",
|
|
442
|
+
"image": ["https://uploads.flockposter.com/reel.mp4"]
|
|
443
|
+
}
|
|
444
|
+
],
|
|
445
|
+
"settings": {
|
|
446
|
+
"__type": "instagram",
|
|
447
|
+
"post_type": "post"
|
|
448
|
+
}
|
|
449
|
+
},
|
|
450
|
+
{
|
|
451
|
+
"provider": "youtube",
|
|
452
|
+
"post": [
|
|
453
|
+
{
|
|
454
|
+
"content": "YouTube Short description",
|
|
455
|
+
"image": ["https://uploads.flockposter.com/short.mp4"]
|
|
456
|
+
}
|
|
457
|
+
],
|
|
458
|
+
"settings": {
|
|
459
|
+
"__type": "youtube",
|
|
460
|
+
"title": "Short title",
|
|
461
|
+
"type": "public",
|
|
462
|
+
"selfDeclaredMadeForKids": "no",
|
|
463
|
+
"tags": [{ "value": "shorts", "label": "shorts" }]
|
|
464
|
+
}
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
"provider": "tiktok",
|
|
468
|
+
"post": [
|
|
469
|
+
{
|
|
470
|
+
"content": "TikTok caption #fyp",
|
|
471
|
+
"image": ["https://uploads.flockposter.com/tiktok.mp4"]
|
|
472
|
+
}
|
|
473
|
+
],
|
|
474
|
+
"settings": {
|
|
475
|
+
"__type": "tiktok",
|
|
476
|
+
"content_posting_method": "UPLOAD",
|
|
477
|
+
"privacy_level": "PUBLIC_TO_EVERYONE",
|
|
478
|
+
"comment": true,
|
|
479
|
+
"duet": false,
|
|
480
|
+
"stitch": false,
|
|
481
|
+
"autoAddMusic": "no",
|
|
482
|
+
"brand_content_toggle": false,
|
|
483
|
+
"brand_organic_toggle": false,
|
|
484
|
+
"video_made_with_ai": false
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
]
|
|
488
|
+
}
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
### Public API Instagram Reel JSON
|
|
492
|
+
|
|
493
|
+
Use this shape for `POST /public/v1/posts` payloads. Replace the integration ID and uploaded media object.
|
|
494
|
+
|
|
495
|
+
```json
|
|
496
|
+
{
|
|
497
|
+
"type": "schedule",
|
|
498
|
+
"date": "2026-05-18T15:00:00.000Z",
|
|
499
|
+
"shortLink": false,
|
|
500
|
+
"tags": [],
|
|
501
|
+
"posts": [
|
|
502
|
+
{
|
|
503
|
+
"integration": {
|
|
504
|
+
"id": "instagram-integration-id"
|
|
505
|
+
},
|
|
506
|
+
"value": [
|
|
507
|
+
{
|
|
508
|
+
"content": "Instagram Reel caption",
|
|
509
|
+
"image": [
|
|
510
|
+
{
|
|
511
|
+
"id": "uploaded-media-id",
|
|
512
|
+
"path": "https://uploads.flockposter.com/reel.mp4"
|
|
513
|
+
}
|
|
514
|
+
]
|
|
515
|
+
}
|
|
516
|
+
],
|
|
517
|
+
"settings": {
|
|
518
|
+
"__type": "instagram",
|
|
519
|
+
"post_type": "post"
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
]
|
|
523
|
+
}
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
## Important Behaviors
|
|
527
|
+
|
|
528
|
+
- Treat media upload as the default for local files. Many platforms reject external URLs.
|
|
529
|
+
- Use ISO 8601 timestamps when scheduling posts.
|
|
530
|
+
- Inspect integration settings before inventing provider-specific fields.
|
|
531
|
+
- If analytics returns `{"missing": true}`, recover the release ID with `posts:missing` and `posts:connect`.
|
|
532
|
+
- TikTok visibility is controlled with `privacy_level`.
|
|
533
|
+
- Instagram Reels use `post_type: "post"` with video media.
|
|
534
|
+
- X reply controls use the allowed values from `who_can_reply_post`.
|
|
535
|
+
- YouTube Shorts use the normal YouTube upload settings.
|
|
536
|
+
- Prefer the public docs and the CLI help output over assumptions.
|
|
537
|
+
|
|
538
|
+
## Troubleshooting
|
|
539
|
+
|
|
540
|
+
If the CLI fails with auth errors:
|
|
541
|
+
- check that `FLOCKPOSTER_API_KEY` is set
|
|
542
|
+
- confirm the account has access to the requested feature
|
|
543
|
+
- verify `FLOCKPOSTER_API_URL` only if the user is self-hosting or using a custom host
|
|
544
|
+
|
|
545
|
+
If posting fails:
|
|
546
|
+
- confirm the integration exists and is connected
|
|
547
|
+
- inspect the integration settings schema
|
|
548
|
+
- upload media first if the post includes files
|
|
549
|
+
- simplify to a minimal post, then add provider-specific settings back
|
|
550
|
+
|
|
551
|
+
If the user needs exact argument names or a command list, run:
|
|
552
|
+
|
|
553
|
+
```bash
|
|
554
|
+
flockposter --help
|
|
555
|
+
flockposter <command> --help
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
## Public References
|
|
559
|
+
|
|
560
|
+
- Docs: `https://docs.flockposter.com`
|
|
561
|
+
- App: `https://app.flockposter.com`
|
|
562
|
+
- CLI package: `https://www.npmjs.com/package/flockposter-cli`
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# Required:
|
|
5
|
+
# export FLOCKPOSTER_API_KEY=...
|
|
6
|
+
# export INSTAGRAM_INTEGRATION_ID=...
|
|
7
|
+
# export VIDEO_FILE=reel.mp4
|
|
8
|
+
#
|
|
9
|
+
# Instagram Reels use post_type "post" with video media.
|
|
10
|
+
|
|
11
|
+
flockposter integrations:settings "$INSTAGRAM_INTEGRATION_ID"
|
|
12
|
+
|
|
13
|
+
VIDEO_RESULT=$(flockposter upload "${VIDEO_FILE:-reel.mp4}")
|
|
14
|
+
VIDEO_URL=$(echo "$VIDEO_RESULT" | jq -r '.path')
|
|
15
|
+
|
|
16
|
+
flockposter posts:create \
|
|
17
|
+
-c "Reel caption" \
|
|
18
|
+
-s "2026-05-18T15:00:00Z" \
|
|
19
|
+
--settings '{"post_type":"post"}' \
|
|
20
|
+
-m "$VIDEO_URL" \
|
|
21
|
+
-i "$INSTAGRAM_INTEGRATION_ID"
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"integrations": ["x-integration-id", "instagram-integration-id", "youtube-integration-id", "tiktok-integration-id"],
|
|
3
|
+
"posts": [
|
|
4
|
+
{
|
|
5
|
+
"provider": "x",
|
|
6
|
+
"post": [
|
|
7
|
+
{
|
|
8
|
+
"content": "Short X version",
|
|
9
|
+
"image": []
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"settings": {
|
|
13
|
+
"__type": "x",
|
|
14
|
+
"who_can_reply_post": "everyone",
|
|
15
|
+
"community": ""
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"provider": "instagram",
|
|
20
|
+
"post": [
|
|
21
|
+
{
|
|
22
|
+
"content": "Instagram Reel caption",
|
|
23
|
+
"image": ["https://uploads.flockposter.com/reel.mp4"]
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"settings": {
|
|
27
|
+
"__type": "instagram",
|
|
28
|
+
"post_type": "post"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"provider": "youtube",
|
|
33
|
+
"post": [
|
|
34
|
+
{
|
|
35
|
+
"content": "YouTube Short description",
|
|
36
|
+
"image": ["https://uploads.flockposter.com/short.mp4"]
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"settings": {
|
|
40
|
+
"__type": "youtube",
|
|
41
|
+
"title": "Short title",
|
|
42
|
+
"type": "public",
|
|
43
|
+
"selfDeclaredMadeForKids": "no",
|
|
44
|
+
"tags": [{ "value": "shorts", "label": "shorts" }]
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"provider": "tiktok",
|
|
49
|
+
"post": [
|
|
50
|
+
{
|
|
51
|
+
"content": "TikTok caption #fyp",
|
|
52
|
+
"image": ["https://uploads.flockposter.com/tiktok.mp4"]
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
"settings": {
|
|
56
|
+
"__type": "tiktok",
|
|
57
|
+
"content_posting_method": "UPLOAD",
|
|
58
|
+
"privacy_level": "PUBLIC_TO_EVERYONE",
|
|
59
|
+
"comment": true,
|
|
60
|
+
"duet": false,
|
|
61
|
+
"stitch": false,
|
|
62
|
+
"autoAddMusic": "no",
|
|
63
|
+
"brand_content_toggle": false,
|
|
64
|
+
"brand_organic_toggle": false,
|
|
65
|
+
"video_made_with_ai": false
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# Required:
|
|
5
|
+
# export FLOCKPOSTER_API_KEY=...
|
|
6
|
+
# export TIKTOK_INTEGRATION_ID=...
|
|
7
|
+
# export VIDEO_FILE=video.mp4
|
|
8
|
+
#
|
|
9
|
+
# TikTok upload-only means FlockPoster uploads media to TikTok without publishing it.
|
|
10
|
+
# The creator finishes review/edit/publish inside TikTok.
|
|
11
|
+
|
|
12
|
+
flockposter integrations:settings "$TIKTOK_INTEGRATION_ID"
|
|
13
|
+
|
|
14
|
+
VIDEO_RESULT=$(flockposter upload "${VIDEO_FILE:-video.mp4}")
|
|
15
|
+
VIDEO_URL=$(echo "$VIDEO_RESULT" | jq -r '.path')
|
|
16
|
+
|
|
17
|
+
flockposter posts:create \
|
|
18
|
+
-c "Video caption #fyp" \
|
|
19
|
+
-s "2026-05-18T15:00:00Z" \
|
|
20
|
+
--settings '{"content_posting_method":"UPLOAD","privacy_level":"PUBLIC_TO_EVERYONE","comment":true,"duet":false,"stitch":false,"autoAddMusic":"no","brand_content_toggle":false,"brand_organic_toggle":false,"video_made_with_ai":false}' \
|
|
21
|
+
-m "$VIDEO_URL" \
|
|
22
|
+
-i "$TIKTOK_INTEGRATION_ID"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# Required:
|
|
5
|
+
# export FLOCKPOSTER_API_KEY=...
|
|
6
|
+
# export X_INTEGRATION_ID=...
|
|
7
|
+
|
|
8
|
+
flockposter integrations:settings "$X_INTEGRATION_ID"
|
|
9
|
+
|
|
10
|
+
flockposter posts:create \
|
|
11
|
+
-c "1/ First thread item" \
|
|
12
|
+
-c "2/ Second thread item" \
|
|
13
|
+
-c "3/ Final thread item" \
|
|
14
|
+
-s "2026-05-18T15:00:00Z" \
|
|
15
|
+
-d 5000 \
|
|
16
|
+
--settings '{"who_can_reply_post":"everyone","community":""}' \
|
|
17
|
+
-i "$X_INTEGRATION_ID"
|