Files
tab-bot/docs/guide/what-tabbot-is.md
T
2026-09-06 19:28:26 -04:00

2.8 KiB
Raw Blame History

What TabBot is (and is not)

TabBot is a local-first Discord bot studio. You pick a Visual (no-code) or Code (TypeScript / discord.js names, bundled with esbuild-wasm) track per bot. Official modules run on both. Real discord.js 14 runs in a dedicated runner tab on your machine, through BridgeSwarms native host (window.BridgeSwarm.DiscordJS).

The product line is:

Real discord.js in a tab. Your token never leaves your machine. Close the tab, kill the bot.

HoneyPeer, LLC publishes TabBot at tab-bot.rest. HoneyPeer does not host your bot, does not keep it online, and does not hold your token. Company site: honeypeer.llc.

What you get

  • A vault in this origins IndexedDB (tabbot-vault): AES-256-GCM tokens and named secrets, PBKDF2-SHA-256 at 600,000 iterations
  • Studio: list, wizard, settings, invite URL, modules, visual builder or Monaco code studio (one track per bot), logs, KV
  • A runner at /run/:botId whose lifetime is the bot process (named window + Web Lock so one gateway per bot id)
  • 35 official modules (GNU GPL v3 or later) plus JSON import/export and share codes
  • Docs, legal, and a community page on this same origin

What TabBot is not

  • A 24/7 cloud host. Sleep the laptop, close the runner, or quit the native host and the gateway dies.
  • An account system. There is no HoneyPeer login.
  • A custodian of bot tokens. Ciphertext never uploads to a TabBot server.
  • Affiliated with Discord Inc. or BotGhost. Feature overlap with BotGhosts maker surface is intentional; partnership is not.
  • A replacement for @discordjs/voice on the current BridgeSwarm host. There is no music player or temp-voice hub in the catalog.
  • A remote marketplace of evald modules.

Architecture in one picture

  1. You unlock the vault in Studio.
  2. Launch opens a real browser tab (window.open) named tabbot-run-{botId}.
  3. Studio and runner handshake over same-origin postMessage / BroadcastChannel. A Web Lock steals a previous seat on the same bot id.
  4. The runner constructs new DiscordJS.Client({ intents }) on the Bare host and logins.
  5. Closing that tab (or pagehide) stops that bot. Reload/Apply does not await destroy(). Stop does, with a 1.2s cap. Other runner tabs are independent, up to the hosts max clients (default 4).

Next

  1. Community — Discord hangout and source
  2. Install BridgeSwarm, allowlist this origin (https://tab-bot.rest on the official site)
  3. Create a Discord application, then create a TabBot bot and choose a track

Source is git.ssh.surf/snxraven/tab-bot (GNU GPL v3 or later).