📦 Automation packs are now KRW 4,500 each on ctee.kr. Updates stay free.
Dex › Products
← Instagram Reels Pack

5단계 온보딩 코스 / Interactive course →

Instagram Reels Pack user guide

Before you buy

This is downloadable code, configuration examples and operating documentation to set up on your computer. You must install tools, connect accounts and review output. Uploading the ZIP to a web chat does not start the pipeline. Setup services, AI subscriptions, API credits and hosting are not included. Setup and first-output time depend on your environment.

The instructions target macOS and a terminal. Linux and Windows/WSL require changes to shells, paths, fonts, browser connections, notifications and scheduling; unchanged operation is not guaranteed. Start with one account and one output. Local jobs do not run while the computer is off or asleep.

Do I need both Claude and Codex subscriptions?

No. Start with one supported cloud CLI that your account can access, with enough remaining usage. Multiple engines provide alternatives when a provider is unavailable. An installation assistant and the CLI invoked by the scripts are separate: signing into a desktop app does not establish that CLI authentication is ready.

OptionAccess neededCost and limits
Claude CodePro/Max, an eligible Team/Enterprise account, or Console API billingFree Claude web chat does not include Claude Code. API usage is billed separately from subscriptions.
Codex CLIA ChatGPT plan with CLI access, such as Plus/Pro, or an OpenAI API billing accountDo not equate Free/Go app access with CLI automation access. API-key use incurs API charges.
Gemini CLISupported Google sign-in or API authenticationCheck the allowance for your account and authentication method. An API key does not imply free usage.
OllamaLocal models and computing resourcesRequires memory, storage, power and time. Run only when the resource guard admits the job.

Set the engine order to the CLI you use. Image, voice and video APIs may charge separately from a text CLI subscription. Total running cost includes your chosen AI access, media generation and hosting/execution, in addition to the pack. Measure a single output before scheduling; no fixed monthly running cost is promised. Check provider billing and budget controls first.

Official documentation checked on 2026-09-28; check again before paying because plans, limits and models change.

Version 1.1.0 sourcing

Start with a buyer-maintained catalog. Copy config/source-products.example.json to config/source-products.json, enter your product, permitted video and partner URLs, then confirm usage rights. node reels/sourcing.mjs --dry validates without writes; running without the flag imports valid, unique products. Example URLs and unconfirmed rights are rejected. Automated marketplace browsing still requires your own adapter.

The current script and hashtag stages call Ollama directly. Ollama is required for this route; a Claude or Codex subscription alone does not replace every stage. Local drafting is followed by cloud editing/review and human approval.

Requirements

StageRequirements
Local development/productionmacOS, Node 20+, Python 3.11+, zsh, ffmpeg/ffprobe, yt-dlp, edge-tts, the whisper command, an Ollama model and one cloud CLI
SourcingYour marketplace/affiliate login, browser tooling and a reviewed product catalog or your own automated collector
PublishingAn Instagram professional account, Meta app with required publishing permissions/token, GitHub account, gh CLI and Actions setup
Media handoffAPI-accessible hosting for the reviewed video, plus queue/asset handoff to Actions
OptionalGemini video-review API, ElevenLabs voice, an opening-clip generator and link-page hosting

Without the video-review API, the code can fall back to transcript-based review. That does not amount to viewing the video or listening to its audio. The renderer calls whisper; installing only mlx_whisper requires an adapter change.

1. Prepare configuration and dependencies

Extract into a new folder and open it. These copies are for a new installation only.

npm ci
cp .env.example .env
for f in config/*.example.json; do cp "$f" "${f/.example/}"; done
export PACK_HOME="$PWD"
export OPS_HOME="$PWD"
npm run check

Version 1.1.0 includes a package-lock.json. Install with npm ci and run zsh bin/selftest.sh for offline code checks. Install the voice tools in a Python environment. Confirm ffmpeg, ffprobe, yt-dlp, edge-tts, whisper and ollama are available. Prepare the model named by LOCAL_AGENT_MODEL (default local-agent) separately.

Set .env paths to your actual folder, enter your own values and quote paths with spaces. The shared Node module loads literal KEY=value entries without evaluating shell commands. Export them for the Python worker too. Load it explicitly:

set -a
source .env
set +a
export PACK_HOME="$PWD"
export OPS_HOME="$PWD"

Keep scheduledPublishing, manualPublishing and commentDm false, and pilotIds empty in config/production-policy.json. The example enables commentDm; turn it off initially. Do not activate launchd or Actions workflows yet.

2. Validate and import one product

Enter one permitted product in config/source-products.json. Set rightsConfirmed to true only after checking rights, and set sourcing.json partnerLinkHost to the exact partner URL hostname. Run node reels/sourcing.mjs --dry, resolve rejections, then run node reels/sourcing.mjs to import. Duplicate products are skipped. No publishing occurs.

3. Produce without publishing

After preparing sourcing and models, run one worker tick at a time. Each invocation performs one action, so several ticks are needed for production/review. Local generation, downloads and external model calls may occur.

python3 automation/worker.py

Inspect .cache/operations/status.json, .cache/operations/launchd.log, data/reels-queue.json and .cache/reels/<id>/. The normal progression is queued → scripted → rendered → reviewed → prepared → published. Holds stop at held_* or review_deferred. prepared means human-approved, not yet published.

4. Review and approve

Play the reviewed file in full on headphones and a phone speaker. Check the 4:5 cover, ad disclosure, product claims and source-asset rights. Only after doing those checks, replace the example ID with the queue item's actual ID:

node reels/approve.mjs actual-reel-id --headphones --speaker --cover45

The command records approval. Changing the video, caption or cover requires renewed review/approval. Flags do not perform the human listening/viewing checks.

5. Configure publishing and DMs separately

Check account/app permissions and token access in Meta's developer settings. App status and target accounts can require additional review; buying the pack does not grant permissions. Hand off reviewed assets and the queue to Actions, and enter secrets directly in GitHub Secrets. Files on a public media host can be publicly accessible; do not upload private originals or credentials.

Read docs/PIPELINE.md, docs/HUMAN-STEPS.md and workflows/reels.yml before permitting a test-account post. Changing scheduledPublishing or pilotIds can allow real publishing. Comment DMs are a separate outbound feature: leave them off when enabling publishing alone. To stop, check Actions and local worker schedules as well as the policy flags.

Ask your installation assistant

Open the extracted folder in Claude Code or Codex and use this request. The assistant consumes your account's usage too. Enter secrets locally, not in chat.

Read docs/START-HERE.md and the README in this folder.
Check my OS, tools and the one cloud CLI I plan to use, including authentication.
Separate required tools, optional tools and additional charges.
Do not overwrite existing .env/config files or print secrets.
Keep schedulers, uploads, publishing and comment DMs disabled.
After checks, help me generate one local output only.
Identify unfinished adapters and failures explicitly.
Show output paths and the human review checklist. Stop before publishing.

Precautions

Troubleshooting

SymptomNext check
Command/module missingVirtual environment, PATH and required tool installation; run the CLI's version command
Login error / 401 / 403Account, channel, authentication method, token expiry and permissions; log in yourself
Quota / 429 / insufficient creditsProvider usage and billing; do not retry repeatedly or delete cooldown files
rc=75 / RESOURCE_DEFERREDAnother job, memory pressure or load; retry later without deleting locks
Output exists but is not publishedTest flags, holds, review failures and publishing policy; a file is not proof of publishing
Browser step stopped workingLogin expiry or changed platform UI; inspect that stage and sign in manually

For support, provide the pack and ZIP version, OS, failing stage/command, expected result and last 20 error lines with secrets removed. Never send keys, cookies or your full .env. See docs/HUMAN-STEPS.md for the operating checklist and docs/PIPELINE.md for the stage reference.