Jellyfin Plugin¶
The Tentacle plugin enhances Jellyfin's web interface with a custom home screen, hero spotlight banner, Discover tab, and Activity tab. It communicates with the Tentacle dashboard via API to render per-user content.
Installation¶
- In Jellyfin, go to Dashboard → Plugins → Repositories
- Click Add and paste:
- Go to Catalog, find Tentacle, click Install
- Restart Jellyfin
- Go to Dashboard → Plugins → Tentacle and set the Tentacle URL (e.g.,
http://192.168.1.100:8888)
Restart required
The plugin won't be active until you restart Jellyfin. After restart, refresh your browser to see the changes.
What the Plugin Adds¶
Custom Home Screen¶
The plugin replaces the default Jellyfin home page with your Tentacle-configured layout:
- Hero spotlight banner — Large cinematic banner at the top that cycles through featured content with Ken Burns zoom and crossfade transitions
- Playlist rows — Your enabled playlists shown as horizontal scrollable rows
- Native sections — Continue Watching, Next Up, and other Jellyfin sections mixed in
The layout is fetched from Tentacle's API per user, so each Jellyfin user sees their own configured home screen.
Discover Tab¶
A browsing tab injected into the Jellyfin home page:
- Trending — What's popular on TMDB right now
- Popular — Most popular movies and series
- Upcoming — Titles not yet released
- Search — Find anything on TMDB
- Status badges (In Library, Downloading, Add)
- One-click add to Radarr/Sonarr with quality profile selection
Activity Tab¶
A real-time status tab showing:
- Active downloads — Progress bars, ETA, quality info
- Unreleased content — Countdown badges for titles you're waiting for
- Purple badge count in the tab header
The Activity tab polls every 3 seconds for live updates.
Configuration¶
The only required setting is the Tentacle URL — the address where your Tentacle dashboard is running.
- Go to Jellyfin Dashboard → Plugins → Tentacle
- Set Tentacle URL (e.g.,
http://192.168.1.100:8888) - Save
Use internal addresses
If Jellyfin and Tentacle are on the same network, use the internal IP address. Don't use a Cloudflare tunnel or external URL for the plugin connection — it should be local network traffic.
How It Works¶
Harmony Patching¶
The plugin uses Harmony (a .NET patching library) to inject custom JavaScript and CSS into Jellyfin's index.html. This is how the home screen, Discover tab, and Activity tab are added without modifying Jellyfin's source code.
API Communication¶
The plugin acts as a proxy between the Jellyfin web frontend and the Tentacle backend:
Plugin API endpoints:
| Endpoint | Purpose |
|---|---|
GET /TentacleHome/Sections | Home screen rows + built-in sections |
GET /TentacleHome/Hero | Hero spotlight items |
GET /TentacleHome/HeroConfig | Hero configuration |
GET /TentacleDiscover/Items | Trending/popular/upcoming from TMDB |
GET /TentacleDiscover/Search | TMDB search |
GET /TentacleDiscover/Activity | Real-time download queue |
POST /TentacleDiscover/AddToRadarr | Add movie to Radarr |
POST /TentacleDiscover/AddToSonarr | Add series to Sonarr |
POST /Tentacle/Refresh | Clear all plugin caches |
Caching¶
- Home config — Cached for 5 seconds per user
- Discover data — Trending/popular cached for 30 minutes
- Discover config — Cached for 5 minutes
- Activity — Never cached (always fresh)
Caches are cleared when POST /Tentacle/Refresh is called (triggered automatically by Tentacle after settings changes).
Per-User Content¶
The plugin forwards the Jellyfin user ID with every request to the Tentacle API. This is how each user gets their own home screen, playlists, and content.
Updating¶
Plugin updates are automatic:
- Tag a new release in the Tentacle repo:
git tag plugin-v2.x.x && git push origin plugin-v2.x.x - GitHub Action builds the plugin, creates a release, and updates the manifest
- Jellyfin auto-discovers the update from the manifest URL
- Restart Jellyfin to install the new version
You can also manually check for updates in Jellyfin → Dashboard → Plugins → Catalog.
Graceful Fallback¶
If the Tentacle dashboard is unreachable, the plugin falls back gracefully to the standard Jellyfin home screen. No error pages — you just see the default Jellyfin layout until the connection is restored.
Troubleshooting¶
Home screen not showing
- Verify the plugin is installed: Dashboard → Plugins → My Plugins → Tentacle
- Check the Tentacle URL is correct in plugin settings
- Restart Jellyfin after installing or updating
- Hard refresh your browser (Ctrl+Shift+R) to clear cached JS/CSS
Discover tab not appearing
The Discover tab must be enabled in Tentacle: go to Jellyfin → Discover and toggle "Show in Jellyfin". The plugin re-checks this setting on every page visit.
Add to Radarr/Sonarr fails in Jellyfin
The plugin passes the Jellyfin user ID to Tentacle for admin verification. Make sure the logged-in Jellyfin user has admin permissions in Tentacle.