Chapter 18

Why the first download is 720 MB—and later starts take seconds

Chapter 2 told you not to worry when first startup takes 3–8 minutes. Chapter 17 explained that the video pipeline needs a complete set of tools. This chapter connects those facts: what the 720 MB download contains, where the files go, when they download again, and when to use the one-time reset_video_tools switch. Once you understand the process, messages beginning with video-tools-init: in the Logs tab will no longer be alarming.

Two descriptions of the same process

Readers often confuse two points from earlier chapters:

  • Chapter 2 says that first startup takes 3–8 minutes—you have just installed the add-on and selected Start, but the UI appears unresponsive while warnings fill the log. It is natural to wonder whether the installation failed.
  • Chapter 17 says that the video pipeline needs 720 MB of tools—recording the screen, generating narration, editing video, and burning in subtitles require a substantial toolchain.

They are the same process. The first 3–8 minutes are spent downloading those tools. This chapter connects three details:

  1. What gets installed

    Chromium, a Python virtual environment, ffmpeg, fonts, and rclone—organized into three main groups.

  2. Where the files go

    The downloaded files live in three locations under /data/pi-agent/. You can inspect them with the File Editor add-on.

  3. When installation runs again

    Under normal circumstances: never. It runs again only after you use reset_video_tools, reinstall without retaining data, or restore a snapshot that omitted the rebuildable files.

By the end, you will know when to let installation finish and when to start it again. That saves you from worrying during normal setup or opening a shell simply to delete files by hand.

Concept: Even if you do not plan to use the video pipeline from Chapter 17, the HA add-on still performs this 720 MB download. It currently has no chat-only mode. The section on skipping the download explains why.

video-tools is a name for three groups of tools

Inside Pi Agent, video-tools is the collective name for the components required by the video pipeline. It is not a single tool. The 720 MB figure from Chapter 2 refers to the first two groups:

GroupWhat it isSizeWhat uses it
Chromium (headless browser) A complete headless Chromium build that Playwright uses for screen capture. It has no visible window; the AI relies on it to open web pages, switch tabs, and capture frames. About 500–600 MB Playwright and the video pipeline's screen-capture stage
Python virtual environment and pip packages An isolated Python environment containing edge-tts (Microsoft Edge text-to-speech), playwright (the Python browser-control package), pyyaml (for reading script files), and mutagen (for reading audio duration). About 40–60 MB The video pipeline's narration and scheduling stages
ffmpeg, libass, fonts, and rclone These components are included in the container image, not in the first-start download. ffmpeg edits video; libass burns in subtitles; fonts-noto-cjk provides CJK fonts; fonts-noto-color-emoji provides color emoji for subtitles and title cards; and rclone uploads files to cloud storage. About 400–500 MB (installed in the image) The video pipeline's composition, subtitle, and upload stages

Strictly speaking, the files first downloaded to /data/pi-agent/ are the first two groups: Chromium and the Python virtual environment. Together they total about 600–700 MB. The number varies from 600–720 MB with Playwright and pip dependency versions, which is why this guide uses the approximate figure of 720 MB. The third group is part of the add-on image and arrives with the roughly 300 MB image download.

Tip: Think of installing the add-on as moving into a new home. The 300 MB image is the house with utilities and furniture already in place. The 720 MB first-start download is the truck delivering your luggage (Chromium) and personal collection (Python packages). You move the house and luggage once; later starts do not repeat the work.

What happens during the first 3–8 minutes

After you select Start on the add-on page, two processes run in parallel:

  1. First process: pi-web starts immediately (a few seconds)

    The sidebar entry described in Chapter 3 becomes available, the UI opens, and you can start chatting within seconds. pi-web is a Node.js application. It needs neither Chromium nor Python for chat, so it is independent of the video pipeline.

  2. Second process: video-tools-init downloads in the background (3–8 minutes)

    The startup script pi-web-start.sh checks whether the sentinel file /data/pi-agent/.video-tools-installed exists, then launches the video-tools-init.sh process when installation is required. The script performs four tasks in order:

    • Create the Python virtual environment with python3 -m venv /data/pi-agent/venv, which takes about 10 seconds.
    • Use pip to install playwright, edge-tts, pyyaml, and mutagen, which takes about 30 seconds–2 minutes depending on the network.
    • Ask Playwright to download Chromium to /data/pi-agent/playwright-cache/, which takes about 2–6 minutes and accounts for most of the download.
    • When every required step succeeds, use touch to create an empty file named .video-tools-installed. This records that installation completed.
  3. Every later start: skip installation

    When you restart the add-on, Home Assistant, or the host, video-tools-init checks the sentinel and venv/bin/python3. If both are present, it exits with status 0 without reinstalling anything. The log contains only video-tools-init: already installed (sentinel present) — skipping, and the check finishes almost immediately. That is why first startup takes minutes while later starts take seconds.

Warning: Because pi-web starts immediately while video-tools downloads in the background, the UI does not reveal that installation is still running. You may be able to chat while a video Skill still fails because Chromium has not finished downloading. Before using the video pipeline, look for video-tools-init: install complete — sentinel written in the Logs tab.

Where the downloaded files are stored

Everything downloaded during initialization is stored under /data/pi-agent/ on the Home Assistant host. Use the File Editor add-on or SSH to inspect these three locations:

PathContentsSizeCan you delete it?
/data/pi-agent/playwright-cache/ The Chromium browser downloaded by Playwright. A subdirectory resembles chromium-XXXX/chrome-linux/ and contains the Chrome executable and its shared libraries. It is stored here because the PLAYWRIGHT_BROWSERS_PATH environment variable points to this directory. About 500–600 MB Yes; installation will download it again when the required-file check fails.
/data/pi-agent/venv/ The Python virtual environment. venv/bin/python3 is its dedicated Python interpreter. venv/lib/python3.X/site-packages/ contains edge-tts, playwright, pyyaml, mutagen, and their dependencies. It is completely separate from the system Python installation. About 40–60 MB Yes; installation will recreate it when the required-file check fails.
/data/pi-agent/.video-tools-installed The sentinel file. This empty, zero-byte file means that installation completed. The startup check skips installation only when this file exists and venv/bin/python3 is executable. Restoring the sentinel without the virtual environment therefore does not suppress installation. 0 bytes Yes; deleting it causes installation to run on the next start.

The key term is sentinel. Docker and Linux services often use an empty file to record that a one-time task has completed, rather than repeatedly examining every installed component. If you run cat .video-tools-installed, the output is empty because the file was created with touch.

Concept: /data/pi-agent/ is the add-on's persistent storage area. Your Skills, models.json file, Sessions, and video tools all use subdirectories under this location. Add-on upgrades do not remove your conversations, keys, or downloaded tools. See Chapter 20 for the complete file map.

Important: Home Assistant snapshots exclude these 720 MB

This is the chapter's most important backup detail. Pi Agent's config.yaml contains a backup_exclude list of glob patterns omitted from Home Assistant snapshots. The seven entries include these items related to the video-tools download:

  • **/venv/** ← the Python virtual environment included in the 720 MB download
  • **/playwright-cache/** ← the Chromium portion of the 720 MB download
  • **/projects/**/clips/**, **/projects/**/segments/** ← large, regenerable intermediate video files
  • **/home/**/node_modules/**, **/home/**/.cache/** ← npm caches in AI working directories
  • **/sessions/*.jsonl.tmp ← temporary, partially written conversation files

Note: rclone.conf, which contains the Google Drive authorization token, is not excluded. It is included in snapshots deliberately. Losing that authorization during a restore could make later push_drive.sh operations fail without an obvious explanation, so the file is worth its roughly 300 bytes of backup space.

There are two reasons for these exclusions:

  1. Reason 1: Including them would make every snapshot 1 GB or larger

    A Home Assistant snapshot normally compresses the add-on's data directory. Including Chromium and the virtual environment would add roughly 700 MB to each snapshot. Keeping 12 monthly snapshots on Google Drive or a USB drive could consume about 12 GB for Pi Agent alone, even though those files can be regenerated.

  2. Reason 2: s6-overlay installs them again after a restore

    Suppose the Home Assistant host fails and you restore its snapshot on new hardware. The Pi Agent snapshot contains neither venv nor playwright-cache. Although the sentinel itself is restored, video-tools-init skips installation only if the sentinel exists and venv/bin/python3 is executable. Because the virtual environment is missing, the check fails and the 3–8 minute installation runs again. The result is equivalent to the old environment. The snapshot saves about 700 MB, and the restore takes about 5 minutes longer—a worthwhile tradeoff.

What is included in a snapshot? The data you created or configured:

IncludedExcluded
models.json (keys and provider settings)venv/ (the Python portion of the 720 MB)
sessions/ (your conversation history)playwright-cache/ (the Chromium portion of the 720 MB)
skills/ (Skills you installed or wrote)projects/**/clips/, projects/**/segments/ (intermediate video files)
home/pi-cwd-*/ (AI working directories)home/**/node_modules/, home/**/.cache/ (npm caches)
rclone/rclone.conf (Google Drive authorization)sessions/*.jsonl.tmp (partially written temporary files)
auth.json (OAuth token) and .video-tools-installed (sentinel)

In short: your valuable data is retained; large files that the machine can download again are excluded. Chapter 20 covers the complete backup and restore process.

How to use the reset_video_tools switch

Pi Agent's Add-on Configuration tab includes a special switch named reset_video_tools. It has one purpose: delete the sentinel, virtual environment, and Playwright cache so that initialization can download a clean copy.

Follow these steps:

  1. Open the add-on's Configuration tab

    Open Home Assistant → Settings → Add-ons → Pi Agent → Configuration. This is the same page that contains log_level and timezone.

  2. Change reset_video_tools from false to true

    It is a Boolean switch. Turn it on (true). No files are removed until the add-on starts with this setting.

  3. Select SAVE

    Save the setting. If Home Assistant says that the add-on must restart for the change to take effect, that is expected.

  4. Return to the Info tab and select RESTART

    On restart, s6-overlay's pi-web/run reads reset_video_tools: true, 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. The independent video-tools-init oneshot also starts during boot. Because the reset and initializer run in parallel, check the Logs tab: if initialization skipped before the reset removed the sentinel, restart the add-on once more to begin the 3–8 minute download.

  5. Do not turn it off manually unless automatic reset fails

    This behavior was added in v0.13.0 and corrects advice in older tutorials, including early versions of this site. After deleting the files, the startup script calls the Supervisor API (POST /addons/self/options with {"options": {"reset_video_tools": false}}) to set the option back to false. The log entry reset_video_tools auto-reverted to false confirms success. If the Supervisor API call fails—for example, because SUPERVISOR_TOKEN is unavailable or curl reaches its 5-second timeout—the log warns Could not auto-revert reset_video_tools — turn it OFF manually to avoid re-clearing next boot. Only then should you return to Configuration and turn the switch off yourself.

Danger: Do not stop or restart the add-on while the clean download is running. Interrupting it can leave an incomplete virtual environment or Chromium download. If that happens and later attempts produce unusual errors, perform another reset and let installation finish.

When to use reset_video_tools

This switch is a maintenance escape hatch, not a routine operation. Use this table to decide when it is appropriate:

SituationReset?Why
A video-pipeline Skill repeatedly fails, and the logs do not reveal why You can reset The virtual environment may be incomplete, or a failed pip installation may have left damaged files. Recreating the entire toolset is often the fastest diagnostic step.
Chromium is too old to capture a site's current content, such as newer CSS You can reset Resetting installs the Chromium build required by the Playwright version downloaded at that time. This indirectly updates the browser.
The log contains “WARNING: pip install failed” or “chromium download failed” You can reset, after checking the network The first installation failed without creating the sentinel, but the virtual environment may be incomplete. A reset provides a clean retry.
The disk is almost full, and you want to recover 720 MB Do not reset to save space A reset deletes the files only to download them again. Setting VIDEO_PIPELINE_ENABLED to false does not disable the HA add-on's initializer. See the section on skipping the download for the practical options.
The video pipeline works, but you want to “make sure the environment is clean” Do not reset There is no benefit. Downloading 720 MB again takes 3–8 minutes and uses your bandwidth.
You just upgraded Pi Agent, such as v0.13→v0.14 Do not reset Upgrades do not modify venv or playwright-cache because they are stored on your persistent volume. Reset only if the CHANGELOG explicitly requires it.
You just restored a Home Assistant snapshot No manual reset is required The snapshot omits venv and playwright-cache. Even if it restores the sentinel, the missing executable makes the first-start check fail, so initialization runs automatically. Wait for it to finish.

The rule is simple: reset when the tools are broken, not merely to make them feel clean.

Can you save 720 MB if you do not use the video pipeline?

The honest answer is not through a supported HA add-on setting. This follows from Pi Agent's design:

  1. video-tools-init is an s6-overlay oneshot with no off switch

    The HA add-on registers video-tools-init as an s6-overlay oneshot under rootfs/etc/s6-overlay/s6-rc.d/video-tools-init/. It starts in parallel with pi-web and nginx so that chat is available while video tools install. The Configuration tab has no option that disables this oneshot. The script also has no conditional check such as if VIDEO_PIPELINE_ENABLED; that variable does not turn off initialization in the HA add-on.

  2. Avoiding installation requires an unsupported customization

    You could fork Woow_ha_pi_agent_add_on, remove rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/video-tools-init, build your own image, and publish it through your own add-on repository. Otherwise, the supported add-on keeps the files even if you never invoke video features. Maintaining a custom fork is considerably more work than leaving 720 MB on disk.

  3. The image still contains about 300 MB of ffmpeg, fonts, and rclone

    Those packages are built into the Docker image with apt install. The add-on offers no way to omit them. Removing them also requires a custom Dockerfile and image.

  4. Practical advice: let installation run once

    On a 32 GB drive—the official Home Assistant minimum—720 MB is roughly 2% of capacity, and the download normally occurs only once. Keeping the tools is simpler than maintaining a reduced custom image. If 720 MB is decisive, the underlying storage is probably too small for comfortable Home Assistant operation.

Tip: To recover space, start with the cleanup list in Chapter 20. Old content in sessions/, intermediate video files in clips/, and old snapshots in /backup/ can each consume gigabytes. The 720 MB video-tools installation is usually a poor cleanup target because the add-on will recreate it when its required-file check fails.

How to monitor progress and distinguish slow from stuck

You do not need to wait blindly during the 720 MB download. Open the add-on's Logs tab and find lines beginning with video-tools-init:. bashio prints these entries alongside the pi-web logs. A normal sequence looks like this:

[INFO] Starting pi-web on 0.0.0.0:30141 (data: /data/pi-agent, home: /data/pi-agent/home)
[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

Here is what each entry means:

Log entryMeaningApproximate time remaining
Starting pi-web on 0.0.0.0:30141pi-web is available for chat; the video-tools-init oneshot runs in parallel3–8 minutes for video tools
first-run install startingInstallation has begun; the required-file check did not passAbout 3–8 minutes
creating venvThe Python virtual environment is being createdAnother 2–7 minutes
installing python packages into venvpip is installing playwright, edge-tts, pyyaml, and mutagenAnother 2–6 minutes
downloading ChromiumThe largest download, approximately 500–600 MB, has begunAnother 2–5 minutes
install complete — sentinel writtenEverything is ready; the video pipeline can run0 minutes

If a stage produces no new output for more than 10 minutes and shows no error, the network or download service is probably slow. Check the following:

  • Open Settings → System → Network in Home Assistant—confirm that the host has internet access. If it does not, repair the connection rather than waiting.
  • Open Settings → Add-ons → Pi Agent → Info and inspect CPU and memory use—continued CPU activity or increasing memory use suggests that installation is still working. Wait.
  • If the log contains “WARNING: chromium download failed”—that installation attempt failed. It does not create the sentinel, so video-tools-init tries again at the next start. You do not need to reset manually unless incomplete files cause later problems.
Concept: video-tools-init follows the principle that failure must not block pi-web. Even if Chromium fails to download, chat remains available. The AI interface and the video pipeline are independent, so a failure in one does not disable the other.

When the 720 MB does—and does not—download again

This table covers common Pi Agent maintenance actions and whether they trigger another download:

ActionDownloads again?Why
Restart the add-on from the Info tab No The sentinel and virtual environment remain, so video-tools-init finishes its check immediately.
Restart Home Assistant (Configuration → Restart Home Assistant) No The sentinel remains under /data/pi-agent/; restarting does not remove it.
Upgrade a Pi Agent patch release (v0.13.1 → v0.13.2) No Only the image changes. Your persistent volume, including the sentinel and tools, remains.
Upgrade a Pi Agent minor release (v0.13 → v0.14) Usually not It behaves like a patch upgrade unless the CHANGELOG explicitly requires a reset, which should be rare.
Uninstall Pi Agent and reinstall it without retaining data Yes Removing the add-on's data clears all of /data/pi-agent/, including the sentinel and downloaded tools.
Uninstall, select “Keep data,” and then reinstall No The volume, sentinel, and tools remain.
Set reset_video_tools to true and restart Yes The startup script removes the sentinel, virtual environment, and cache. If the parallel initializer already skipped on that boot, restart once more after the switch returns to false.
Restore a Home Assistant snapshot on new hardware Yes The snapshot excludes venv and playwright-cache (see Snapshot exclusions). Although the sentinel is restored, the missing virtual-environment executable makes the check fail, so installation runs automatically.
Replace the Home Assistant host's SSD and rsync the entire /data directory No If the sentinel, virtual environment, and cache all arrive intact, the check passes as before.

Routine upgrades and restarts do not trigger another download. It normally happens only after removing data, restoring a snapshot that excludes rebuildable tools, or deliberately resetting video tools. Most people therefore see the 3–8 minute process only once.

Troubleshooting

  1. The log remains at downloading Chromium for more than 30 minutes

    This is usually a network problem. Playwright retrieves Chromium from its browser download service, which can be slow or blocked on some campus networks, corporate networks, proxies, or ISPs. Check CPU and network activity on the add-on's Info tab. Continued activity suggests a slow download; no activity may indicate a broken connection. Try again at a quieter time, temporarily bypass a VPN or proxy if appropriate, or use reset_video_tools for a clean retry after fixing connectivity.

  2. The log shows WARNING: pip install failed and then continues

    The pip step failed, but video-tools-init.sh handles the failure with exit 0 so that it does not block pi-web. Chat therefore works while video Skills fail, often with a message that edge-tts is missing. Review the complete Skill output and confirm that the host can reach the package source. Then run reset_video_tools for a clean retry.

  3. Every download step finishes, but /data/pi-agent/.video-tools-installed does not exist

    If pip and Playwright succeeded but the sentinel could not be created with touch, the data directory may have incorrect permissions. Run ls -la /data/pi-agent/ in an authorized add-on shell and inspect the owner. Search the log for “Permission denied.” Reinstalling without retaining data lets Home Assistant recreate the volume, but it also deletes Sessions, Skills, keys, and other persistent data. Back up anything important before considering that last-resort option.

  4. A video-pipeline Skill fails silently and produces no video

    This can indicate an incomplete virtual environment: modules appear to exist, but a damaged dependency stops execution. Inspect the full Skill output in the Logs tab and look for a Python traceback. If the cause remains unclear, use reset_video_tools to rebuild the virtual environment.

  5. Pi Agent cannot download because disk space is low

    Chromium and the virtual environment need about 700 MB, plus temporary download space. Keep at least 2 GB free; Chapter 2 recommends 3 GB of free space on the Home Assistant host. pip reports No space left on device when capacity runs out. Remove old snapshots under /backup/, old intermediate files under /data/pi-agent/clips/ and segments/ (see Chapter 17), or unneeded conversations under /data/pi-agent/sessions/. Then reset and try again.

  6. reset_video_tools fails to return to false, so every restart clears the tools

    The add-on normally calls the Supervisor API to return the switch to false, but that call can rarely fail because of a Supervisor issue or a missing SUPERVISOR_TOKEN. Open Configuration and check whether reset_video_tools remains true, then look for Could not auto-revert reset_video_tools in the Logs tab. If both confirm the problem, turn the switch off manually and save. If it recurs, check whether the add-on is older than 0.13.0; earlier versions do not implement automatic reset.

  7. You want to clear only the sentinel instead of changing Configuration

    DOCS.md describes a narrower troubleshooting method. Open an authorized shell attached to the Pi Agent add-on. The source shows docker exec -it <discovered-container-name> bash as an example, but actual container names vary by installation; discover and verify the name before using a host-level command. Run rm /data/pi-agent/.video-tools-installed, then select RESTART on the Info tab. Removing only the sentinel causes pip and Playwright checks to run again without first deleting venv or playwright-cache. Use the full reset when those directories may be damaged.

FAQ

Does the 720 MB use space on the main Home Assistant drive?
Yes. It uses the Home Assistant host's main drive. Inside the container, the add-on's data directory appears as /data/pi-agent/. On HAOS, the host stores add-on data in a location resembling /usr/share/hassio/addons/data/<pi-agent-slug>/. The same drive must also accommodate Home Assistant, the recorder database, and other add-ons. Monitor it under Settings → System → Storage.
Can I install the 720 MB offline?
Not through the normal initializer. pip must download Python packages from PyPI, and Playwright must download Chromium; both sources require outbound internet access. A tightly firewalled environment must allow the add-on to reach the required HTTPS endpoints. An advanced offline migration could archive /data/pi-agent/venv/ and playwright-cache/ from an online Home Assistant system with the same architecture and restore them to the same paths before creating the sentinel. The safer alternative is a custom add-on image containing the tools, but maintaining one is a substantial project.
Will Pi Agent automatically update Chromium when Playwright releases a new version?
No. The installed Chromium build remains in playwright-cache and later starts skip installation. Its version corresponds to the installed playwright pip package. To update it, wait until a Pi Agent release supports the desired Playwright version and then reset, or deliberately use reset_video_tools so pip installs Playwright again and fetches its corresponding Chromium build. Do not reset a working installation merely to chase new versions.
After enabling reset_video_tools, what confirms the action?
Save the setting and restart the add-on if Home Assistant does not do so automatically. Then watch the Logs tab. The entry reset_video_tools auto-reverted to false confirms that the one-time switch returned to its safe default. Because reset and video-tools-init are parallel services, the initializer may have checked the old sentinel before deletion. If you see a skip message but no new installation sequence, restart once more after the switch has returned to false. You need to turn the switch off yourself only when the log reports Could not auto-revert.
What happens if I shut down Home Assistant while video-tools-init is running?
Incomplete files will probably remain, but recovery is straightforward. The sentinel is created only after pip and Chromium installation succeed, so an interruption normally leaves it absent and video-tools-init runs again at the next start. The virtual environment or Chromium directory may nevertheless be only partly populated. pip and Playwright can sometimes repair these files on the next attempt. If the video pipeline continues to fail, use reset_video_tools for a clean rebuild.
Do Raspberry Pi, x86 NUC, and arm64 mini PC download times differ greatly?
Network bandwidth matters most; CPU performance is secondary. Most of the 720 MB is downloaded rather than compiled: Playwright retrieves a ready-made Chromium build, and most pip packages provide wheels. On a 500 Mbps connection, a Raspberry Pi and NUC may take 3–4 minutes and 2–3 minutes respectively. On a 30 Mbps connection, both may take 15 minutes or more. A few pip packages may require local build work, adding some time on a Raspberry Pi.
If I uninstall Pi Agent to save 720 MB, will my conversations and Skills remain after reinstallation?
It depends on whether you select “Keep data” during uninstall. If you keep it, sessions/, skills/, models.json, rclone authorization, and video tools all remain on the volume. Reinstallation starts quickly but does not recover the 720 MB. If you do not keep data, everything is deleted: conversations, Skills, keys, authorization, and video tools. Reinstallation starts from scratch and downloads the tools again. See Chapter 20 before removing persistent data.
Can I manually delete /data/pi-agent/venv/ and playwright-cache/ if I do not use video?
Not as a durable, supported way to save space. On the next add-on start, video-tools-init checks both the sentinel and the executable under venv. Using reset_video_tools deliberately deletes these directories. A future version of video-tools-init may add still more integrity checks. Deleting the virtual environment already makes the current check fail, so the add-on installs the tools again. Setting VIDEO_PIPELINE_ENABLED=false through Appendix A's env_vars does not disable the HA add-on's s6 oneshot either. A true chat-only build requires a custom add-on image; for the supported image, leave the tools installed.
Should I reset after every Pi Agent upgrade?
No. venv and playwright-cache live on your persistent volume and normally remain compatible across image upgrades. Reset only when the new version's CHANGELOG explicitly says that video tools must be rebuilt—for example, after a breaking Playwright, edge-tts, or Python change. The upgrade checklist in Chapter 21 calls out versions that require special handling. Resetting after every upgrade wastes time and bandwidth.