Skip to content

Releases: talkaboutdesign/tiklive

v0.6.0-nightly.20261013173804

Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Oct 17:45
206d9ff

Minor Changes

  • #21 2258cef Thanks @talkaboutdesign! - Actions:

    • a join trigger, for when a viewer joins the stream, with once per viewer per stream (on by default)
    • a friends audience (mutual follows), and followers now includes friends
    • a minimum follower count on chat and join triggers, for keeping throwaway accounts out
    • a {followers} placeholder for the viewer's follower count
    • presets: one-click starting points for new actions in the editor

    When a session reconnects into a new room, the action rules are told the previous stream ended (TikTok doesn't always send streamEnd), so like milestones and once-per-stream joins start fresh.

  • #17 7c6bb18 Thanks @talkaboutdesign! - The app has a new look:

    • a sidebar with your account and live status, navigation, the sound mini player and the update button
    • light and dark themes, following your system by default
    • a Settings page for your username, sound, theme and updates
    • an Overlays page with live previews, per-overlay options and test events

    The Actions player's OBS setup moved to the Overlays page. On macOS the desktop app uses an inset title bar.

  • #16 c1306cd Thanks @talkaboutdesign! - Desktop app: choose Stable or Nightly updates in the new Settings dialog. Nightly builds come out for every merged change. The desktop app has a new icon.

  • #26 5431d32 Thanks @talkaboutdesign! - New goal event for LIVE goals (such as "GIFT GAL"), with progress per target and the top contributors. LiveUser.gifterLevel carries the viewer's gifter level, and the dashboard shows a goal card and "Lv" badges in chat. Demo mode emits goals and gifter levels. Both are additive, so PROTOCOL_VERSION stays at 1.

  • #19 9906806 Thanks @talkaboutdesign! - New Media page: browse, play, rename and delete your sounds, images and videos, upload by drag and drop, and record a new sound (up to 30 seconds) with a trim slider. PATCH /api/media/:id renames a file. The desktop app asks for microphone access when you record, and only allows the microphone and copying links for its own pages.

  • #38 e4350bd Thanks @talkaboutdesign! - - The Media page's search also searches MyInstants (press Enter), and Add copies a sound into your library

    • Viewer names on the dashboard and the Viewers leaderboard, and your own name in the sidebar, open the TikTok profile
    • A MyInstants search with no results now says so, instead of "Couldn't reach MyInstants"
  • #23 63194cb Thanks @talkaboutdesign! - OBS overlays for a subathon timer, a top supporters leaderboard and a spin wheel. Each is on the Overlays page with its own options and a URL builder.

  • #27 03a236e Thanks @talkaboutdesign! - Actions: a {points} placeholder with the viewer's points (including what the triggering event just earned), and an "Answer !points" preset that says "{nickname}, you have {points} points!".

  • #32 d083164 Thanks @talkaboutdesign! - The server now refuses to listen beyond localhost without --token. Pass --allow-no-token to keep the old behaviour.

  • #18 485e74e Thanks @talkaboutdesign! - The dashboard is now a live view: chat with filters for followers, friends, minimum follower count and hidden words, highlighted gifts and subscriptions, a gifts column with top gifters, a way to silence someone in your own view, and an optional video preview. The raw event log is gone. LiveUser gains followerCount, followingCount and followStatus (none, follower or friend), and SessionStatus gains hlsUrl.

  • #25 808a9b3 Thanks @talkaboutdesign! - Viewer points: viewers earn points for chat, gifts, likes, follows, shares, subscriptions and joins, kept per streamer and saved to <data-dir>/points/. A new Viewers page shows the leaderboard, lets you search, adjust a viewer's points and change how many points each action is worth, and reset everyone. The dashboard shows points on chat rows, and the leaderboard overlay has metric=points. New REST routes: GET/DELETE /api/sessions/:username/points, GET/PATCH /api/sessions/:username/points/:userId and PUT /api/sessions/:username/points/settings. See docs/user/points.md.

  • #24 c47aaaa Thanks @talkaboutdesign! - Actions:

    • a webhook step, which sends an HTTP request (POST, PUT or GET) when the action runs. Use it to reach Streamer.bot, Minecraft plugins, Home Assistant, Zapier or other apps on your network. The server sends it, so LAN addresses work
    • without a body, POST and PUT send a JSON description of the action, with the viewer, the event and the template values
    • placeholders work in the webhook's address (percent-encoded) and body
    • the editor's Test button sends the webhook too

Patch Changes

  • #39 92766c6 Thanks @talkaboutdesign! - Keep temporary room lookup failures retryable and bound device cookie requests by the connection timeout.

  • #40 ce13cae Thanks @talkaboutdesign! - Wait for server cleanup and pending viewer points to be saved before the desktop app quits.

  • #44 512f1f3 Thanks @talkaboutdesign! - Skip viewer-points lookups and clock reads when the action rule list is empty, while preserving likes and stream resets.

  • #34 5d37931 Thanks @talkaboutdesign! - Viewer points are saved without pausing live events, and the points files are written compactly, so busy streams stay smooth.

  • #42 1ec55b7 Thanks @talkaboutdesign! - Isolate points-store locking per streamer and avoid sorting every viewer for small leaderboard pages.

  • #46 6945448 Thanks @talkaboutdesign! - Fix slow desktop quit by closing app windows before server cleanup and limiting the desktop server grace period to one second, while preserving the final points save.

  • #29 d2a1c1c Thanks @talkaboutdesign! - Overlays and the browser client no longer show the same chat lines and gifts again after reconnecting.

  • #41 45a9ad9 Thanks @talkaboutdesign! - Prune unused rule cooldown state and reset per-stream rules when room identity changes across session lifetimes.

  • #45 2ac22c7 Thanks @talkaboutdesign! - Share JSON encoding of...

Read more

v0.6.0-nightly.20261013092938

Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Oct 09:38
83d793b

Minor Changes

  • #21 2258cef Thanks @talkaboutdesign! - Actions:

    • a join trigger, for when a viewer joins the stream, with once per viewer per stream (on by default)
    • a friends audience (mutual follows), and followers now includes friends
    • a minimum follower count on chat and join triggers, for keeping throwaway accounts out
    • a {followers} placeholder for the viewer's follower count
    • presets: one-click starting points for new actions in the editor

    When a session reconnects into a new room, the action rules are told the previous stream ended (TikTok doesn't always send streamEnd), so like milestones and once-per-stream joins start fresh.

  • #17 7c6bb18 Thanks @talkaboutdesign! - The app has a new look:

    • a sidebar with your account and live status, navigation, the sound mini player and the update button
    • light and dark themes, following your system by default
    • a Settings page for your username, sound, theme and updates
    • an Overlays page with live previews, per-overlay options and test events

    The Actions player's OBS setup moved to the Overlays page. On macOS the desktop app uses an inset title bar.

  • #16 c1306cd Thanks @talkaboutdesign! - Desktop app: choose Stable or Nightly updates in the new Settings dialog. Nightly builds come out for every merged change. The desktop app has a new icon.

  • #26 5431d32 Thanks @talkaboutdesign! - New goal event for LIVE goals (such as "GIFT GAL"), with progress per target and the top contributors. LiveUser.gifterLevel carries the viewer's gifter level, and the dashboard shows a goal card and "Lv" badges in chat. Demo mode emits goals and gifter levels. Both are additive, so PROTOCOL_VERSION stays at 1.

  • #19 9906806 Thanks @talkaboutdesign! - New Media page: browse, play, rename and delete your sounds, images and videos, upload by drag and drop, and record a new sound (up to 30 seconds) with a trim slider. PATCH /api/media/:id renames a file. The desktop app asks for microphone access when you record, and only allows the microphone and copying links for its own pages.

  • #38 e4350bd Thanks @talkaboutdesign! - - The Media page's search also searches MyInstants (press Enter), and Add copies a sound into your library

    • Viewer names on the dashboard and the Viewers leaderboard, and your own name in the sidebar, open the TikTok profile
    • A MyInstants search with no results now says so, instead of "Couldn't reach MyInstants"
  • #23 63194cb Thanks @talkaboutdesign! - OBS overlays for a subathon timer, a top supporters leaderboard and a spin wheel. Each is on the Overlays page with its own options and a URL builder.

  • #27 03a236e Thanks @talkaboutdesign! - Actions: a {points} placeholder with the viewer's points (including what the triggering event just earned), and an "Answer !points" preset that says "{nickname}, you have {points} points!".

  • #32 d083164 Thanks @talkaboutdesign! - The server now refuses to listen beyond localhost without --token. Pass --allow-no-token to keep the old behaviour.

  • #18 485e74e Thanks @talkaboutdesign! - The dashboard is now a live view: chat with filters for followers, friends, minimum follower count and hidden words, highlighted gifts and subscriptions, a gifts column with top gifters, a way to silence someone in your own view, and an optional video preview. The raw event log is gone. LiveUser gains followerCount, followingCount and followStatus (none, follower or friend), and SessionStatus gains hlsUrl.

  • #25 808a9b3 Thanks @talkaboutdesign! - Viewer points: viewers earn points for chat, gifts, likes, follows, shares, subscriptions and joins, kept per streamer and saved to <data-dir>/points/. A new Viewers page shows the leaderboard, lets you search, adjust a viewer's points and change how many points each action is worth, and reset everyone. The dashboard shows points on chat rows, and the leaderboard overlay has metric=points. New REST routes: GET/DELETE /api/sessions/:username/points, GET/PATCH /api/sessions/:username/points/:userId and PUT /api/sessions/:username/points/settings. See docs/user/points.md.

  • #24 c47aaaa Thanks @talkaboutdesign! - Actions:

    • a webhook step, which sends an HTTP request (POST, PUT or GET) when the action runs. Use it to reach Streamer.bot, Minecraft plugins, Home Assistant, Zapier or other apps on your network. The server sends it, so LAN addresses work
    • without a body, POST and PUT send a JSON description of the action, with the viewer, the event and the template values
    • placeholders work in the webhook's address (percent-encoded) and body
    • the editor's Test button sends the webhook too

Patch Changes

  • #39 92766c6 Thanks @talkaboutdesign! - Keep temporary room lookup failures retryable and bound device cookie requests by the connection timeout.

  • #40 ce13cae Thanks @talkaboutdesign! - Wait for server cleanup and pending viewer points to be saved before the desktop app quits.

  • #44 512f1f3 Thanks @talkaboutdesign! - Skip viewer-points lookups and clock reads when the action rule list is empty, while preserving likes and stream resets.

  • #34 5d37931 Thanks @talkaboutdesign! - Viewer points are saved without pausing live events, and the points files are written compactly, so busy streams stay smooth.

  • #42 1ec55b7 Thanks @talkaboutdesign! - Isolate points-store locking per streamer and avoid sorting every viewer for small leaderboard pages.

  • #29 d2a1c1c Thanks @talkaboutdesign! - Overlays and the browser client no longer show the same chat lines and gifts again after reconnecting.

  • #41 45a9ad9 Thanks @talkaboutdesign! - Prune unused rule cooldown state and reset per-stream rules when room identity changes across session lifetimes.

  • #45 2ac22c7 Thanks @talkaboutdesign! - Share JSON encoding of live event, status and action publications across WebSocket subscribers.

  • #30 e123911 Thanks @talkaboutdesign! - Connections now notice a silent TikTok socket (no data for 60 seconds) and reconnect, instead...

Read more

v0.6.0-nightly.20261012212507

Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Oct 21:33
2414877

Minor Changes

  • #21 2258cef Thanks @talkaboutdesign! - Actions:

    • a join trigger, for when a viewer joins the stream, with once per viewer per stream (on by default)
    • a friends audience (mutual follows), and followers now includes friends
    • a minimum follower count on chat and join triggers, for keeping throwaway accounts out
    • a {followers} placeholder for the viewer's follower count
    • presets: one-click starting points for new actions in the editor

    When a session reconnects into a new room, the action rules are told the previous stream ended (TikTok doesn't always send streamEnd), so like milestones and once-per-stream joins start fresh.

  • #17 7c6bb18 Thanks @talkaboutdesign! - The app has a new look:

    • a sidebar with your account and live status, navigation, the sound mini player and the update button
    • light and dark themes, following your system by default
    • a Settings page for your username, sound, theme and updates
    • an Overlays page with live previews, per-overlay options and test events

    The Actions player's OBS setup moved to the Overlays page. On macOS the desktop app uses an inset title bar.

  • #16 c1306cd Thanks @talkaboutdesign! - Desktop app: choose Stable or Nightly updates in the new Settings dialog. Nightly builds come out for every merged change. The desktop app has a new icon.

  • #26 5431d32 Thanks @talkaboutdesign! - New goal event for LIVE goals (such as "GIFT GAL"), with progress per target and the top contributors. LiveUser.gifterLevel carries the viewer's gifter level, and the dashboard shows a goal card and "Lv" badges in chat. Demo mode emits goals and gifter levels. Both are additive, so PROTOCOL_VERSION stays at 1.

  • #19 9906806 Thanks @talkaboutdesign! - New Media page: browse, play, rename and delete your sounds, images and videos, upload by drag and drop, and record a new sound (up to 30 seconds) with a trim slider. PATCH /api/media/:id renames a file. The desktop app asks for microphone access when you record, and only allows the microphone and copying links for its own pages.

  • #23 63194cb Thanks @talkaboutdesign! - OBS overlays for a subathon timer, a top supporters leaderboard and a spin wheel. Each is on the Overlays page with its own options and a URL builder.

  • #27 03a236e Thanks @talkaboutdesign! - Actions: a {points} placeholder with the viewer's points (including what the triggering event just earned), and an "Answer !points" preset that says "{nickname}, you have {points} points!".

  • #32 d083164 Thanks @talkaboutdesign! - The server now refuses to listen beyond localhost without --token. Pass --allow-no-token to keep the old behaviour.

  • #18 485e74e Thanks @talkaboutdesign! - The dashboard is now a live view: chat with filters for followers, friends, minimum follower count and hidden words, highlighted gifts and subscriptions, a gifts column with top gifters, a way to silence someone in your own view, and an optional video preview. The raw event log is gone. LiveUser gains followerCount, followingCount and followStatus (none, follower or friend), and SessionStatus gains hlsUrl.

  • #25 808a9b3 Thanks @talkaboutdesign! - Viewer points: viewers earn points for chat, gifts, likes, follows, shares, subscriptions and joins, kept per streamer and saved to <data-dir>/points/. A new Viewers page shows the leaderboard, lets you search, adjust a viewer's points and change how many points each action is worth, and reset everyone. The dashboard shows points on chat rows, and the leaderboard overlay has metric=points. New REST routes: GET/DELETE /api/sessions/:username/points, GET/PATCH /api/sessions/:username/points/:userId and PUT /api/sessions/:username/points/settings. See docs/user/points.md.

  • #24 c47aaaa Thanks @talkaboutdesign! - Actions:

    • a webhook step, which sends an HTTP request (POST, PUT or GET) when the action runs. Use it to reach Streamer.bot, Minecraft plugins, Home Assistant, Zapier or other apps on your network. The server sends it, so LAN addresses work
    • without a body, POST and PUT send a JSON description of the action, with the viewer, the event and the template values
    • placeholders work in the webhook's address (percent-encoded) and body
    • the editor's Test button sends the webhook too

Patch Changes

  • #34 5d37931 Thanks @talkaboutdesign! - Viewer points are saved without pausing live events, and the points files are written compactly, so busy streams stay smooth.

  • #29 d2a1c1c Thanks @talkaboutdesign! - Overlays and the browser client no longer show the same chat lines and gifts again after reconnecting.

  • #30 e123911 Thanks @talkaboutdesign! - Connections now notice a silent TikTok socket (no data for 60 seconds) and reconnect, instead of looking live with no events. Set with idleTimeout.

  • #28 6f7425f Thanks @talkaboutdesign! - Actions: placeholder values in a JSON webhook body are now escaped, so a viewer's nickname or comment can't add or change fields in the request.

v0.6.0-nightly.20261012175254

Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Oct 18:01
3d315ab

Minor Changes

  • #17 7c6bb18 Thanks @talkaboutdesign! - The app has a new look:

    • a sidebar with your account and live status, navigation, the sound mini player and the update button
    • light and dark themes, following your system by default
    • a Settings page for your username, sound, theme and updates
    • an Overlays page with live previews, per-overlay options and test events

    The Actions player's OBS setup moved to the Overlays page. On macOS the desktop app uses an inset title bar.

  • #16 c1306cd Thanks @talkaboutdesign! - Desktop app: choose Stable or Nightly updates in the new Settings dialog. Nightly builds come out for every merged change. The desktop app has a new icon.

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 16:56
261efda

Minor Changes

  • #14 f8b47a7 Thanks @talkaboutdesign! - Add Actions: rules that turn LIVE events into sounds, images, GIFs, videos, text-to-speech and OBS scene switches. Set them up on the new Actions page (/actions.html), and add the actions player (/overlays/actions.html) to OBS. Triggers are gifts (any or a specific one, with a minimum coin value), follows, shares, subscriptions, chat commands or keywords, and like milestones, with optional cooldowns. Rules and uploaded files are stored in the data directory: ~/.tiklive by default, or --data-dir <dir>. The desktop app uses its app data folder.

    Sound steps can search MyInstants from the editor. Picking a result copies the sound into your media library, so it keeps working offline and OBS never loads it from MyInstants.

    The desktop app now plays action sounds and text-to-speech itself, with no click needed to allow audio. The dashboard and Actions page headers have controls to turn app sound on or off, set the volume, and skip or clear queued actions. In the desktop app, the OBS player link on the Actions page shows only images, videos and scene switches, so nothing plays twice. Links to tiklive's own pages now open in app windows.

    The WebSocket protocol gains an actions subscribe option and an action message. The browser client gains the matching actions option and "action" event. Both are additive, so PROTOCOL_VERSION stays 1.

    The dashboard was also redesigned. It asks for your TikTok username once and remembers it, and you can change it from the header.

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 13:57
9c571e0

Minor Changes

  • #10 2f4a16c Thanks @talkaboutdesign! - tiklive is now one npm package, tiklive, replacing @tiklive/server, @tiklive/core, @tiklive/contracts and @tiklive/client. Install tiklive and update imports:

    Before After
    @tiklive/server tiklive
    @tiklive/server/node tiklive/node
    @tiklive/server/bun tiklive/bun
    @tiklive/core tiklive/core
    @tiklive/core/testing tiklive/testing
    @tiklive/contracts tiklive/contracts
    @tiklive/client tiklive/client
    @tiklive/client/tiklive.js tiklive/tiklive.js

    The tiklive command and the server's HTTP and WebSocket API are unchanged.

Patch Changes

  • #8 610baa2 Thanks @talkaboutdesign! - The dashboard event log and the chat overlay now show gift images. The demo stream uses TikTok's real gift art instead of placeholder icons, and its Galaxy gift has the correct gift ID (11046).

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 03:26

Minor Changes

  • #5 7a50c10 Thanks @talkaboutdesign! - npx @tiklive/server now serves the dashboard and example overlays at http://localhost:8080 unless you pass --static <dir>.

  • #4 e1d8ebd Thanks @talkaboutdesign! - Add the gift catalog and more room details. GET /api/gifts (and TikLive#gifts() in the client) returns TikTok's gift list, sorted by price and cached for an hour. SessionStatus gains streamStartedAt (TikTok's stream start time, which survives reconnects) and coverUrl.

Patch Changes

  • Updated dependencies [e1d8ebd]:
    • @tiklive/contracts@0.3.0
    • @tiklive/core@0.3.0
    • @tiklive/client@0.3.0

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 02:58

Minor Changes

  • #1 8bf14a9 Thanks @talkaboutdesign! - Add the chatDelete event, sent when a moderator or the host deletes chat messages. The chat overlay removes deleted messages.

    @tiklive/core re-exports the LiveEvent, LiveEventOf, LiveEventType and LiveUser types. An embedded server's hello.serverVersion defaults to the package version instead of "dev". README links work on npm.

Patch Changes

  • Updated dependencies [8bf14a9]:
    • @tiklive/contracts@0.2.0
    • @tiklive/core@0.2.0
    • @tiklive/client@0.2.0

v0.1.0

Choose a tag to compare

@talkaboutdesign talkaboutdesign released this 12 Oct 02:21

First public release of tiklive: connect to TikTok LIVE without a signing service, run a self-hosted event server for overlays and apps, and build overlays with a typed client.

Install

npm (Node 22+ or Bun):

npx @tiklive/server            # or: bunx @tiklive/server
npm install @tiklive/core      # use the connector in your own code

Packages

Package
@tiklive/contracts Event and protocol schemas
@tiklive/core TikTok LIVE connection as an Effect Stream
@tiklive/server Event server + tiklive CLI
@tiklive/client Typed overlay client (4 KB, no dependencies)

See the README and protocol docs.