One master, many channels
Write the title and body once. PulseCast checks every selected platform's limits before it queues, then adapts the copy per channel on request. A 20-character Douyin title no longer lands in a 100-character YouTube field.
/ apps
Media & publishing · 2TInteractive
2TI PulseCast
PulseCast is a native publishing studio for creators, agencies and media teams who ship the same asset to many platforms. It prepares the file, adapts the copy per platform, drives the browser sessions you already own, and reports how each post performed against your own baseline. Sessions are encrypted and bound to your machine; media never leaves your workstation.

Why this is an app, not a platform
What the pilot build is designed to do
Write the title and body once. PulseCast checks every selected platform's limits before it queues, then adapts the copy per channel on request. A 20-character Douyin title no longer lands in a 100-character YouTube field.
Sign in on the platform's own page in a real Chrome window. The session is sealed with AES-256-GCM under a key bound to this machine, the temporary profile is deleted, and every run replays it into a throwaway profile. No cookie file to leak, no password stored.
Automation fills the form, then stops. The job waits in awaiting_gate with the browser open while the operator approves or declines in the app. Only a channel explicitly marked auto-publish skips the gate.
Each platform is a versioned, reviewable JSON flow. A console change ships as a pack update; a selector that disappears is healed once from the accessibility tree, then parked for review.
A job counts as published only when the platform returns a receipt — a post URL or id. A submission whose outcome is uncertain is parked for a human and never retried into a duplicate post.
PulseCast reopens each post at 1h, 6h, 24h and 7d, records views, likes, comments and shares, and compares view velocity with the channel's own earlier posts. No industry averages, no invented numbers.
From the first task to your daily routine
Three decisions shape how PulseCast behaves when a publish does not go to plan.
Automation fills the form, then stops. The job enters awaiting_gate with the browser open, and the operator approves or declines in the app. The gate is the product's most important safety property: a script never decides that a draft is ready for a client's channel.
Applies to every channel unless it is explicitly marked auto-publish.
Transient and rate-limited failures back off with jitter and bounded attempts. Authentication, captcha and SMS hand the job to the operator. Selector drift heals once from the accessibility tree, then parks for review. A submission with an uncertain outcome is never retried automatically.
A second post is worse than a late one.
Every publish opens a telemetry window at 1h, 6h, 24h and 7d. Views, likes, comments and shares are recorded against the channel's own baseline, so a post is judged against that account's earlier posts rather than a generic benchmark.
Telemetry packs ship for YouTube and TikTok; other platforms record the receipt and mark the window as skipped instead of inventing numbers.
Availability
Pilot programme: pack selectors are written against the 2026-11 consoles and have not been exercised against live accounts. No public installer is listed while the YouTube and TikTok packs are validated with pilot operators.
No validated installer is listed yet. Please check back for release details.
Linux first: Rust 1.80+, Node 20+, WebKitGTK 4.1 and a system Chrome or Chromium install. The .deb targets libwebkit2gtk-4.1-0, libssl3 and libgtk-3-0. macOS and Windows targets are wired in tauri.conf.json and have not been built.
Pricing
Priced per operator, not per post: channels, brands and seats define the tier, while media size, post count and pack updates are never metered. Caps are advisory during the pilot — the portal lease does not yet carry channel, brand or seat claims, so the tier is a label rather than an enforced limit. Pilot invitations are free for ten agencies while pack selectors are validated against live consoles.
Request a licence →Pilot notes & setup
App-specific guides are being prepared.
Status matrix
| Capability | State |
|---|---|
| YouTube · video, short | Automated Studio create flow; receipt from /video/<id> |
| TikTok · video | Automated Caption from title and hashtags; cover and sound chosen by the operator |
| X · video, images | Automated Composer with stable data-testid hooks |
| Douyin · video, 图文 | Automated Selectors ported from the upstream 2026-06 DOM |
| Xiaohongshu · video, images | Automated Success is the platform's /publish/success route |
| Instagram · reel, carousel | Assisted Five-step modal; the operator finishes |
| LinkedIn · video, images | Assisted Waits for server-side video processing |
| Facebook / Page · video, images | Assisted Composer differs per profile |
| Bilibili · video | Assisted Web flow staged; upstream uses biliup |
| Kuaishou · video | Assisted Cover and declaration steps change often |
| WeChat Channels · video | Assisted 6–16 character titles; scan per device |
| Baijiahao, Dayu, Alipay, Weibo, Hupu, Xueqiu, Zhihu | Assisted Staged, then confirmed by the operator |
| Selectors against live consoles | Not validated Written against the 2026-11 consoles; first publish per platform should run with the gate on and a headed window. |
| Telemetry harvest windows | Partial Packs ship for YouTube and TikTok; every other platform records the receipt and marks the window as skipped. |
Before you install
No. Sign-in happens on the platform's own page and PulseCast only receives the resulting session, which it encrypts immediately. There is no credential store to breach and no password field in the app.
Nowhere. Media stays on your machine and is handed to Chrome through the page's file input. PulseCast has no upload service and no storage to leak.
The pack fails at a specific step with a screenshot and an event trail. If a local model is running, PulseCast tries to heal the selector from the accessibility tree first. A permanent fix ships as a pack update.
Only per channel. Auto-publish is an explicit channel setting, off by default, and the interface warns while it is on. The publish gate is the default because no script should decide a draft is ready for a client's channel.
Yes. The binary is a stdio MCP server (2ti-pulsecast --mcp) exposing seven pulsecast_* tools, and 2TI Launcher can grant five scoped tools over a private Unix socket. The Launcher asks the operator to grant each scope.
Douyin, Xiaohongshu, Kuaishou, Bilibili, WeChat Channels, Baijiahao, Dayu, Alipay, Weibo, Hupu, Xueqiu and Zhihu are modelled as first-class packs, including 图文 posting where the platform supports it. Selectors follow the upstream 2026-06 DOM and have not been exercised against live accounts in this build.
Let’s get you started
Explore the setup guides, check the current release, or talk to us about fitting this workspace into your day.