Documentation
Install it once, then run the workflow
Everything below describes both kits — Film Kit and Reel Kit — and the commands that install and run them. Each kit has its own skill, trigger, project directory, and phase table; the license, the tools, the seats, and the render requirements are shared. The page is written to be read top to bottom once, and then used as a reference — the troubleshooting section is the part people come back to.
Overview
BountEx Motion installs a creative-direction and production workflow into the AI coding tool you already use. You describe the work once — a URL, a repository, a paragraph, an existing brief, or a track for a reel. It inspects what is really there, decides the story or the idea, writes it down, builds with HyperFrames, renders on your machine, and then hands the result to an independent critic that was not the one building it.
It is sold as a monthly license, and the license gates one thing: the playbook. The two kits read from separate playbooks, so no phase of one is ever served to the other.
Each kit is the shape of its workflow
install <kit> downloads one artifact for your tool and writes the runner skill, the command registration, and the harness scaffolding into the project. That is the order of the phases, the principles that never change, and the files the workflow keeps in video-project/ or motion-project/. It is deliberately not the method, and it is safe to read.
The phase content is licensed
Before the agent does the work of a phase, it fetches that phase from the license server. The CLI prints it to stdout, the agent reads it, and it is never written to disk — not to your repository, not to a commit, not to a document. Only an entitled, seat-bound device can fetch it, and it stops arriving when the subscription stops.
What that means in practice: your repository holds a skeleton you can read and your own project files, while the substance of the method arrives per session, in memory, and stays licensed. Your briefs, your renders, and your research are yours — nothing about them is uploaded.
Requirements
Installing either kit is light. Building and rendering is not: it happens on your machine, so your machine needs the tools.
| Requirement | Why | Check it |
|---|---|---|
| Node.js 20 or newer | Runs the CLI itself. npx bountex-motion activate, install, update, and doctor all work on Node 20. | node --version |
| Node.js 22 or newer | Required by the HyperFrames toolchain that builds and renders the work. Node 20 can install a kit; it cannot render with one. | node --version |
| FFmpeg on your PATH | Encoding, muxing, audio mixing, and loudness measurement during the render. | ffmpeg -version |
| Chrome or Chromium installed | HyperFrames renders composition frames in a real headless browser, so a browser binary has to exist on the machine. | google-chrome --version # or: chromium --version |
| One supported AI coding tool | The kit you install goes into the AI coding tool it finds in your project. See the harness table below. | npx bountex-motion install film --dry-run |
| Your license key | From the receipt email sent after checkout. It looks like BM-XXXX-XXXX-XXXX-XXXX-XXXX and it is the only credential you hold. | npx bountex-motion activate <license-key> |
npx bountex-motion doctor checks every row above in one command and tells you what is missing.
Quickstart
Three steps, one of which you do in the terminal twice. Run them from the project you want the work to be about.
01Activate the license
Sends the key once, registers this machine as a device, and writes the credential to your user config. If this machine already holds a seat, this is a reactivation and costs nothing.
$npx bountex-motion activate <license-key>What you will see✓ License key accepted plan Founding — $7.49/month status active seats 0 of 3 devices license BM-7K2M…4RZ6 ✓ Device registered id 7F3A9C2E1B4D5068 name MacBook-Pro (darwin arm64) token ~/.config/bountex-motion/config.json (0600) Next: npx bountex-motion install film02Install a kit
Detects which AI coding tool this project uses, downloads that kit’s artifact for it, verifies every file against its SHA-256, and writes only the paths that tool reads. The kit argument is optional:
installon its own installs film.$npx bountex-motion install film$npx bountex-motion install reelinstall film — what you will see✓ Detected harness: OpenCode (.opencode) ✓ Downloaded film v1.1.0 for opencode ✓ Verified every file against its SHA-256 (digest 4a7c1e9b…) .opencode/skills/bountex-motion/SKILL.md .opencode/commands/bountex-motion.md .opencode/command/bountex-motion.md .opencode/plugins/bountex-motion.js ✓ Install receipt recorded for future updates Start a fresh session in OpenCode, then run /bountex-motionInstalling the Reel Kit prints the same transcript with kit
reel, skillbountex-motion-reel, and trigger/bountex-motion-reel.03Run it inside your tool
Start a fresh session so the tool picks up the new files, then use the trigger for the kit you installed. Anything after the trigger is project input — a URL, a path, or a sentence.
$/bountex-motion https://yourproduct.com$/bountex-motion-reel https://yourproduct.comWith no input, the default flow of that kit starts by inspecting whatever is in front of it and asking you only what it cannot work out. The first command it runs on its own is a playbook fetch, not a build.
Supported harnesses
Both kits, 7 file layouts. The installer detects the tool from marker directories in your project and installs into the first match; force one with --harness, write every layout with --all. Each kit registers its own skill and its own trigger, so both can be installed into the same tool.
| Tool | Trigger | Install root |
|---|---|---|
| Claude Code claude-code |
| .claude |
| Cursor cursor |
| .cursor |
| Codex CLI codex |
| .agents |
| OpenCode opencode |
| .opencode |
| GitHub Copilot copilot |
| .github |
| Antigravity CLI antigravity |
| .agentsFilm Kit: Run the plugin install step your CLI reports, then start /bountex-motion.Reel Kit: Run the plugin install step your CLI reports, then start /bountex-motion-reel. |
| Kimi Code kimi |
| .bountex-motionFilm Kit: Run `/plugins install .bountex-motion/film`, start a fresh session, then `/bountex-motion:film`.Reel Kit: Run `/plugins install .bountex-motion/reel`, start a fresh session, then `/bountex-motion:reel`. |
Everything is written inside those roots, plus two exceptions worth knowing: Cursor also reads each kit’s skill from .claude/skills/, and Codex CLI also reads an agent card from .codex/agents/. The only other write is the managed block in your tool’s own instruction file, bounded by markers so the rest of that file survives an update byte for byte.
The workflow
Both kits share the same shape — inspect, decide, write it down, build, hand it to an independent critic — but they differ in what leads: a story, or a beat. Each kit has its own phase table and its own order. Your agent loads each phase from the server immediately before it does that phase’s work; it does not improvise one from memory and it does not reuse one from a previous session.
Film Kit /bountex-motion→ video-project/
| Phase id | What it is for | Loaded by |
|---|---|---|
interviewreferences/interview.md | Adaptive interview & context inspectionWhat to ask and what not to: inspect the site, the repository, existing briefs, and any references first, then ask only the questions whose answers change the film and cannot be inferred. | briefpromptfulldefault |
directionreferences/creative-director.md | Creative direction & story selectionChoosing one story, one message, three signature moments, and the visual metaphor — and writing those decisions down as decisions, where you can overrule them. | brieffulldefault |
promptreferences/production-prompt.md | Universal production promptFilling the universal production prompt with the project’s facts without weakening its constraints, so the build cannot drift from the brief. | promptfulldefault |
critiquereferences/quality-bar.md | Independent critic loop & quality barThe independent critic: what to measure, the issue format, the ledger, and the thresholds that decide when a film is finished rather than when the builder is tired. | fullbuilddefault |
buildreferences/hyperframes.md | Deterministic composition & render contractThe composition contract and the render path: project layout, determinism rules, the render CLI, and the render spike that has to pass before the full build starts. | buildfulldefault |
templatetemplates/creative-brief.md | Canonical creative brief templateThe canonical brief template, with facts, inferences, creative decisions, and unknowns kept in separate sections. | brieffulldefault |
Reel Kit /bountex-motion-reel→ motion-project/
| Phase id | What it is for | Loaded by |
|---|---|---|
conceptreferences/visual-language.md | Concept: one visual idea, mode and devicesDeveloping one visual idea out of the material: the landing line, the visual mode, and two to four devices with a one-line rationale each. | defaultgraphicuifull |
audioreferences/audio-sync.md | Audio bed: resolve the track and place itResolving a track, placing it in the project, and analysing it into a beat grid the rest of the workflow can trust. | defaultgraphicuifull |
beatsreferences/audio-sync.md | Beat sheet: map the concept to the beat gridMapping the concept onto the beats and writing the energy curve: where the reel bursts, where it holds, and where it lands. | defaultgraphicuifull |
storyboardtemplates/concept.md | Storyboard: per-shot timing, movement and transitionsPer-shot rows in the project file — time, beat, on-screen content, primary movement, transition, device — critiqued before they go to the review gate. | defaultgraphicuifull |
reviewreferences/quality-bar.md | Mandatory review gate before any buildPresenting the concept, the beat sheet, and the storyboard. Nothing is built before you approve. | defaultgraphicuifull |
motionreferences/motion-language.md | Design system, hero shot and the full buildBuilding the design tokens and one hero shot as a finished static frame, proving the render deterministic, then building the remaining shots to the approved storyboard. | defaultgraphicuifull |
critiquereferences/quality-bar.md | Independent critic loop & quality barThe builder is never the final judge: critic, fix, render, a new critic, and a verdict of FIXED, PARTIALLY FIXED, or STILL PRESENT, until the bar passes. | defaultgraphicuifull |
Fetching a phase
Phase ids are exactly the ids in the tables above — nothing else is accepted, and a phase id belongs to one kit, so fetching a reel phase needs --kit reel. A mode is not a separate list either: it is every phase whose usedBy column names it, read from the selected kit — so --mode brief --kit film fetches exactly the phases marked brief in that kit.
$npx bountex-motion playbook interview --kit filmOne phase, by its id. The kit flag is optional for the Film Kit: film is the default.
$npx bountex-motion playbook --mode brief --kit filmEvery phase one mode needs, in the kit that owns that mode.
$npx bountex-motion playbook --mode graphic --kit reelA Reel Kit mode. Mode ids are per kit: a Reel Kit mode is not accepted for the Film Kit, and a Film Kit mode is not accepted for the Reel Kit.
$npx bountex-motion playbook --all --kit filmAll 6 phases of the selected kit in one call.
The output is Markdown on stdout, held in memory. Do not redirect it into a file and do not paste it into a commit: the skill treats a fetch that cannot be made as a hard stop, and treats a copy of the playbook on disk as a licence breach.
Modes
A mode decides how far the workflow goes and which phases it loads. Pass it as the first word after the trigger, or to playbook --mode. Mode ids belong to one kit, so each kit has its own table below, ending with the empty invocation that runs the default flow.
Film Kit /bountex-motion
| Mode | Produces | Phases loaded |
|---|---|---|
brief | Interview and direction only. Produces video-project/creative-brief.md. Nothing is animated. | interviewdirectiontemplate |
prompt | Reads the existing brief and produces video-project/production-prompt.md. Nothing is animated. | interviewprompt |
build | Uses the brief and prompt you already have to storyboard, build, and render. Loads no interview phase — ask only the questions that would change the build. | critiquebuild |
full | Intake → research → brief → prompt → storyboard → build → render → critic → fixes → deliverables, in one session. | interviewdirectionpromptcritiquebuildtemplate |
default | What runs when no mode argument is given: the whole Film Kit playbook, an interview, the brief, then prompt and build according to what you asked for. | interviewdirectionpromptcritiquebuildtemplate |
Reel Kit /bountex-motion-reel
| Mode | Produces | Phases loaded |
|---|---|---|
graphic | A reel in the graphic visual mode; the concept picks the devices. | conceptaudiobeatsstoryboardreviewmotioncritique |
ui | A reel in the ui visual mode; the concept picks the devices. | conceptaudiobeatsstoryboardreviewmotioncritique |
full | Every phase end to end; the concept decides the visual mode. | conceptaudiobeatsstoryboardreviewmotioncritique |
default | What runs when no mode argument is given: inspect context, then the reel end to end — concept, audio, beat sheet, storyboard, review gate, hero shot, build, critic loop, render. | conceptaudiobeatsstoryboardreviewmotioncritique |
Project files
Each kit keeps its state in files under its own directory in your repository — video-project/ or motion-project/ — because files are the source of truth and a chat log is not. The workflow creates only what the mode needs: no empty scaffolding.
video-project/
├── creative-brief.md canonical brief (mode: brief)
├── production-prompt.md filled universal prompt (mode: prompt)
├── storyboard.md shots + per-ratio adaptation plan
├── critic-ledger.md round / problem / change / result
├── quality-report.md final critic verdict against the bar
├── human-review.md what you should check with your own eyes
├── src/ HyperFrames compositions
├── assets/ logos, UI, fonts, images, audio
├── references/ studied references (principles, never copies)
├── renders/ outputs
└── audio/ music, SFX, mixesmotion-project/
├── concept.md concept, devices, audio, beat sheet, storyboard
├── critic-ledger.md round / problem / change / result
├── quality-report.md final critic verdict against the bar
├── human-review.md what the human should confirm personally
├── src/ HyperFrames compositions
├── assets/ logos, UI, fonts, images
├── audio/ music, SFX
└── renders/ outputs| Kit | Path | What goes in it |
|---|---|---|
| Film Kit | creative-brief.md | The brief, with FACT, INFERENCE, CREATIVE DECISION, and UNKNOWN kept in separate sections. An inference is never quietly promoted to a fact. |
| Film Kit | production-prompt.md | The universal production prompt, filled with this project’s facts and decisions. The artifact that keeps a build honest. |
| Film Kit | storyboard.md | One row per shot: time, on-screen content, viewer takeaway, purpose, main subject, movement, transition, carried object, and audio purpose. Critiqued before anything is built. |
| Film Kit | critic-ledger.md | Every critic round: the problem, the change made, and whether the result was FIXED, PARTIALLY FIXED, or STILL PRESENT. |
| Film Kit | quality-report.md | The final critic’s verdict against the quality bar, written after the last correction pass. |
| Film Kit | human-review.md | The things a machine should not sign off on for you: claims, brand accuracy, taste, and anything factually load-bearing. |
| Film Kit | src/ | The HyperFrames compositions. One authoritative paused timeline per composition, no wall-clock animation, no unseeded randomness. |
| Film Kit | assets/ | Logos, UI captures, fonts, images, and audio used by the build. |
| Film Kit | references/ | Material you studied for direction. Principles are borrowed; frames are not. |
| Film Kit | renders/ | Rendered output, one file per aspect ratio, plus the music-only mix. |
| Film Kit | audio/ | Music, sound effects, voiceover, and the final mixes. |
| Reel Kit | concept.md | The concept, the device list, the audio bed, the beat sheet, and the storyboard rows — the reel written down before anything is built. |
| Reel Kit | critic-ledger.md | Every critic round: the problem, the change made, and whether the result was FIXED, PARTIALLY FIXED, or STILL PRESENT. |
| Reel Kit | quality-report.md | The final critic’s verdict against the quality bar, written after the last correction pass. |
| Reel Kit | human-review.md | The things a machine should not sign off on for you: claims, brand accuracy, taste, and anything factually load-bearing. |
| Reel Kit | src/ | The HyperFrames compositions. One authoritative paused timeline per composition, no wall-clock animation, no unseeded randomness. |
| Reel Kit | assets/ | Logos, UI captures, fonts, images, and audio used by the build. |
| Reel Kit | audio/ | Music and sound effects for the reel, plus the mixes. |
| Reel Kit | renders/ | Rendered output at every requested aspect ratio, plus the music-only export. |
None of these files are playbook content and none of them leave your machine. They are yours to edit: they are also the first thing the workflow reads when you come back to a project weeks later.
CLI reference
Every command is run through npx, so there is nothing to keep up to date globally: npx bountex-motion <command>.
| Command | What it does | Flags |
|---|---|---|
bountex-motion activate <key> | Register this machine against a license key, claim a seat if this machine does not hold one, and store the device token locally. Label the machine with --name so it is recognisable in devices. | --name, --api |
bountex-motion install [kit] | Detect your AI coding tool from the project, download that kit’s artifact for it, verify every SHA-256, and write the layout it expects. The kit defaults to film; --all installs every kit the license owns. | --harness, --all, --global, --force, --dry-run, --api |
bountex-motion update [kit] | Re-check the artifact of the kit you name — every kit you have installed when you name none — and refresh the files you have not edited. Files whose on-disk hash differs from the receipt are left alone and listed. | --harness, --global, --api |
bountex-motion playbook <phase> | Fetch one licensed phase of the selected kit and print it to stdout. Held in memory, written nowhere. Phase ids and mode ids each belong to one kit; --kit selects it and defaults to film. | --kit, --mode, --all, --api |
bountex-motion status | Show the license: plan, status, entitled or not, period end, seats used, and the harnesses each kit is installed into. | --api |
bountex-motion list | List the kits this license unlocks, with their version and whether they are installed in this project. | --api |
bountex-motion devices | List every device holding a seat, with its id, label, platform, and when it was last seen. | --api |
bountex-motion deactivate [<device-id>] | Free a seat — this machine’s seat when no id is given. Reactivating that machine later does not consume a new one, and the device’s token stops working immediately. | --yes, --api |
bountex-motion logout | Delete the local device token from this machine. It is not the same as freeing a seat. | --api |
bountex-motion doctor | Check Node, FFmpeg, Chrome, the stored token, the license, and whether the license server answers. | --api |
bountex-motion --help, --version | Print usage, or the CLI version. bountex-motion <command> --help documents one command, and the root help lists both kits with their triggers, directories, and modes. | — |
Flags
| Flag | Effect |
|---|---|
--kit <id> | Which kit a playbook fetch reads from. One of: film, reel. Defaults to film; a phase id or a mode id from the other kit is a usage error. |
--mode <mode> | Fetch every phase one mode needs. Mode ids are per kit — each kit’s own modes are listed in the mode tables above. |
--harness <id> | Install into one specific tool instead of autodetecting. One of: claude-code, cursor, codex, opencode, copilot, antigravity, kimi. |
--all | On install, every kit the license owns into every harness detected here. On playbook, every phase of the selected kit instead. |
--global | Install into your user-level configuration directory rather than the current project, so the trigger works everywhere. |
--force | Overwrite files that were modified by hand. Without it, the installer refuses and tells you which files it skipped. |
--dry-run | Print exactly what would change and write nothing. Use it on a repository you care about. |
--api <url> | Point the CLI at a different license server. Defaults to the configured production URL. |
--yes | Skip confirmation prompts. For scripts and CI; nothing else changes. |
Exit codes
A non-zero exit means the command did not finish. Codes 3 and 4 print the server’s hint verbatim — that hint is the fix. Code 5 means nothing was written to disk.
| Code | Meaning |
|---|---|
| 0 | The command did what it promised. |
| 1 | Something failed with no more specific code: the license server was unreachable, answered with a server error, or rate-limited the request. The message says which, and a rate limit says how many seconds to wait. |
| 2 | The command line itself was wrong. Re-run with --help. A malformed license key is caught here, before any network call. |
| 3 | There is no usable device token. Either this machine was never activated, it was logged out, or its seat was freed from elsewhere. Run `bountex-motion activate <key>`. |
| 4 | The license is active but does not permit this request: it lapsed, was revoked, or all seats are taken. Check the billing portal, or run `bountex-motion devices` and free a seat. |
| 5 | A downloaded artifact did not match its SHA-256. Nothing was written to disk. Re-run the command; if it repeats, the artifact is corrupt on the server, not on your machine. |
Rate limits
Limits exist so one runaway session cannot exhaust a shared server. Exceeding one returns a message with the number of seconds to wait, and the CLI exits 1.
| Bucket | Limit | Counted per |
|---|---|---|
| Activation | 20 per hour | client IP |
| Playbook fetches | 60 per hour | device |
| Kit downloads | 30 per hour | license |
Devices & seats
A license includes 3 device seats. A seat belongs to a machine, not to a session: the device id is derived from the hostname and platform plus a random salt generated on that machine, so it survives reinstalls, Node upgrades, and new projects.
Reactivating the same machine never costs a seat. If the device id is already on the license, activation refreshes the token and the last-seen time and changes nothing else. Reinstalling the CLI, moving the project, or running activate twice in a row is free.
When the seats are full, activation refuses with device_limit_reached and tells you exactly what to run. Free a seat by id, and the released machine’s token stops working on its next request — so a laptop you have sold or wiped is off the license immediately.
$npx bountex-motion devices$npx bountex-motion deactivate <device-id>The dashboard is a device too
The subscriber dashboard activates a browser session against your license so it can show you the seat list and the billing portal. It is registered as Browser (web dashboard) and it holds one of the 3 seats while it is active, which is why it can release itself again in one click. If you would rather not spend a seat on it, use npx bountex-motion status instead.
Updating
Both kits improve while you are subscribed, and update is how the improvements reach you. It re-checks the artifacts you have installed for their harnesses and refreshes the files that are unchanged from the release you installed. Name a kit to update only that one.
It never overwrites a file you edited. Every file from the original install is recorded with its SHA-256. If the hash on disk no longer matches the receipt, update leaves that file exactly as it is and prints it in a skipped list, so a customised skill or hint block survives. Pass --force to a fresh install when you have read the list and want the release version back.
The licensed phase content needs no update at all: it is fetched fresh at the start of every phase, so the current release is what your agent reads next session.
$npx bountex-motion update$npx bountex-motion update film$npx bountex-motion update reelTroubleshooting
The eight failures people actually hit, with the message each one prints and the fix. If none of them match, run npx bountex-motion doctor and send us what it says.
01 The terminal says the command does not exist
The exact errorbash: bountex-motion: command not foundThere is nothing to install globally, so call it through npx:
npx bountex-motion <command>. If npx itself is missing, Node is not on your PATH — install Node 20 or newer and open a new terminal. If npx refuses to fetch, add --yes.02 A kit installed but my tool does not know about it
The exact errorNo skill named "bountex-motion" and no /bountex-motion command in the tool’s command list. No skill named "bountex-motion-reel" and no /bountex-motion-reel command in the tool’s command list.Check that the install root for your tool exists in the project (see the harness table above). Autodetection picks the first marker it finds, so a project that contains two tools needs
--harness <id>. Both kits install into the same roots but register different skills and triggers, so a trigger that is missing usually means that kit was never installed here — install it, then reload. Most tools only scan at start-up: open a fresh session or reload the window. For the two plugin-based tools, run the plugin install step printed after install.03 The trigger does not appear in the tool
The exact error/bountex-motion is not in the command or slash-command list. /bountex-motion-reel is not in the command or slash-command list.Not every tool uses a slash command. Film Kit: Codex CLI has none — ask it to run the
bountex-motionskill by name; GitHub Copilot uses @bountex-motion; Kimi Code needs/plugins install .bountex-motion/film, a fresh session, and then/bountex-motion:film. Reel Kit: Codex CLI has none — ask it to run thebountex-motion-reelskill by name; GitHub Copilot uses @bountex-motion-reel; Kimi Code needs/plugins install .bountex-motion/reel, a fresh session, and then/bountex-motion:reel. For every other tool, reinstall with--harness <id>and reload.--globalputs it outside the project, which some tools need.04 The license is not recognised, or a phase is refused
The exact errorError: not_entitled — This license cannot fetch that phase. (code: not_entitled)Run
npx bountex-motion status. If the key is unknown, re-check the receipt email — keys are Crockford base32, so an O is a zero, an I or an L is a one, and a U is a V. If the status is past_due, the subscription needs a payment: open the billing portal from the dashboard or the link in the receipt. If it reads revoked or expired, the license has ended.05 Activation refuses with a seat error
The exact errorError: device_limit_reached — This license is active on 3 of 3 devices.Run
npx bountex-motion devicesto see which machines hold the seats, thennpx bountex-motion deactivate <id>for one you no longer use. Reinstalling on a machine that already holds a seat never consumes an extra one, so activating the same laptop again will not hit this.06 A phase fetch fails mid-session
The exact errorError: rate_limited — Too many playbook fetches for this device. Retry after 43 seconds. (limit: 60/hour)Wait for the Retry-After the message names, then fetch again, or fetch by mode to load several phases in one call. If the error is device_unknown or subscription_inactive instead, run
npx bountex-motion statusand fix the license first. Do not carry on without the phase: the skill tells the agent to stop rather than improvise it, and that instruction is the product working as intended.07 The render fails with unknown HyperFrames flags
The exact errorerror: unknown option '--<flag>'The composition contract is written against a specific HyperFrames CLI surface, and an older or newer binary can have moved a flag. Run
npx hyperframes --version, upgrade the renderer withnpx hyperframes upgrade, and re-run the render spike on one composition before rendering the whole piece. If a flag genuinely no longer exists, the build phase is the place that has to change — say so rather than hand-editing the composition around it.08 The build finishes but nothing renders
The exact errorrenders/ is empty after the render command exits 0. (Often preceded by: Could not find Chrome, or ffmpeg: command not found)Check the three render requirements: Node 22 or newer, FFmpeg on PATH, and a Chrome or Chromium binary.
npx bountex-motion doctortests all three in one command. Then re-run the render spike on the single hero composition before the full build, and read the quality report — if the spike never passed, the full render is the wrong next step.
Support
Support is a human on Telegram @bountexlabs. It is also where refund requests go inside the 14-day window; after that, cancel from the billing portal.
Messages get answered fastest when they include the exact error text, the output of npx bountex-motion doctor, the last eight characters of the device id if a seat is involved, and your OS and Node version.
Never paste your license key or a device token into a support message. Nobody at BountEx Labs will ask for either.