Visit the docs for more info: https://docs.tdarr.io/docs/plugins/basics
nvm (Node Version Manager) lets you install and switch between Node.js versions.
- macOS / Linux: follow the install instructions at https://github.com/nvm-sh/nvm (copy the
curlcommand from that page and paste it into your terminal). Then close and reopen your terminal. - Windows: install nvm-windows instead from https://github.com/coreybutler/nvm-windows/releases (download
nvm-setup.exeand run it).
Then install and use Node 22:
nvm install 22
nvm use 22
Verify:
node -v
npm -v
You should see a version starting with v22..
In your terminal, navigate to where you want the code (for example your home folder or C:/), then run:
git clone https://github.com/HaveAGitGat/Tdarr_Plugins.git
cd Tdarr_Plugins
From inside the Tdarr_Plugins folder:
npm install
Run ESLint (auto-fix code style issues):
npm run lint:fix
Check plugins using some extra custom rules:
npm run checkPlugins
Run tests:
npm run test
Run flow plugin tests:
npm run test:flows
-
Clone this repo (see step 2 above if you haven't already).
-
Open a terminal and set the
pluginsDirenv variable to the location where you cloned this repo. Use the command that matches your OS / shell:- macOS / Linux:
export pluginsDir=/path/to/Tdarr_Plugins - Windows (PowerShell):
$env:pluginsDir="C:/Tdarr_Plugins" - Windows (Command Prompt):
set pluginsDir=C:/Tdarr_Plugins
Then, in the same terminal (so it inherits the env variable), start Tdarr Server or Tdarr Node by running its executable. For example:
- macOS / Linux:
./Tdarr_Serveror./Tdarr_Node - Windows:
Tdarr_Server.exeorTdarr_Node.exe
The env variable only applies to processes started from that same terminal session. If you close the terminal, you will need to set the variable again before starting Tdarr.
- macOS / Linux:
-
Browse the typescript plugins here https://github.com/HaveAGitGat/Tdarr_Plugins/tree/master/FlowPluginsTs/CommunityFlowPlugins and edit one locally, or create a new one.
-
Install TypeScript globally with
npm i -g typescript@5.9.3, then runtscfrom the repo folder to compile your changes.tscreads the TypeScript sources fromFlowPluginsTs/and writes the compiled JavaScript intoFlowPlugins/(the folder Tdarr actually loads). Do not edit files underFlowPlugins/directly, they will be overwritten on the nexttscrun. -
Refresh the browser and Tdarr will pick up the changes.
Note: pluginsDir directories that contain a .git folder (such as when cloning this repo) will cause Tdarr to skip plugin updates, to prevent overwriting your development changes.
