43 lines
2.8 KiB
Markdown
43 lines
2.8 KiB
Markdown
# 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 BridgeSwarm’s 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](https://tab-bot.rest)**. HoneyPeer does not host your bot, does not keep it online, and does not hold your token. Company site: [honeypeer.llc](https://honeypeer.llc).
|
||
|
||
## What you get
|
||
|
||
- A vault in this origin’s 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](/docs/guide/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 BotGhost’s 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 eval’d 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 `login`s.
|
||
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 host’s max clients (default 4).
|
||
|
||
## Next
|
||
|
||
1. [Community](/docs/guide/community) — Discord hangout and source
|
||
2. [Install BridgeSwarm](/docs/guide/install-bridgeswarm), allowlist this origin (`https://tab-bot.rest` on the official site)
|
||
3. Create a Discord application, then [create a TabBot bot](/docs/guide/create-a-bot) and [choose a track](/docs/guide/choose-a-track)
|
||
|
||
Source is [git.ssh.surf/snxraven/tab-bot](https://git.ssh.surf/snxraven/tab-bot) (**GNU GPL v3 or later**).
|