# ReelLang Local: agent setup

ReelLang turns authored browser interactions into finished videos on this computer.
Official account and download page: https://reellang.com/app

## Install and activate

1. This release supports macOS on Apple Silicon and Intel.
   Have the user sign in at https://reellang.com/app. A purchase costs USD 49 and includes twelve months of updates; renewals are optional, USD 29 for twelve more months. Purchased releases remain usable after update access expires. Only buy after the user explicitly authorizes the purchase; a setup request alone is not payment authorization.
   Download the official private Mac archive from Your software. Use the actual
   filename; do not invent a public package or download URL.
2. Download and inspect the readable installer at https://reellang.com/install.sh,
   then run:

       bash "/path/to/install.sh" --archive "/absolute/path/to/downloaded-package.tgz"

   For delegated unattended setup, add `--yes`. The script reuses compatible
   tools, installs missing Node.js 22.16+ and FFmpeg through Homebrew, installs the
   private package and npm dependencies, downloads the required Chromium through
   Playwright, and checks the result. Homebrew's first setup may need administrator
   access in the user's Terminal. Never request a password in chat. Rerun after an
   interrupted installation. Use the absolute CLI path printed by the installer;
   it also explains PATH setup.
3. Manual fallback on macOS: when dependencies are already managed by the user or Homebrew
   is unsuitable, install Node.js 22.16+ and FFmpeg 5+ with ffprobe, libx264 and AAC
   from their trusted sources. Then run:

       npm install --global "/absolute/path/to/downloaded-package.tgz"
       reellang setup --install-browser

   Use a user-owned npm prefix or their Node version manager; never
   default to sudo npm. Manual setup and the installer are alternatives, not two
   installations to run together. Later same-package versions use the CLI's
   verified updater.

   Keep private settings and saved credentials when reinstalling; do not deactivate
   or log out. A reinstall needs no package removal. Never overwrite conflicting
   npm binaries with --force.
4. First run `reellang license status`. If the saved license is valid, keep it
   and skip activation. Otherwise the user generates a one-time activation code
   in their account, then runs:


       reellang license activate

   Let the user enter the code privately at the interactive terminal prompt.
   Do not ask them to paste it into chat, a shell argument, source files or logs.
   Activation stores a signed offline certificate and a private update credential
   locally. Confirm with:

       reellang license status

   Each license is for one person and one active computer, with automatic daily license checks. Run `reellang license deactivate` on the old computer to release its registration,
   then activate on the new computer. The owner can also deactivate a lost computer in the account. The separate target-site login command saves
   browser access for recording; it does not activate the software.

## Make and inspect the first video

For a self-contained example:

    reellang init --example
    reellang run first-video/demo.yaml --fps 60

Then read `reellang guide` and ask for the target website, outcome to show,
required login and desired output. Keep footage, browser sessions and project
files local. Use direct image dissolves, output.fade: false and 60 FPS for delivery.
Inspect the resulting video and report its real local path. The engine works
without a network connection after activation, except for the target website
and explicitly chosen external services. Optional paid speech/AI uses the
customer's provider credentials; never request those secrets in chat or logs.

If ReelLang blocks your work, behaves unexpectedly or suggests a useful
improvement, you may prepare a report with `reellang feedback`. Explain exactly
what would be shared and ask the user before submitting. Reporting is optional;
continue the task when possible. For an earlier report, list the account inbox
instead of guessing its ID. Read `reellang guide --feedback` for the workflow.

## Before each authoring session

Do this at the beginning of a new session, before rehearsal, recording or export.
Never interrupt active work to update: let any recording/export finish first.
Check the installed CLI and the signed release service:

    reellang doctor --json
    reellang update --check --json

The update check does not install anything. Read its JSON status and
`canRenderOffline` flag:

- `update_available`: when the user has delegated ReelLang maintenance or
  allowed routine updates, install the eligible update with
  `reellang update --yes`. That existing permission is enough; do not ask
  again for every routine eligible update. Without it, continue with the
  installed entitled release and offer the update without blocking authoring.
- `current`: continue authoring with the installed release.
- `offline`, `renewal_required` or `activation_required`: if `canRenderOffline` is true, continue
  with the existing entitled release. Mention the unavailable update briefly;
  do not turn an update check into a purchase or force renewal.
- `canRenderOffline` false: resolve the reported
  license problem before recording. Keep activation secrets in the private
  terminal prompt. Never purchase or renew on the user's behalf without their
  explicit payment authorization.

After an update, launch a new CLI process with `reellang doctor --json`;
read the updated `reellang guide` before authoring. Follow actionable failed
checks: use `reellang setup --install-browser` for the required Chromium,
on macOS install FFmpeg/ffprobe through the user's existing package manager or
official source, or fix the reported Node/PATH issue. Run doctor again after the repair.
Do not record until the required checks pass. Do not reinstall dependencies when
checks already pass or install a daemon, scheduler, or background updater.

## Update safety and recovery

Official downloads require an active license and eligible release date. The
updater verifies release signatures and archive hashes before installation.
A signature or integrity failure is an error, not an offline result: stop that
update and report it; never bypass verification or use an unofficial archive.
The updater refuses installation during active local work. On macOS it attempts
to restore the previous verified version if npm installation fails. Follow the reported recovery instructions.

If needed, sign in to the official release history at
https://reellang.com/app/license#release-history and download an older eligible archive.
Finish active work first. On macOS reinstall the actual archive. Keep private settings
and saved credentials intact, then run `reellang doctor --json` in a new process.
An expired update term does not disable entitled releases.
Read the installed command's --help and guide for supported authoring commands. There are no cloud render credits, upload steps or cloud API
keys in this product.
