SideStage is a copilot for one person answering a room. It reads a public conversation — a live show's chat, a stream's chat, a subreddit thread — drafts replies for the operator to send, and acts on the operator's own eBay listings at their instruction. This page says what it reads, what it keeps, where that goes and for how long. Written from the code; what nobody has decided yet is marked, not filled in.
This runs against the real thing
SideStage is a working prototype, but it is not a sandbox. It reads live eBay.com shows and live public pages on the other platforms, and the eBay account you connect is a real one: listing changes made through SideStage change real listings. The people whose comments it reads are real people who have not heard of us. That is the reason this page exists in the shape it is in.
What it reads, and where
Only what is public, and only in the rooms an operator points it at. It signs in as nobody but the operator, and it reads a room the way a viewer of that room reads it.
- eBay Live. A browser we run opens the show's public page on www.ebay.com and reads the chat as it appears on screen — each comment's display handle and its text. It is signed in to an eBay account we hold, in the way any viewer would be.
- Whatnot. The same browser, on the show's public page at whatnot.com. Username and message text.
- TikTok Live. The same browser, on a public tiktok.com/@handle/live page. Nickname and comment text. This surface is behind its own switch and is off in the version we run.
- Twitch. Twitch's own APIs, on a channel you connect with your own sign-in. Chat carries a display name, a Twitch user id, a message id and Twitch's own send time. We keep the display name, the message, the message id and that send time — the message id is what stops a reconnect replaying the same comment twice. The Twitch USER id is dropped: it arrives on the message and is never written down.
- Reddit. Reddit's own API, on the subreddits you choose: new posts and the branch of the comment tree above the comment being answered. We keep the author name, the text, the comment's own fullname and Reddit's posting time. The permalink is kept on the draft that answers the comment, because it is the link the operator clicks to go and post their reply.
- Follow-ups. Nothing new. It reads nothing from any platform — it is built from the questions already stored from a finished session, one per person who asked and did not buy.
What it stores
Grouped by what the thing is, because every surface above produces the same few kinds of record.
- Comments by people who are not you.For every comment read in a monitored room it keeps the author's display name as that platform showed it, the comment text, and the time received. For every comment answered it also keeps the drafted reply, its guardrail verdicts, and what the operator did — sent, edited or dismissed. The name and the start of the comment also go into a tamper-evident audit log: the record of who approved what.
- Follow-ups. When a session ends, SideStage writes one record per person who asked something and did not buy: their handle, their question in their own words, and a reply for the operator to send. Nothing is sent by us — see the terms.
- The operator's own voice. Replies the operator sent are kept as style references, so later drafts sound like them. A style reference stores the reply and the question it answered, which means it carries a sentence somebody else wrote. These are attached to the operator's account rather than to a session, and deleting a session does not delete them.
- The host's voice and picture, if the operator starts the audio bridge. This cannot be started from our server: the operator opens a page in their own browser and shares the tab themselves. While it runs, the host's speech is transcribed and its emotion and intent estimated; the audio is kept in ten-second chunks on our server's disk. A frame of the shared tab is taken every twelve seconds, and a frame is kept only if the model actually read something from it. Frames it skipped are not kept.
- The operator's listings, policies and answers. Their own catalog, imported or uploaded, the lot data read from the show, and every action taken on a listing — a markdown, a stock change, a listing ended — in the same hash-chained audit log.
- Tokens for the accounts the operator connects. eBay and Twitch issue these after the operator consents on those platforms' own sign-in pages. SideStage never sees a password. They are used only for the scopes that were approved and are deleted when the operator disconnects.
- Account and settings. A display name for the operator, their guardrail policy, automation preferences and spend limits.
Where it goes
- Whissleruns the language and speech models, and is the only such provider — no other model vendor is called anywhere in the code. To draft a reply we send the asker's display name and their question; answering a thread also sends the comments above it, which are other people's words and names. The catalog and policies are uploaded to a per-session knowledge base, host audio streams to a listen-only session for transcription, and kept frames are sent for a reading. Whissle's own policy applies to that processing.
- eBay, Twitch and Reddit receive the API calls made on the operator's behalf, and serve the public pages and feeds SideStage reads. Whatnot and TikTok receive ordinary page requests from the browser SideStage runs.
- A network proxy, when one is configured, carries the page requests for eBay Live discovery and for the Whatnot and TikTok watchers. It sees the requests for those public pages.
- Nothing is sold, and nothing is used to train models.
How long
There is no timer: nothing a person said is deleted after any period, because no such rule has been written — not in the code, not as a policy. Deletion is by hand, and complete. Deleting a session deletes its chat, proposals, audit log, transcript, audio and frames, follow-ups and report, plus the per-session agent and its knowledge base. Disconnecting an account deletes that account's tokens. Any session exports as JSON from its report.
Three things outlive the session they came from, and this page would rather say so than be accurate only in general. The style references described above, which are attached to the operator's account and carry the question each reply answered. The record eBay sends us when one of its members closes their account, which we keep in order to be able to show that we acted on it. And an operational log of what the system itself did during a session — a watcher that gave up, a listen session that was cut, a spend cap that tripped — which is kept so that “it stopped answering mid-show” has an answer other than asking the operator what they saw. It carries the session's id, timings and counts. It carries nothing anybody said: not a comment, not a draft, not a word of transcript.
Not decided yet. A retention period, the legal basis for reading public comments in each of the places this runs, and a process for someone who is not our operator to ask what we hold about them and have it removed. These are the questions this product will have to answer, and we would rather leave them named than answer them with a sentence nobody has stood behind. Until then: write to ksingla@whissle.ai and a person will answer.
Contact
Whissle AI · ksingla@whissle.ai