Skip to Content

The 720 MB your first start downloads, and why it never downloads it again

The first time you start Pi Agent it goes quiet for several minutes and fills the log with messages. Nothing is wrong. It is fetching the tools the video pipeline needs, once, then writing itself a note so it never has t
September 12, 2026 by
The 720 MB your first start downloads, and why it never downloads it again
OdooBot
one big download
Pi Agent Guide · Part 12

The 720 MB your first start downloads, and why it never downloads it again

The first time you start Pi Agent it goes quiet for several minutes and fills the log with messages. Nothing is wrong. It is fetching the tools the video pipeline needs, once, then writing itself a note so it never has to do it again. This article covers what is in that download, where it lands, when it comes back, and the one switch that brings it back deliberately.

720 MB
Downloaded on the first start, then not again
3-8 minutes
How long that first start takes
0 bytes
The empty file that stops it repeating
One process, two names

Two things you already read are the same thing

Part 1 told you the first start takes 3-8 minutes and that the workspace can look broken while it happens. Part 11 told you the video pipeline needs a full set of tools before it can record, narrate, or subtitle anything.

Those are not two events. They are one event described twice. The first 3-8 minutes are the tools arriving.

In plain terms

Installing the add-on is like moving into a new place. The roughly 300 MB add-on image is the apartment itself, already wired and plumbed. The 720 MB first start is the truck outside with your boxes in it. You unload the truck once. You do not unload it again every time you walk through the front door.

Once that clicks, the lines beginning video-tools-init: in the Log tab stop reading as errors and start reading as a progress bar.

This happens whether or not you want video. The add-on has no chat-only mode today, so the download runs even if you never touch the video pipeline. The next section explains why.
What the 720 MB is

Three groups of tools, two of which you download

video-tools is not one program. It is a collective name for three groups, and only the first two are in the number people quote.

GroupWhat it isSizeArrives
Chromium A headless browser — no visible window. Playwright drives it to open pages and capture frames for screen recording. About 500-600 MB First start
Python environment An isolated Python setup holding edge-tts for narration, playwright, pyyaml for reading scripts, and mutagen for reading audio length. About 40-60 MB First start
ffmpeg, fonts, rclone ffmpeg edits video, libass burns in subtitles, the Noto fonts cover CJK text and color emoji, rclone uploads the result. About 400-500 MB Inside the add-on image

So the files that land in /data/pi-agent/ on your first start are the top two rows, roughly 600-700 MB together. The exact figure moves with Playwright and pip versions, which is why the guide rounds it to 720 MB. The third row arrived earlier, inside the roughly 300 MB image.

Can you skip it if you never make videos?

Not through any supported setting. Three reasons, and none of them are satisfying:

  • There is no off switch. The initializer runs as a startup service alongside the workspace. The Configuration tab has no option that disables it.
  • VIDEO_PIPELINE_ENABLED=false does not do it. That variable does not turn off the add-on's initializer. It is a common wrong guess.
  • Avoiding it means your own build. You would fork the add-on repository, remove the service, build an image, and publish it yourself — much more work than leaving 720 MB on a disk.

On a 32 GB drive, the Home Assistant minimum, 720 MB is about 2% of the disk, and it normally happens once. If that 2% is decisive, the storage is probably too small for comfortable Home Assistant use anyway.

Looking for space? Old conversations in sessions/, intermediate video files in clips/, and old snapshots in /backup/ are each worth more, and none of them come back on their own. Part 14 has the cleanup list.
What happens in those minutes

Two things start at once, and only one of them is slow

When you select Start, two processes run at once. The workspace is a Node.js app that needs neither Chromium nor Python to hold a conversation, so it is ready in seconds. The tools download behind it.

flowchart TD
  S["You select Start"] --> W["pi-web is ready
a few seconds — you can chat"] S --> V{"Sentinel file present
and venv/bin/python3 runnable?"} V -->|"yes, every later start"| K["Skip. Exits almost immediately"] V -->|"no, first start"| A["1 · Create the Python environment
about 10 seconds"] A --> B["2 · pip installs playwright, edge-tts,
pyyaml, mutagen
about 30 seconds to 2 minutes"] B --> C["3 · Playwright downloads Chromium
about 2-6 minutes, most of the wait"] C --> D["4 · Write the sentinel file
/data/pi-agent/.video-tools-installed"]
First start versus every start afterThe check at the top is the whole trick. It asks two questions, and on every later start both answers are yes.Times are source estimates
In plain terms

The sentinel is a zero-byte file. Think of the sticker you put on a moving box once you have unpacked it. It holds no contents at all — its whole job is to say “this one is done.” If you run cat on it you get nothing back, because there was never anything inside it.

The check tests two things, not one: the sentinel must exist and venv/bin/python3 must be runnable. Restoring the sticker without the box does not fool it.

That is also the answer to when the 720 MB comes back. Restarting the add-on, restarting Home Assistant, and normal upgrades all leave both in place, so nothing downloads. It comes back in three situations: you uninstall without keeping data, you restore a snapshot on new hardware, or you deliberately use the reset switch.

Watching it happen

Open the add-on's Log tab. A normal run reads like this:

[INFO] video-tools-init: first-run install starting (~720MB, may take several minutes)
[INFO] video-tools-init: creating venv at /data/pi-agent/venv
[INFO] video-tools-init: installing python packages into venv
[INFO] video-tools-init: downloading Chromium into /data/pi-agent/playwright-cache (~600MB)
[INFO] video-tools-init: install complete — sentinel written to /data/pi-agent/.video-tools-installed

The tab itself is below. This capture comes from a workspace that has been running for a while, so the install lines have long since scrolled away and what fills the frame is ordinary traffic logging — which is exactly what the same tab looks like once the download is behind you.

The Log tab of the Woow HA Pi Agent add-on in Home Assistant, selected in a row of tabs reading Info, Documentation, Configuration and Log. A Search logs box sits above a panel of web server access lines recording GET requests to /api/agent/running/events with timestamps and browser strings, and a Live indicator in the bottom right corner.
The Log tabThe only place that tells you whether the download is moving. Everything else looks the same whether it is working or not.Captured after startup, not during it
  • The Log tab sits along the top of the add-on page, beside Info, Documentation and Configuration. It is the first place to look for any later problem too.
  • Search logs, the box above the output, is how you find the lines you want in a busy log. Typing video-tools-init there leaves only the install messages.
  • The body of the frame is web server access logging — repeated GET /api/agent/running/events requests from your own browser, each with a timestamp and a browser string. Routine, not errors.
  • Those request lines carry a session= identifier for your ingress session. Trim it before you paste a log anywhere public.
  • Live, bottom right, means the view is following new output as it arrives. On a first start you can leave it open and watch.
The workspace will not tell you. Because chat is ready long before the tools are, you can be typing happily while a video Skill still fails for want of Chromium. The log is the only signal.
Why backups skip it

Your snapshots leave the 720 MB behind on purpose

Pi Agent tells Home Assistant to exclude certain files from snapshots, and the video tools are on that list. This is intentional, not an oversight.

In plain terms

You keep photos of your home in the cloud, not the flat-pack furniture from the shop. Photos cannot be reordered. The furniture can. Chromium and the Python environment are the furniture: any machine with internet can fetch them again in minutes.

Kept in the snapshotLeft out
models.json — your keys and provider settingsvenv/ — the Python part of the 720 MB
sessions/ — your conversation historyplaywright-cache/ — the Chromium part
skills/ — Skills you installed or wroteprojects/**/clips/ and segments/ — intermediate video files
home/pi-cwd-*/ — the agent's working foldershome/**/node_modules/ and .cache/
rclone/rclone.conf — your Google Drive authorizationsessions/*.jsonl.tmp — half-written temporary files

Two reasons. Size: adding roughly 700 MB to every snapshot means 12 monthly snapshots cost about 12 GB for this add-on alone. And need: after a restore the check fails on the missing Python environment, so the tools install themselves again. The restore takes about five minutes longer, and you save 700 MB on every snapshot.

One file is deliberately kept: rclone.conf holds your Google Drive authorization and is roughly 300 bytes. Losing it in a restore would make later uploads fail with no obvious reason, so it stays in.
The reset switch

reset_video_tools, and when to leave it alone

The Configuration tab has a switch called reset_video_tools. It does one thing: at the next start it deletes the sentinel, the Python environment and the Chromium cache, so the whole 720 MB comes down clean.

It is a container option, so it lives on the add-on's own Configuration tab rather than anywhere in Home Assistant settings. That tab looks like this:

The Configuration tab of the Woow HA Pi Agent add-on in Home Assistant. An Options panel lists api_key, minimax_api_key, openai_api_key and openrouter_api_key with their values masked as rows of dots and an eye icon beside each to reveal them, followed by empty anthropic_api_key, deepseek_api_key and groq_api_key fields.
The Configuration tabThe Options panel, scrolled to the key fields at the top of the list. The reset switch is in this same form, out of frame below.
  • Configuration is one of the four tabs across the top of the add-on page — Info, Documentation, Configuration, Log — not somewhere in Home Assistant settings. Path: Settings → Add-ons → Woow HA Pi Agent → Configuration.
  • Options is the single form that holds every container setting, one field per line. The capture stops partway down it, so scroll for the rest.
  • The eye icon beside each filled field reveals a value that is otherwise shown as dots. Useful for checking a pasted key, and a reason not to screenshot this tab with the values open.

Scroll down that form and you reach reset_video_tools, a true/false switch, with the SAVE button at the foot of the page.

  1. Step 1

    Open the Configuration tab

    Go to Settings → Add-ons → Pi Agent → Configuration.

  2. Step 2

    Turn reset_video_tools from false to true, then SAVE

    Nothing is deleted at this point. The switch is only a note for the next start.

  3. Step 3

    Go back to the Info tab and select RESTART

    On restart the add-on runs rm -rf /data/pi-agent/.video-tools-installed /data/pi-agent/venv /data/pi-agent/playwright-cache and logs reset_video_tools=true — clearing venv + playwright-cache + sentinel. Then the 3-8 minute download starts over.

  4. Step 4

    Check the log, and restart once more if it skipped

    The reset and the initializer run in parallel, so the initializer can read the old sentinel a moment before the reset deletes it. If the log says it skipped and no install sequence follows, restart once more.

  5. Step 5

    Leave the switch alone afterwards

    Since v0.13.0 the add-on turns it back off itself and logs reset_video_tools auto-reverted to false. Turn it off by hand only if you see Could not auto-revert reset_video_tools. Older tutorials tell you to always do it manually — that advice is out of date.

Do not restart during the clean download. Interrupting it can leave a half-built Python environment or a partial Chromium. If odd errors follow, the fix is another reset and letting it finish.

Is this actually your problem?

The switch is an escape hatch, not maintenance. The rule is short: reset when the tools are broken, not to make them feel clean.

Your situationReset?Why
A video Skill keeps failing and the log does not say whyYesA damaged pip install is a common cause, and rebuilding is often the fastest way to rule it out.
The log shows pip install failed or chromium download failedYes, after checking the networkThat attempt wrote no sentinel but may have left partial files. A reset gives a clean retry.
Chromium is too old for a site you want to captureYesA reset installs the Chromium build matching the Playwright version pip fetches then. Chromium never updates itself otherwise.
The disk is nearly full and you want the 720 MB backNoA reset deletes the files in order to download them again. You end up where you started.
You just upgraded, say v0.13 to v0.14NoUpgrades do not touch venv or playwright-cache — they sit on your persistent volume. Reset only if the CHANGELOG says to.
Slow or stuck

Telling a slow download from a dead one

If a stage produces no new log output for more than ten minutes and shows no error, check two things first. Open Settings → System → Network and confirm the host has internet at all. Then look at CPU and memory on the add-on's Info tab — activity there means it is still working, so wait.

It has said downloading Chromium for over 30 minutes
Usually the network. Playwright pulls Chromium from its own download service, which some campus networks, corporate networks, proxies and ISPs slow down or block. Check activity on the Info tab. Try again at a quieter hour, bypass a VPN or proxy temporarily if that is appropriate for you, and use reset_video_tools for a clean retry once the connection is fixed.
The log shows WARNING: pip install failed and then carries on
By design: a failure here must never block the workspace. Chat stays up, and video Skills fail instead, often complaining that edge-tts is missing. Read the full Skill output, confirm the host can reach the package source, then reset for a clean retry.
Every step finished but the sentinel file was never created
If pip and Playwright both succeeded and only the sentinel is missing, the data directory may have the wrong permissions. In an authorized add-on shell, run ls -la /data/pi-agent/ and check the owner, then search the log for Permission denied. Reinstalling without keeping data would rebuild the volume, but it also deletes Sessions, Skills and keys — back those up first, and treat it as the last option.
Can I just delete the sentinel instead of using the switch?
Yes, and it is a narrower tool. In an authorized shell attached to the add-on, run rm /data/pi-agent/.video-tools-installed, then select RESTART on the Info tab. That makes the pip and Playwright checks run again without deleting venv or playwright-cache first. Use the full reset instead when you suspect those directories are damaged.
What if I shut Home Assistant down mid-download?
Recovery is usually straightforward. The sentinel is written only after both installs succeed, so an interruption normally leaves it absent and the whole thing runs again at the next start. Partial files may remain, and pip and Playwright can often repair them on the next attempt. If the video pipeline keeps failing after that, reset for a clean rebuild.
Next

Where to go from here

keep going

The tools are in. The finished video still has to go somewhere.

Part 13 sets up rclone, which is how a finished file leaves your Home Assistant box for cloud storage — including that authorization file your snapshots deliberately keep.

Open the full guide

Part 12 of the Pi Agent Onboarding Guide series, published by WoowTech.

Based on the Woow HA Pi Agent Onboarding Guide, produced by WoowTech and released under CC BY 4.0.

The Smart Space Solution · 智慧空間解決方案 · © 2026 WOOW Technology Co., Ltd.

Share this post