Pulsarr

jamcalliAGPL-3.0活跃维护

实时监控 Plex 愿望清单,自动把想看的内容同步到 Sonarr 和 Radarr 下载,支持多实例、智能路由和 Discord 通知,省去手动找片加片的麻烦。

Pulsarr: Real-time Plex watchlist monitoring and content acquisition tool. Seamlessly sync Plex watchlists with Sonarr and Radarr, featuring intelligent predicated content routing, multi-instance support, Discord, and Apprise notifications. Automate your media library management with a modern, user-friendly interface.

v1.1.1发布于 2026-11-08 22:03 UTC765star +3 / 7 天17fork同步于 2026-11-10 11:55 UTC

怎么上手

由 README 提炼,执行前请确认
TZ=America/Los_Angeles
docker compose up -d
硬件要求按 README 说明

README 未说明硬件要求,仅提供 Docker 镜像及 Linux/Windows/macOS 原生安装包

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

把 Plex 观看列表自动转成 Sonarr/Radarr 请求,省去手动添加

实时监控 Plex 愿望清单,自动把想看的内容同步到 Sonarr 和 Radarr 下载,支持多实例、智能路由和 Discord 通知,省去手动找片加片的麻烦。

核心能力

  • 监控自己和好友的 Plex 观看列表并自动同步
  • 用嵌套 all/any/not 谓词规则路由到指定实例和目录
  • 支持多 Sonarr/Radarr 实例并可在实例间复制内容
  • 提供审批、配额、排除与删除同步管理请求
  • 通过 Discord、Plex 推送、Webhook 和 Apprise 通知

容易踩的坑

好友的 Plex 观看列表需在其隐私设置中对好友可见,否则读到的列表为空;需先创建 .env 和 docker-compose.yml 再启动;默认访问端口为 3003

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v1.1.1
  1. v1.1.1最新正式版2026-11-08 · 2026-11-08 22:03 UTC

    Changes

    🐛 Bug Fixes

    • fix(approval): route approve and reject through the service and restore show and movie info in the review dialog (#1594, #1603) @jamcalli
    • fix(plex-labels): skip label writes when nothing changed (#1602) @jamcalli

    🧰 Maintenance

    • refactor(config): move config update logic into a config service (#1604) @jamcalli
    • refactor(routes): delete uncalled quota, content-router and scheduler routes with their schemas and methods (#1598, #1599, #1601) @jamcalli
    • refactor(plugins): align plugin names with files and declare missing deps (#1593) @jamcalli

    Docker

    docker pull lakker/pulsarr:1.1.1
    

    GitHub Container Registry:

    docker pull ghcr.io/jamcalli/pulsarr:1.1.1
    

    Synology NAS / Legacy Systems (Linux kernel < 4.11):

    docker pull lakker/pulsarr:1.1.1-node
    docker pull ghcr.io/jamcalli/pulsarr:1.1.1-node
    

    Contributors

    @jamcalli

  2. v1.1.02026-11-02 · 2026-11-02 20:26 UTC
    查看更新说明

    Changes

    🚀 Features

    • feat(plex): option to check only the admin's server when skipping content that already exists on Plex, instead of always checking owned and shared servers (#1577) @jamcalli

    🐛 Bug Fixes

    • fix(delete-sync): fail closed when protection, tag or exclusion reads fail (#1582) @jamcalli
    • fix(database): dedupe notification claims and index guid lookups (#1584) @jamcalli
    • fix(instance-sync): match content through the shared guid index and stop reconcile rewriting instance rows on existing items (#1562) @jamcalli
    • fix(migration): clear seeded rows and copy in one transaction when moving from SQLite to PostgreSQL (#1590) @jamcalli
    • fix(client): show absolute timestamps and keep English wording with regional date and number formats (#1583, #1589) @jamcalli

    ⚡ Performance

    • perf(arr): check the local library instead of remote lookups and share arr caches through an lru-cache registry (#1574, #1575) @jamcalli

    🧰 Maintenance

    • refactor(config): store config as one json document (#1585) @jamcalli
    • refactor(arr): one generic instance manager with a shared HTTP client, webhook lifecycle and connection checks (#1567, #1568, #1569) @jamcalli
    • refactor(caches): move app caches onto the registry and invalidate on events (#1576) @jamcalli
    • refactor(database): derive method types and drop dead methods (#1564) @jamcalli
    • refactor(tags): remove the finished tag format migration and refs route (#1565) @jamcalli
    • test(notifications): declare vi before mocking the webhook channel (#1591) @jamcalli

    🔄 Dependencies

    • chore(docs-deps): update docs site dependencies, fumadocs and next to v16.4.3 (#1572, #1573, #1586, #1587) @renovate[bot]
    • chore(deps): update node.js to v24.22.2 (#1571) @renovate[bot]
    • chore(deps): update build tools (#1551) @renovate[bot], @jamcalli
    • chore(deps): lock file maintenance (#1588) @renovate[bot]

    Docker

    docker pull lakker/pulsarr:1.1.0
    

    GitHub Container Registry:

    docker pull ghcr.io/jamcalli/pulsarr:1.1.0
    

    Synology NAS / Legacy Systems (Linux kernel < 4.11):

    docker pull lakker/pulsarr:1.1.0-node
    docker pull ghcr.io/jamcalli/pulsarr:1.1.0-node
    

    Contributors

    @jamcalli and @renovate[bot]

  3. v1.0.32026-10-30 · 2026-10-30 00:03 UTC
    查看更新说明

    Changes

    🧰 Maintenance

    • refactor(auth): compose v1 auth strategies and scope browser access (#1580) @jamcalli

    Docker

    docker pull lakker/pulsarr:1.0.3
    

    GitHub Container Registry:

    docker pull ghcr.io/jamcalli/pulsarr:1.0.3
    

    Synology NAS / Legacy Systems (Linux kernel < 4.11):

    docker pull lakker/pulsarr:1.0.3-node
    docker pull ghcr.io/jamcalli/pulsarr:1.0.3-node
    

    Contributors

    @jamcalli

  4. v1.0.22026-10-29 · 2026-10-29 20:10 UTC
    查看更新说明

    Changes

    🐛 Bug Fixes

    • fix(watchlist): scope guid lookups to the item's media type (#1563) @jamcalli
    • fix(tags): restrict arr tag prefixes to letters, numbers and hyphens (#1566) @jamcalli

    🧰 Maintenance

    • refactor(auth): scope the auth hook to the v1 routes (#1578) @jamcalli
    • ci(test): shard tests across a four-job matrix (#1561) @jamcalli

    Docker

    docker pull lakker/pulsarr:1.0.2
    

    GitHub Container Registry:

    docker pull ghcr.io/jamcalli/pulsarr:1.0.2
    

    Synology NAS / Legacy Systems (Linux kernel < 4.11):

    docker pull lakker/pulsarr:1.0.2-node
    docker pull ghcr.io/jamcalli/pulsarr:1.0.2-node
    

    Contributors

    @jamcalli

  5. v1.0.12026-10-27 · 2026-10-27 21:57 UTC
    查看更新说明

    Changes

    🐛 Bug Fixes

    • fix(arr): accept the empty notification test response from Radarr 7 (#1559) @jamcalli
    • fix(status-sync): index guid matching and derive rows from junctions (#1558) @jamcalli

    🧰 Maintenance

    • ci(release): publish signed images to GHCR alongside Docker Hub, with an SBOM attested for each platform (#1557) @jamcalli

    Docker

    docker pull lakker/pulsarr:1.0.1
    

    GitHub Container Registry:

    docker pull ghcr.io/jamcalli/pulsarr:1.0.1
    

    Synology NAS / Legacy Systems (Linux kernel < 4.11):

    docker pull lakker/pulsarr:1.0.1-node
    docker pull ghcr.io/jamcalli/pulsarr:1.0.1-node
    

    Contributors

    @jamcalli

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Version License Bun Discord Docker Pulls Docker Image Size GitHub Stars


    Pulsarr is a Plex watchlist monitor for Sonarr and Radarr. It watches the watchlists of your Plex account and your Plex friends, sends new titles to a Sonarr or Radarr instance, and notifies the people who added them when they're available. Users do all of it from the Plex app, with no separate account to log into.

    Pulsarr works through Plex friendship. It can only read the watchlists of people who are friends of the Plex account that owns the server, and each friend's watchlist has to be visible to friends in their Plex privacy settings. A private watchlist looks empty.

    Quick start

    Create a .env with your time zone and a docker-compose.yml next to it, then run docker compose up -d and open http://<your-server>:3003.

    TZ=America/Los_Angeles
    
    services:
      pulsarr:
        image: lakker/pulsarr:latest
        container_name: pulsarr
        ports:
          - "3003:3003"
        volumes:
          - ./data:/app/data
        environment:
          - PUID=1000
          - PGID=1000
        restart: unless-stopped
        env_file:
          - .env
    

    The image is also published as ghcr.io/jamcalli/pulsarr.

    Other settings go in .env or under environment:. The time zone is all first-run setup needs. The quick start guide covers the rest, including the Plex privacy setting.

    Features

    • Watchlist sync. New items are picked up within seconds with Plex Pass, and about every five minutes without it.
    • Multi-user. Your friends' watchlists too, with per-user sync, approval, notification and quota settings.
    • Content routing. A predicate rule builder with nested all/any/not groups. Conditions: Genres, User, Plex list, Year, Language, Certification, Streaming services, IMDb rating, IMDb votes, RT critic score, RT audience score, TMDB rating, Season, Series status and Movie status. Each route picks the instance, root folder, quality profile, monitoring and tags, or skips the title, and can require approval or bypass quotas. One request can go to several instances.
    • Multiple Sonarr and Radarr instances. Connect as many as you like and copy content between them.
    • Approvals and quotas. Hold requests for your decision and cap how much each user can request, from the web UI or Discord.
    • Delete sync. Remove content once nobody wants it, by watchlist or by tag, with playlist protection.
    • Exclusions. Block titles from being requested, for one user or everyone.
    • Session monitoring. Grow rolling shows in Sonarr as people watch them.
    • User tags and Plex labels. Mark content in Sonarr, Radarr and Plex by who has it on their watchlist.
    • Notifications. Discord bot and channels, Plex mobile push, webhooks, and anything Apprise reaches.
    • REST API. Everything the web UI does, with API keys and interactive docs at /api/docs.

    Documentation

    Everything is at jamcalli.github.io/Pulsarr. Start with how Pulsarr works, then installation for Docker, the native installers for Linux, Windows and macOS, and PostgreSQL.

    Hosted option

    ElfHosted offers managed Pulsarr hosting with pre-configured media server bundles. 33% of every Pulsarr subscription supports the project.

    Community integrations

    Transparency

    Pulsarr began as a TypeScript rewrite of Watchlistarr and has grown with contributions from the community. It's developed with AI assistance. Every decision about architecture, features and direction is made by a person, and every change is reviewed before it ships.

    Security is a priority. Renovate keeps dependencies current, auth follows Fastify best practices, and every endpoint is protected by default. To report a security concern, see SECURITY.md.

    Contributing

    Pull requests are welcome. Fork the repo, branch from develop, and open the PR against develop.

    Support

    Acknowledgements

    License

    Pulsarr is licensed under the GPL. See the LICENSE file for details.

    Repository activity

    Repobeats analytics

    Star history

    Contributors