CodecFork.generateVideoFramesLibav and generateVideoFramesGstreamer are async generator functions, so their bodies -- including the call_later(10, timeoutExit) that lets the worker kill itself -- do not run until the caller requests the first frame. The PluginFork handle is discarded at handout in LibavGenerator and GstreamerGenerator, so a worker that is handed a session but never iterated has no watchdog and no reachable terminate(), and idles for the life of the plugin host. aclose() on a never-started async generator returns without executing the body, so even a consumer that closes the RPC proxy cannot trigger the self-destruct. Make the two methods coroutines that return the inner generator. rpc.py does await maybe_await(invoke(*args)) before serializing, so the async iterator proxy seen by the caller is unchanged, but the watchdog is armed as soon as the fork is committed to a session. Also keep the PluginFork handle at the call sites and terminate it if the session cannot be handed to the caller. Fixes #2138 Claude-Session: https://claude.ai/code/session_018kjDzffi8VZKA1mn6nrGfo Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Scrypted
Scrypted is a high performance home video integration platform and NVR with smart detections. Instant, low latency, streaming to HomeKit, Google Home, and Alexa. Supports most cameras. Learn more.
Installation and Documentation
Installation and camera onboarding instructions can be found in the docs.
Community
Scrypted has active communities on Discord, Reddit, and Github. Check them out if you have questions!
Development
Debug Scrypted Plugins in VS Code
# this is an example for homekit.
# check out the code
git clone https://github.com/koush/scrypted
cd scrypted
# get the dependencies for the server and various plugins
./npm-install.sh
# open the homekit project in VS Code
code plugins/homekit
You can now launch (using the Start Debugging play button) the HomeKit Plugin in VS Code. Please be aware that you do not need to restart the Scrypted Server if you make changes to a plugin. Edit the plugin, launch, and the updated plugin will deploy on the running server.
If you do not want to set up VS Code, you can also run build and install the plugin directly from the command line:
# currently in the plugins/homekit directory.
npm run build && npm run scrypted-deploy 127.0.0.1
Plugin SDK Documentation
Want to write your own plugin? Full documentation is available here: https://developer.scrypted.app
Debug the Scrypted Server in VS Code
Debugging the server should not be necessary, as the server only provides the hosting and RPC mechanism for plugins. The following is for reference purpose. Most development can be done by debugging the relevant plugin.
# check out the code
git clone https://github.com/koush/scrypted
cd scrypted
# get the dependencies for the server and various plugins
./npm-install.sh
# open server project in VS Code
code server
You can now launch the Scrypted Server in VS Code.