Nothing happened after tick

tick prints why nothing ran. Read the reason line.
  • Not due: the series is outside its posting window. Run npx vfrey tick --now.
  • Paused: the series is paused. Resume it on the dashboard, or ask your agent.
  • A job in progress: the line names a job and its cancel command. If the run was interrupted, the next tick reclaims it once its process is gone. If it does not, cancel the job, then retry it. A run with --about or --script is a one-off and is not blocked by a series job in progress.

Skill not found

The agent does not know vfrey. In a project, the skill is already in .claude/skills/vfrey/ and .agents/skills/vfrey/: make sure you started the agent in the project folder, and that the project is trusted if your agent asks. Outside a project, each agent reads skills from its own folder, so installing for the wrong one does nothing. Install the skill for your agent, then start a new session (Gemini CLI: /skills reload). Use --agent all to install for every agent, or --force to replace a different copy. Grok shows what it loaded with grok inspect, and Codex lists skills with /skills. See Your agent.

Doctor says the skill is not installed, but I installed it

Doctor looks in every agent’s skills folder and passes when any copy is current. If it fails, the skill is missing or older than the package. Run the Fix: line it prints, for example npx @vfrey/vfrey@beta skill install --agent codex. If you used --dir for another agent, doctor cannot see that folder. See Your agent.

Not in a vfrey project

You ran a command that makes or lists videos in a folder that is not inside a project, so it used the machine desk. Commands look for vfrey.json in the current folder and then each parent folder. Either cd into your project, or start one with npm create vfrey@beta my-channel. npx vfrey projects lists the projects on this machine. npx vfrey open outside a project, with no videos on the machine desk, lists them and asks you to cd into one. The line is not printed when DATA_DIR or VFREY_HOME is set, because those choose the data folder.

npx vfrey says 404 or not found outside a project

The package is @vfrey/vfrey, not vfrey, and a project installs it in its own node_modules. So npx vfrey works inside a project folder and fails in a folder that has no vfrey installed. Do one of these:
  • Start a project with npm create vfrey@beta my-channel, then run npx vfrey ... inside it.
  • Run the scoped package from any folder: npx @vfrey/vfrey@beta init.
  • Install it once with npm i -g @vfrey/vfrey@beta, then run vfrey ... anywhere.
Do not run npm i vfrey: that name is not this package.

The dashboard is already running

npx vfrey open reuses this project’s dashboard and prints its URL, so this is normal. npx vfrey dashboard does the same: when this project’s dashboard is listening, it prints that address and exits 0 instead of starting a second one. To see which projects have a dashboard up, run npx vfrey projects. If the page you reach is for another project, its name (sidebar, or top bar on a narrow window) says so. To stop a dashboard a tick left running, run npx vfrey dashboard stop in that project. Each project has its own dashboard on its own port, so run npx vfrey open from the folder you mean.

The dashboard port is taken

Without --port, the dashboard uses the port it recorded last if that is free, else 4317 (VFREY_DASHBOARD_PORT changes that default), else the first free port above it, trying up to 50. So a busy 4317 is handled for you (with 4317 to 4319 taken, you get 4320), and the first line printed is the real address. npx vfrey open prints the URL too. Force a port with npx vfrey dashboard --port PORT.

open says the dashboard did not start

npx vfrey open starts the dashboard in the background and waits for it. If it fails, it prints the last lines of .vfrey/dashboard.log and a Fix: line. Run npx vfrey dashboard in the foreground to see the error.

A symlinked folder

vfrey resolves symlinks, so a folder that is a symlink to a project, or inside one, finds that project. The dashboard check and the machine index use the real path too, so one project is never listed twice. If vfrey still says it is not in a project, run npx vfrey projects to see the real root, and cd there.

The first render is slow

The first render downloads Chrome Headless Shell, about 170 MB, once. Later renders do not. If the download fails, run npx remotion browser ensure, then run tick again.

An engine shows unavailable

npx vfrey engine list gives the reason. vfrey Framey shows unavailable until Chrome Headless Shell is downloaded. Run npx remotion browser ensure, or make one Remotion render. HyperFrames needs the upstream hyperframes CLI. ComfyUI is not wired yet. A job on an unavailable engine ends blocked with a Fix: line. See Engines.

A command or flag is not clear

npx vfrey --help lists the commands. npx vfrey COMMAND --help lists the flags of one.

Doctor reports a problem

Each failed check prints a Fix: line. Apply it, then run doctor again.

The disk is full

✗ ... the disk is full: this needs about 2.0 GB of free space and N is free on the drive that holds PATH means the render ran out of room. Free space, then run it again. It is safe to delete the vfrey temp folders (vfrey-* in your system temp folder) and old previews and render scratch (.vfrey/preview and .vfrey/public in the project); vfrey rebuilds them. Your finished videos in videos/ are yours: keep them. The readable message replaces the renderer’s raw output; the raw text is in the log.

Publish is skipped

missing_key means no platform key is set. The video stays in your project’s videos/ folder (or ~/.vfrey/renders/ on the machine desk). Add your own keys with the desk verbs. npx vfrey push refuses for now.

A video was rejected or blocked

Read the Check failed: line in the tick summary, or the Checks list on the run page. Each failed check has a Fix: line. rejected means a quality check failed: fix the script, scene, or layout it names and run again. blocked means a compliance check failed, such as a banned claim or a missing disclosure. Blocked jobs are never retried, so change the content. See Quality checks and Disclosure.

The background worker is not making videos

Run npx vfrey service status. It shows whether the service is installed and running, the last cycle, and each project’s last tick and next due time. Read the log with npx vfrey service logs. A project is skipped when it has no due, unpaused series, or when another tick holds its lock (.vfrey/worker.lock). A project whose folder moved shows missing: run a command inside it so the index updates. See Background worker.

Login says accounts are not live

That is expected for now. Free features never need an account. See Account.

A series makes videos but nothing uploads

A new series is in dry-run. It records a dry-run publication and uploads nothing, and the tick summary says Not uploaded to youtube: this series is not live yet (it says Dry run (--dry-run) only when you pass the flag). The Publications page shows the badge, and the series page says Dry-run. Go live with npx vfrey desk series live --id SERIES --confirm CHANNEL_ID. Also check that the publish switch is on: with publish off the platform is skipped with the code publish_off. See Autopilot.

Go live refuses

Going live needs the channel id typed once. means --confirm was empty. That is not the channel id on file for SERIES. means the id you typed is not one of the enabled platforms’ ids. Copy the id from the series page or npx vfrey desk snapshot --json. No platform is on for this series means turn a platform on first.

A job is waiting for review

A series with review on stops each job in awaiting_review before the render. Open the Review screen, or run npx vfrey desk job approve --id JOB_ID or desk job reject --id JOB_ID --reason TEXT. Only a job that waits for review can be approved means the job is not waiting: check npx vfrey desk snapshot --json. A rejected job shows review_rejected, and desk job retry runs it again. See Autopilot.

desk job retry refuses

A job that was cancelled while a worker held it is not retried until that worker has stopped, because it may be in the middle of an upload. Wait a moment, or stop the worker, then retry. vfrey never uploads a video twice. See Autopilot.

A source is refused or skipped

source_url_rejected means an rss source is not an http or https address. A source that fails shows its error code on the Sources screen, and the other sources still run. A vfrey-topics source that cannot be read is skipped with the warning topics_unavailable. See Paid features.

A shader transition fails

Shader transitions are not supported in Remotion scenes means the scene is a React scene. Use an HTML scene with --engine vfrey-framey or hyperframes, or build the effect with Remotion’s interpolate(). vfrey.transition: "NAME" is not a transition type lists the types: run npx vfrey scene transitions. the transitions runtime is not loaded means <script src="vfrey/transitions.js"> is missing before vfrey/vfrey.js. See Shader transitions. Topics, Creators, and Mail need an account, and the hosted service is not live yet. See Plans and credits. Each refusal prints a ✗ line and a Fix: line. A refused call is not charged. credits_required means the balance is too low. There are no monthly per-feature limits: credits are the limit.

Mail errors

npx vfrey mail ... turns each server refusal into a ✗ line and a Fix: line. A mail draft needs --kind and --need. --platform goes with --creator, and --creator needs --platform.

Cloud and teams

The hosted service is not live yet, so these commands stop with “vfrey accounts are not live yet” today. Once it is, each refusal prints a ✗ line and a Fix: line. See Teams and cloud.

The dashboard does not load

Run npx vfrey open. It prints the address and starts the dashboard if it is not running. If it fails, read .vfrey/dashboard.log, or run npx vfrey dashboard in the foreground to see the error. See also The dashboard port is taken.

Secrets read as missing

Set CREDENTIALS_KEY to a 32-byte base64 value. Secrets are read back only as present or missing.

Where are my videos

In a project, videos/ (npx vfrey videos lists them with their paths). On the machine desk, ~/.vfrey/renders/JOB_ID.mp4, or under $VFREY_HOME/renders/.

Is vfrey down

Check the status page for the console, the API, cloud rendering and mail. If it shows no incident, send a note from the support page.