brandly-cli 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. brandly_cli-0.3.0/$null +2 -0
  2. brandly_cli-0.3.0/.env.example +17 -0
  3. brandly_cli-0.3.0/.github/workflows/ci.yml +37 -0
  4. brandly_cli-0.3.0/.github/workflows/release.yml +33 -0
  5. brandly_cli-0.3.0/.gitignore +50 -0
  6. brandly_cli-0.3.0/.pre-commit-config.yaml +17 -0
  7. brandly_cli-0.3.0/Makefile +81 -0
  8. brandly_cli-0.3.0/PKG-INFO +347 -0
  9. brandly_cli-0.3.0/README.md +313 -0
  10. brandly_cli-0.3.0/byteplus-ark-cli-1.0.24.tgz +0 -0
  11. brandly_cli-0.3.0/dev-notes/AUDIT.md +159 -0
  12. brandly_cli-0.3.0/dev-notes/GOAL.md +108 -0
  13. brandly_cli-0.3.0/dev-notes/IMPLEMENTATION.md +160 -0
  14. brandly_cli-0.3.0/dev-notes/PROGRESS.md +85 -0
  15. brandly_cli-0.3.0/dev-notes/SECURITY.md +96 -0
  16. brandly_cli-0.3.0/dev-notes/SPEC.md +245 -0
  17. brandly_cli-0.3.0/generate_svd.py +101 -0
  18. brandly_cli-0.3.0/package/LICENSE +201 -0
  19. brandly_cli-0.3.0/package/README.md +47 -0
  20. brandly_cli-0.3.0/package/manifest.json +72 -0
  21. brandly_cli-0.3.0/package/package.json +48 -0
  22. brandly_cli-0.3.0/package/scripts/postinstall.js +545 -0
  23. brandly_cli-0.3.0/package/scripts/run.js +44 -0
  24. brandly_cli-0.3.0/pyproject.toml +66 -0
  25. brandly_cli-0.3.0/scripts/install-hooks.sh +21 -0
  26. brandly_cli-0.3.0/skills/README.md +51 -0
  27. brandly_cli-0.3.0/skills/brandly-animal-sheet/SKILL.md +239 -0
  28. brandly_cli-0.3.0/skills/brandly-animal-sheet/references/habitats.md +129 -0
  29. brandly_cli-0.3.0/skills/brandly-animal-sheet/references/prompt-variants.md +112 -0
  30. brandly_cli-0.3.0/skills/brandly-animal-sheet/references/species-guide.md +105 -0
  31. brandly_cli-0.3.0/skills/brandly-character-sheet/SKILL.md +217 -0
  32. brandly_cli-0.3.0/skills/brandly-character-sheet/references/common-types.md +81 -0
  33. brandly_cli-0.3.0/skills/brandly-character-sheet/references/consistency-checklist.md +68 -0
  34. brandly_cli-0.3.0/skills/brandly-character-sheet/references/prompt-variants.md +84 -0
  35. brandly_cli-0.3.0/skills/brandly-consistency/SKILL.md +256 -0
  36. brandly_cli-0.3.0/skills/brandly-consistency/references/anchoring-system.md +191 -0
  37. brandly_cli-0.3.0/skills/brandly-consistency/references/drift-checklist.md +131 -0
  38. brandly_cli-0.3.0/skills/brandly-consistency/references/lock-strength.md +129 -0
  39. brandly_cli-0.3.0/skills/brandly-location-sheet/SKILL.md +243 -0
  40. brandly_cli-0.3.0/skills/brandly-location-sheet/references/lighting-setups.md +131 -0
  41. brandly_cli-0.3.0/skills/brandly-location-sheet/references/location-types.md +129 -0
  42. brandly_cli-0.3.0/skills/brandly-location-sheet/references/prompt-variants.md +104 -0
  43. brandly_cli-0.3.0/skills/brandly-mecha-sheet/SKILL.md +234 -0
  44. brandly_cli-0.3.0/skills/brandly-mecha-sheet/references/mecha-types.md +177 -0
  45. brandly_cli-0.3.0/skills/brandly-mecha-sheet/references/prompt-variants.md +119 -0
  46. brandly_cli-0.3.0/skills/brandly-mecha-sheet/references/technical-reference.md +100 -0
  47. brandly_cli-0.3.0/skills/brandly-object-sheet/SKILL.md +221 -0
  48. brandly_cli-0.3.0/skills/brandly-object-sheet/references/photography-setups.md +78 -0
  49. brandly_cli-0.3.0/skills/brandly-object-sheet/references/product-categories.md +92 -0
  50. brandly_cli-0.3.0/skills/brandly-object-sheet/references/prompt-variants.md +96 -0
  51. brandly_cli-0.3.0/skills/brandly-plant-sheet/SKILL.md +288 -0
  52. brandly_cli-0.3.0/skills/brandly-plant-sheet/references/plant-species.md +141 -0
  53. brandly_cli-0.3.0/skills/brandly-plant-sheet/references/prompt-variants.md +117 -0
  54. brandly_cli-0.3.0/skills/brandly-plant-sheet/references/seasonal-reference.md +177 -0
  55. brandly_cli-0.3.0/skills/brandly-production-bible/SKILL.md +250 -0
  56. brandly_cli-0.3.0/skills/brandly-production-bible/references/asset-map.md +109 -0
  57. brandly_cli-0.3.0/skills/brandly-production-bible/references/bible-template.md +155 -0
  58. brandly_cli-0.3.0/skills/brandly-production-bible/references/example-bible.md +165 -0
  59. brandly_cli-0.3.0/skills/brandly-storyboard/SKILL.md +220 -0
  60. brandly_cli-0.3.0/skills/brandly-storyboard/references/examples.md +224 -0
  61. brandly_cli-0.3.0/skills/brandly-storyboard/references/pacing-guide.md +150 -0
  62. brandly_cli-0.3.0/skills/brandly-storyboard/references/shot-formats.md +194 -0
  63. brandly_cli-0.3.0/skills/brandly-vehicle-sheet/SKILL.md +287 -0
  64. brandly_cli-0.3.0/skills/brandly-vehicle-sheet/references/prompt-variants.md +140 -0
  65. brandly_cli-0.3.0/skills/brandly-vehicle-sheet/references/shot-angles.md +143 -0
  66. brandly_cli-0.3.0/skills/brandly-vehicle-sheet/references/vehicle-types.md +210 -0
  67. brandly_cli-0.3.0/skills/brandly-video-generation/SKILL.md +394 -0
  68. brandly_cli-0.3.0/skills/brandly-video-generation/references/camera-control.md +158 -0
  69. brandly_cli-0.3.0/skills/brandly-video-generation/references/character-consistency.md +146 -0
  70. brandly_cli-0.3.0/skills/brandly-video-generation/references/lighting-presets.md +126 -0
  71. brandly_cli-0.3.0/skills/brandly-video-generation/references/troubleshooting.md +186 -0
  72. brandly_cli-0.3.0/skills/brandly-video-generation/references/video-styles.md +273 -0
  73. brandly_cli-0.3.0/src/brandly_cli/__about__.py +3 -0
  74. brandly_cli-0.3.0/src/brandly_cli/__init__.py +5 -0
  75. brandly_cli-0.3.0/src/brandly_cli/__main__.py +6 -0
  76. brandly_cli-0.3.0/src/brandly_cli/agnes_client.py +529 -0
  77. brandly_cli-0.3.0/src/brandly_cli/analyzer.py +229 -0
  78. brandly_cli-0.3.0/src/brandly_cli/ark_client.py +484 -0
  79. brandly_cli-0.3.0/src/brandly_cli/audio_client.py +191 -0
  80. brandly_cli-0.3.0/src/brandly_cli/autodirector.py +115 -0
  81. brandly_cli-0.3.0/src/brandly_cli/beat_sync.py +241 -0
  82. brandly_cli-0.3.0/src/brandly_cli/captions.py +196 -0
  83. brandly_cli-0.3.0/src/brandly_cli/cli.py +2856 -0
  84. brandly_cli-0.3.0/src/brandly_cli/constants.py +609 -0
  85. brandly_cli-0.3.0/src/brandly_cli/cost_tracker.py +163 -0
  86. brandly_cli-0.3.0/src/brandly_cli/director.py +554 -0
  87. brandly_cli-0.3.0/src/brandly_cli/dubbing.py +276 -0
  88. brandly_cli-0.3.0/src/brandly_cli/edit.py +405 -0
  89. brandly_cli-0.3.0/src/brandly_cli/export_platforms.py +237 -0
  90. brandly_cli-0.3.0/src/brandly_cli/memory.py +70 -0
  91. brandly_cli-0.3.0/src/brandly_cli/minimax_client.py +369 -0
  92. brandly_cli-0.3.0/src/brandly_cli/project_manager.py +144 -0
  93. brandly_cli-0.3.0/src/brandly_cli/sharing.py +117 -0
  94. brandly_cli-0.3.0/src/brandly_cli/stitch.py +240 -0
  95. brandly_cli-0.3.0/src/brandly_cli/style_presets.py +33 -0
  96. brandly_cli-0.3.0/src/brandly_cli/sync.py +286 -0
  97. brandly_cli-0.3.0/src/brandly_cli/templates.py +127 -0
  98. brandly_cli-0.3.0/src/brandly_cli/thumbnails.py +265 -0
  99. brandly_cli-0.3.0/src/brandly_cli/trends.py +182 -0
  100. brandly_cli-0.3.0/src/brandly_cli/types.py +201 -0
  101. brandly_cli-0.3.0/src/brandly_cli/utils.py +530 -0
  102. brandly_cli-0.3.0/src/brandly_cli/video_prompts.py +473 -0
  103. brandly_cli-0.3.0/src/brandly_cli/webhook.py +85 -0
  104. brandly_cli-0.3.0/tests/__init__.py +0 -0
  105. brandly_cli-0.3.0/tests/_check.py +6 -0
  106. brandly_cli-0.3.0/tests/test_agnes_client.py +378 -0
  107. brandly_cli-0.3.0/tests/test_analyzer.py +149 -0
  108. brandly_cli-0.3.0/tests/test_ark_client.py +388 -0
  109. brandly_cli-0.3.0/tests/test_autodirector.py +87 -0
  110. brandly_cli-0.3.0/tests/test_beat_sync.py +94 -0
  111. brandly_cli-0.3.0/tests/test_brandly_cli.py +311 -0
  112. brandly_cli-0.3.0/tests/test_cli.py +367 -0
  113. brandly_cli-0.3.0/tests/test_dubbing.py +125 -0
  114. brandly_cli-0.3.0/tests/test_edit.py +267 -0
  115. brandly_cli-0.3.0/tests/test_export_platforms.py +128 -0
  116. brandly_cli-0.3.0/tests/test_reference.py +572 -0
  117. brandly_cli-0.3.0/tests/test_sharing.py +90 -0
  118. brandly_cli-0.3.0/tests/test_stitch.py +370 -0
  119. brandly_cli-0.3.0/tests/test_templates.py +120 -0
  120. brandly_cli-0.3.0/tests/test_thumbnails.py +193 -0
  121. brandly_cli-0.3.0/tests/test_trends.py +129 -0
  122. brandly_cli-0.3.0/tests/test_video_prompts.py +288 -0
  123. brandly_cli-0.3.0/tests/test_webhook.py +91 -0
@@ -0,0 +1,2 @@
1
+ 'Get-ChildItem' is not recognized as an internal or external command,
2
+ operable program or batch file.
@@ -0,0 +1,17 @@
1
+ # Brandly CLI — Environment Variables
2
+ # Copy this file to .env and fill in your API keys.
3
+
4
+ # Agnes AI (image + video generation)
5
+ # Get your key from: https://apihub.agnes-ai.com
6
+ AGNES_API_KEY=your_agnes_api_key_here
7
+ AGNES_BASE_URL=https://apihub.agnes-ai.com/v1
8
+
9
+ # MiniMax (music + TTS + some image/video)
10
+ # Get your key from: https://platform.minimaxi.com
11
+ MINIMAX_API_KEY=your_minimax_api_key_here
12
+ MINIMAX_BASE_URL=https://api.minimaxi.com/v1
13
+
14
+ # BytePlus Ark (Seedream images + Seedance videos)
15
+ # Get your key from: https://console.volcengine.com/ark
16
+ ARK_API_KEY=your_ark_api_key_here
17
+ ARK_BASE_URL=https://ark.cn-beijing.volces.com/api/v3
@@ -0,0 +1,37 @@
1
+ name: CI
2
+ on:
3
+ pull_request:
4
+ types: [opened, synchronize, reopened]
5
+ push:
6
+ branches: [main]
7
+
8
+ concurrency:
9
+ group: ${{ github.workflow }}-${{ github.ref }}
10
+ cancel-in-progress: true
11
+
12
+ jobs:
13
+ quality:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - name: Install FFmpeg
19
+ run: sudo apt-get update && sudo apt-get install -y ffmpeg
20
+
21
+ - uses: actions/setup-python@v5
22
+ with:
23
+ python-version: "3.12"
24
+
25
+ - name: Install dependencies
26
+ run: |
27
+ python -m pip install --upgrade pip
28
+ pip install -e ".[dev]"
29
+
30
+ - name: Type check
31
+ run: python -m pytest tests/ -v --tb=short
32
+
33
+ - name: Lint
34
+ run: ruff check src/
35
+
36
+ - name: Syntax check
37
+ run: python -m py_compile src/brandly_cli/*.py
@@ -0,0 +1,33 @@
1
+ name: Release to PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ permissions:
8
+ contents: read
9
+
10
+ jobs:
11
+ publish:
12
+ runs-on: ubuntu-latest
13
+ environment:
14
+ name: pypi
15
+ url: https://pypi.org/p/brandly-cli
16
+ permissions:
17
+ id-token: write # OIDC trusted publishing
18
+
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+
22
+ - uses: actions/setup-python@v5
23
+ with:
24
+ python-version: "3.12"
25
+
26
+ - name: Install build dependencies
27
+ run: python -m pip install --upgrade build twine
28
+
29
+ - name: Build package
30
+ run: python -m build
31
+
32
+ - name: Release to PyPI
33
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,50 @@
1
+ # Brandly CLI — generated project state
2
+ .brandly/
3
+
4
+ # API keys that may be synced into tool configs
5
+ .env
6
+ **/.env
7
+ !.env.example
8
+
9
+ # Python
10
+ __pycache__/
11
+ *.py[cod]
12
+ *.pyo
13
+ *.pyd
14
+ .Python
15
+ *.egg-info/
16
+ dist/
17
+ build/
18
+ .eggs/
19
+ *.egg
20
+
21
+ # Virtual environments
22
+ venv/
23
+ env/
24
+ .venv/
25
+ .env/
26
+
27
+ # IDE
28
+ .vscode/
29
+ .idea/
30
+ *.swp
31
+ *.swo
32
+
33
+ # OS
34
+ .DS_Store
35
+ Thumbs.db
36
+
37
+ # Test artifacts
38
+ .pytest_cache/
39
+ .ruff_cache/
40
+ .mypy_cache/
41
+ htmlcov/
42
+ .coverage
43
+ .coverage.*
44
+ coverage.xml
45
+
46
+ # Generated skill output
47
+ skills_output/
48
+
49
+ # Pre-commit
50
+ .pre-commit-cache/
@@ -0,0 +1,17 @@
1
+ repos:
2
+ - repo: local
3
+ hooks:
4
+ - id: ruff-lint
5
+ name: ruff-lint
6
+ entry: python3 -m ruff check src/
7
+ language: system
8
+ types: [python]
9
+ pass_filenames: false
10
+
11
+ - id: pytest
12
+ name: pytest
13
+ entry: python3 -m pytest tests/ -v --tb=short
14
+ language: system
15
+ types: [python]
16
+ pass_filenames: false
17
+ always_run: true
@@ -0,0 +1,81 @@
1
+ # Brandly CLI — Makefile
2
+
3
+ PYTHON := python3
4
+ PNPM := pnpm
5
+ PIP := $(PYTHON) -m pip
6
+ PYTEST := $(PYTHON) -m pytest
7
+ RUFF := $(PYTHON) -m ruff
8
+ ROOT ?= .
9
+
10
+ .PHONY: help install dev test lint type-check build clean \
11
+ pre-commit ci e2e upgrade sync
12
+
13
+ ## Show this help
14
+ help:
15
+ @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) \
16
+ | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-14s\033[0m %s\n", $$1, $$2}'
17
+
18
+ ## Install package in editable mode + dev deps
19
+ install: ## install
20
+ $(PIP) install -e ".[dev]"
21
+
22
+ ## Install pre-commit hooks
23
+ pre-commit: ## pre-commit
24
+ $(PIP) install pre-commit
25
+ pre-commit install
26
+
27
+ ## Run full test suite
28
+ test: ## test
29
+ $(PYTEST) tests/ -v --tb=short
30
+
31
+ ## Run tests with coverage
32
+ cov: ## cov
33
+ $(PYTEST) tests/ -v --tb=short --cov=src/brandly_cli --cov-report=term-missing --cov-report=html
34
+
35
+ ## Run linter
36
+ lint: ## lint
37
+ $(RUFF) check src/
38
+
39
+ ## Fix lint issues automatically
40
+ lint-fix: ## lint-fix
41
+ $(RUFF) check src/ --fix
42
+
43
+ ## Syntax check all modules
44
+ check-syntax: ## check-syntax
45
+ $(PYTHON) -m py_compile src/brandly_cli/*.py
46
+
47
+ ## Run all quality gates (test + lint + syntax)
48
+ ci: check-syntax lint test ## ci
49
+ @echo "All quality gates passed."
50
+
51
+ ## End-to-end CLI smoke test
52
+ e2e: ## e2e
53
+ $(PYTHON) -m brandly_cli.cli --root /tmp/brandly-e2e-$$ \
54
+ init --name "Smoke" --idea "test" --style cinematic --shots 3
55
+ $(PYTHON) -m brandly_cli.cli --root /tmp/brandly-e2e-$$ list
56
+ $(PYTHON) -m brandly_cli.cli --root /tmp/brandly-e2e-$$ config
57
+ $(PYTHON) -m brandly_cli.cli --root /tmp/brandly-e2e-$$ estimate --style cinematic --shots 5
58
+ $(PYTHON) -m brandly_cli.cli --root /tmp/brandly-e2e-$$ director > /dev/null
59
+ $(PYTHON) -m brandly_cli.cli --root /tmp/brandly-e2e-$$ models > /dev/null
60
+ $(PYTHON) -m brandly_cli.cli --root /tmp/brandly-e2e-$$ memory view > /dev/null
61
+ $(PYTHON) -m brandly_cli.cli --root /tmp/brandly-e2e-$$ prompt \
62
+ --subject "wireless earbuds" --action "rotate" \
63
+ --environment "desk" --shots 3 --style cinematic > /dev/null
64
+ rm -rf /tmp/brandly-e2e-*
65
+ @echo "E2E smoke test passed."
66
+
67
+ ## Upgrade dev dependencies
68
+ upgrade: ## upgrade
69
+ $(PIP) install --upgrade -e ".[dev]"
70
+
71
+ ## Sync API keys into AI tool configs (requires env vars set)
72
+ sync: ## sync
73
+ $(PYTHON) -m brandly_cli.cli sync
74
+
75
+ ## Clean build/cache artifacts
76
+ clean: ## clean
77
+ find src -name '__pycache__' -type d -exec rm -rf {} + 2>/dev/null || true
78
+ find tests -name '__pycache__' -type d -exec rm -rf {} + 2>/dev/null || true
79
+ rm -rf .pytest_cache .ruff_cache .mypy_cache htmlcov dist build *.egg-info
80
+ rm -rf /tmp/brandly-e2e-*
81
+ @echo "Cleaned."
@@ -0,0 +1,347 @@
1
+ Metadata-Version: 2.5
2
+ Name: brandly-cli
3
+ Version: 0.3.0
4
+ Summary: AI product video orchestrator — add image, video, and sound generation to any AI tool
5
+ Project-URL: Homepage, https://github.com/Dream-Pixels-Forge/brandly-cli
6
+ Project-URL: Repository, https://github.com/Dream-Pixels-Forge/brandly-cli
7
+ Project-URL: Issues, https://github.com/Dream-Pixels-Forge/brandly-cli/issues
8
+ Author-email: Dream Pixels Forge <contact@dreampixelsforge.com>
9
+ License-Expression: MIT
10
+ Keywords: agent,ai,cli,generation,image,orchestrator,video
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Topic :: Multimedia :: Graphics
19
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
+ Requires-Python: >=3.10
21
+ Requires-Dist: click>=8.0
22
+ Requires-Dist: httpx>=0.27
23
+ Requires-Dist: pillow>=10.0
24
+ Requires-Dist: pydantic>=2.0
25
+ Requires-Dist: python-dotenv>=1.0
26
+ Requires-Dist: rich>=13.0
27
+ Provides-Extra: dev
28
+ Requires-Dist: mypy>=1.0; extra == 'dev'
29
+ Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
30
+ Requires-Dist: pytest-cov>=4.0; extra == 'dev'
31
+ Requires-Dist: pytest>=8.0; extra == 'dev'
32
+ Requires-Dist: ruff>=0.4; extra == 'dev'
33
+ Description-Content-Type: text/markdown
34
+
35
+ # Brandly CLI
36
+
37
+ > **AI product video orchestrator** — add image, video, and sound generation capability to any AI tool (OpenCode, Codex, Qwen Code, Claude Code, etc.) via a CLI and Director agent.
38
+
39
+ [![PyPI version](https://img.shields.io/pypi/v/brandly-cli.svg)](https://pypi.org/project/brandly-cli/)
40
+ [![Python >=3.10](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
41
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
42
+ [![Tests](https://img.shields.io/badge/tests-303_passing-green.svg)](https://github.com/Dream-Pixels-Forge/brandly-cli)
43
+ [![Lint](https://img.shields.io/badge/lint-ruff_clean-brightgreen.svg)](https://github.com/Dream-Pixels-Forge/brandly-cli)
44
+ [![CI](https://github.com/Dream-Pixels-Forge/brandly-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/Dream-Pixels-Forge/brandly-cli/actions)
45
+ [![GitHub stars](https://img.shields.io/github/stars/Dream-Pixels-Forge/brandly-cli?style=social)](https://github.com/Dream-Pixels-Forge/brandly-cli/stargazers)
46
+
47
+ ---
48
+
49
+ ## What is Brandly?
50
+
51
+ Brandly is an **autonomous video production pipeline** that turns product ideas into platform-ready marketing videos. It provides:
52
+
53
+ - **Image generation** via [Agnes AI](https://apihub.agnes-ai.com) (text-to-image, image-to-image)
54
+ - **Video generation** via Agnes AI (text-to-video, keyframe-controlled, reference-based)
55
+ - **Audio generation** via [MiniMax Audio](https://platform.minimaxi.com) (background music, TTS voiceover)
56
+ - **Multi-agent pipeline** — automated workflow from idea → trends → concept → script → assets → audio → validate → publish
57
+ - **Director orchestrator** — an autonomous agent that guides the entire production process
58
+ - **Credit budgeting** — track spend per phase against a project budget
59
+ - **Style presets** — avoid AI slop with photorealistic, cinematic, editorial, commercial, and documentary presets
60
+
61
+ ### v0.3.0 New Features
62
+
63
+ | Feature | Description |
64
+ |---------|-------------|
65
+ | **Stitch** | Multi-shot video assembly with transitions (fade, dissolve, wipe, slide) and color grading |
66
+ | **Export Platforms** | Platform-optimized exports for TikTok, Instagram, YouTube, Facebook |
67
+ | **Thumbnails** | AI-generated thumbnails with text overlays and platform-specific sizing |
68
+ | **Dubbing** | Multi-language video dubbing via MiniMax TTS (10 languages) |
69
+ | **Beat Sync** | Music-reactive editing with beat detection |
70
+ | **Auto-Director** | Script-to-video pipeline automation |
71
+ | **Trends** | Trending format research database (5 categories) |
72
+ | **Analyzer** | Video performance prediction with scoring |
73
+ | **Templates** | Reusable project configurations |
74
+ | **Webhook** | CI/CD integration with job queue |
75
+ | **Sharing** | Cloud export with pluggable providers |
76
+
77
+ ---
78
+
79
+ ## Installation
80
+
81
+ ```bash
82
+ pip install brandly-cli
83
+ ```
84
+
85
+ ### Configure API Keys
86
+
87
+ ```bash
88
+ # Agnes AI (image + video generation)
89
+ export AGNES_API_KEY="your-agnes-api-key"
90
+
91
+ # MiniMax Audio (music + TTS)
92
+ export MINIMAX_API_KEY="your-minimax-api-key"
93
+ ```
94
+
95
+ Or create a `.env` file in your project root:
96
+
97
+ ```dotenv
98
+ AGNES_API_KEY=your_key_here
99
+ MINIMAX_API_KEY=your_key_here
100
+ AGNES_BASE_URL=https://apihub.agnes-ai.com/v1
101
+ MINIMAX_BASE_URL=https://api.minimaxi.com/v1
102
+ ```
103
+
104
+ ## Quick Start
105
+
106
+ ### 1. Initialize a Project
107
+
108
+ ```bash
109
+ brandly init \
110
+ --name "SuperWidget Pro" \
111
+ --idea "A revolutionary widget that organizes your desk with AI" \
112
+ --style cinematic \
113
+ --budget 500 \
114
+ --shots 5 \
115
+ --platforms tiktok instagram youtube
116
+ ```
117
+
118
+ ### 2. Run the Pipeline
119
+
120
+ ```bash
121
+ # Check cost estimate first
122
+ brandly estimate --style cinematic --shots 5
123
+
124
+ # Run each phase
125
+ brandly run <project-id> # Start the current phase
126
+ brandly approve <project-id> <phase> # Approve and advance
127
+
128
+ # Or run the full pipeline at once
129
+ brandly director # Shows Director prompt for AI tools
130
+ ```
131
+
132
+ ### 3. Generate Media Directly
133
+
134
+ ```bash
135
+ # Image generation
136
+ brandly image --prompt "product on marble surface, studio lighting" \
137
+ --style-preset cinematic
138
+
139
+ # Video generation
140
+ brandly video <project-id> --prompt "sleek wireless earbuds rotating" \
141
+ --duration 5 --wait
142
+
143
+ # Audio generation
144
+ brandly music --prompt "upbeat electronic background music" --duration 30
145
+ brandly tts "Welcome to SuperWidget Pro"
146
+ ```
147
+
148
+ ### 4. Export & Share
149
+
150
+ ```bash
151
+ # Export for platforms
152
+ brandly export <project-id> --platforms tiktok youtube
153
+
154
+ # Generate thumbnails
155
+ brandly thumbnail <project-id>
156
+
157
+ # Stitch clips together
158
+ brandly stitch clip1.mp4 clip2.mp4 --transition fade
159
+
160
+ # Dub to another language
161
+ brandly voice-match input.mp4 --source en --target es
162
+
163
+ # Share to cloud
164
+ brandly share output.mp4 --provider local
165
+ ```
166
+
167
+ ## CLI Reference
168
+
169
+ ### Project Management
170
+
171
+ | Command | Description |
172
+ |---------|-------------|
173
+ | `brandly init` / `brandly start` | Start a new video project |
174
+ | `brandly status <id>` | Show project status |
175
+ | `brandly list` | List all projects |
176
+ | `brandly run <id>` | Run the next pipeline phase |
177
+ | `brandly approve <id> <phase>` | Approve a phase and advance |
178
+ | `brandly cancel / pause / resume <id>` | Control project state |
179
+ | `brandly cost <id>` | Show cost summary |
180
+ | `brandly record-cost <id> <phase> <action> <credits>` | Record credit spend |
181
+
182
+ ### Media Generation
183
+
184
+ | Command | Description |
185
+ |---------|-------------|
186
+ | `brandly image` | Generate an image via Agnes AI |
187
+ | `brandly video <id>` | Generate a video via Agnes AI |
188
+ | `brandly music` | Generate background music via MiniMax Audio |
189
+ | `brandly tts <text>` | Generate voiceover via TTS |
190
+ | `brandly voices` | List available TTS voices |
191
+
192
+ ### Post-Production
193
+
194
+ | Command | Description |
195
+ |---------|-------------|
196
+ | `brandly stitch <clips...>` | Multi-shot video assembly with transitions |
197
+ | `brandly export <id> --platforms <p>` | Export for specific platforms |
198
+ | `brandly thumbnail <id>` | Generate thumbnails from video |
199
+ | `brandly voice-match <video> --source <lang> --target <lang>` | Dub video to another language |
200
+ | `brandly beat-sync <video> <audio>` | Cut video to match beat timestamps |
201
+ | `brandly analyze <video>` | Predict video performance metrics |
202
+ | `brandly share <file>` | Upload to cloud for sharing |
203
+
204
+ ### Intelligence
205
+
206
+ | Command | Description |
207
+ |---------|-------------|
208
+ | `brandly trend <category>` | Research trending video formats |
209
+ | `brandly template list` | List available templates |
210
+ | `brandly template use <name>` | Create project from template |
211
+ | `brandly validate <id>` | Run virality validation |
212
+ | `brandly progress <id>` | Show detailed progress |
213
+ | `brandly director` | Show Director agent prompt |
214
+
215
+ ### System
216
+
217
+ | Command | Description |
218
+ |---------|-------------|
219
+ | `brandly estimate` | Estimate credit cost |
220
+ | `brandly memory` | View/update user preferences |
221
+ | `brandly config` | Show configuration |
222
+ | `brandly webhook` | Start webhook server (CI/CD) |
223
+
224
+ ## Pipeline Phases
225
+
226
+ ```
227
+ init → trends → concept → script → asset → audio → re_edit → validate → publish → done
228
+ ```
229
+
230
+ Each phase has a corresponding agent prompt that defines the task for the AI orchestrator:
231
+
232
+ | Phase | Agent | Purpose |
233
+ |-------|-------|---------|
234
+ | `init` | — | Project initialization |
235
+ | `trends` | trends_agent | Research viral formats for the product category |
236
+ | `concept` | concept_agent | Create 3 video concepts using STAMP framework |
237
+ | `script` | script_agent | Write shot-by-shot script with 8-Layer prompts |
238
+ | `asset` | asset_agent | Select models and generate visual assets |
239
+ | `audio` | audio_agent | Generate music, SFX, and voiceover |
240
+ | `re_edit` | script_agent | Review and refine the script |
241
+ | `validate` | validation_agent | Run virality scoring (requires Higgsfield MCP) |
242
+ | `publish` | publish_agent | Generate platform-specific metadata |
243
+ | `done` | — | Pipeline complete |
244
+
245
+ ## Video Styles
246
+
247
+ | Style | Credits (base) | Best For |
248
+ |-------|---------------|----------|
249
+ | `cinematic` | 250 | Premium brand stories |
250
+ | `ugc` | 150 | User-generated content style |
251
+ | `montage` | 200 | Fast-paced highlight reels |
252
+ | `multi_shot` | 300 | Complex multi-scene videos |
253
+ | `continuous` | 200 | Single-take seamless shots |
254
+ | `unboxing` | 180 | Product reveal videos |
255
+ | `lifestyle` | 170 | Contextual product usage |
256
+ | `collage_motion_graphic` | 350 | Animated collage sequences |
257
+ | `brand_short_video` | 280 | Short-form brand content |
258
+ | `explainer_video` | 400 | Educational/instructional |
259
+
260
+ ## Style Presets (Avoid AI Slop)
261
+
262
+ | Preset | Description |
263
+ |--------|-------------|
264
+ | `photorealistic` | Camera/lens/grain, natural skin texture |
265
+ | `editorial` | Magazine look, studio lighting |
266
+ | `cinematic` | Anamorphic, film grade, teal & orange |
267
+ | `commercial` | Product photography, clean studio |
268
+ | `documentary` | Photojournalism, available light |
269
+
270
+ ## Director Mode
271
+
272
+ The **Director** is an autonomous orchestrator agent. When invoked by an AI tool, it:
273
+
274
+ 1. Gathers product info (name, idea, style, budget, platforms)
275
+ 2. Creates a project via `brandly init`
276
+ 3. Runs the pipeline phase by phase
277
+ 4. Checks virality, manages budget, and exports final assets
278
+
279
+ To use it with any AI tool, copy the output of:
280
+
281
+ ```bash
282
+ brandly director
283
+ ```
284
+
285
+ ## Project Structure
286
+
287
+ ```
288
+ .brandly/
289
+ ├── projects/
290
+ │ └── {project-id}/
291
+ │ ├── project.json # Project state
292
+ │ ├── cost.json # Credit spend log
293
+ │ └── artifacts/
294
+ │ └── {phase}/ # Phase outputs (.md, .json)
295
+ ├── user-preferences.json # Liked/disliked hooks, style prefs
296
+ └── templates/ # Custom saved templates
297
+ ```
298
+
299
+ Generated media is stored in:
300
+ - `imagen/{project-id}/` — generated images
301
+ - `videgen/{project-id}/` — generated videos
302
+ - `audgen/{project-id}/` — generated audio
303
+
304
+ ## Development
305
+
306
+ ```bash
307
+ # Install in development mode
308
+ pip install -e ".[dev]"
309
+
310
+ # Run tests
311
+ pytest
312
+
313
+ # Run tests with coverage
314
+ pytest --cov=src/brandly_cli
315
+
316
+ # Lint
317
+ ruff check src/
318
+ ruff check src/ --fix
319
+
320
+ # Syntax check
321
+ python -m py_compile src/brandly_cli/*.py
322
+
323
+ # Build
324
+ python -m build
325
+ ```
326
+
327
+ ## Integration with AI Tools
328
+
329
+ ### OpenCode
330
+
331
+ Add to `.opencode/package.json`:
332
+ ```json
333
+ { "dependencies": { "brandly": "github:Dream-Pixels-Forge/brandly-plugin" } }
334
+ ```
335
+
336
+ Register in `opencode.json`:
337
+ ```json
338
+ { "$schema": "https://opencode.ai/config.json", "plugin": ["brandly"] }
339
+ ```
340
+
341
+ ### Codex / Qwen Code / Claude Code
342
+
343
+ Use the CLI directly — all commands are designed to be called by agent subprocesses. The Director prompt provides the orchestration logic.
344
+
345
+ ## License
346
+
347
+ MIT — Dream Pixels Forge