Перейти к основному содержимому

Sharing Bots

One of AI Supreme Council's defining features is shareable bot URLs. The URL is the bot -- the entire bot configuration is encoded directly into the URL fragment. No server is involved, no account is required to open a shared bot, and no data is stored anywhere except in the URL itself and the recipient's browser.

How URL Sharing Works

Bot configurations are compressed and encoded into the URL fragment (the part after #). Since URL fragments are never sent to the server, the bot config travels entirely client-side.

The process:

  1. Bot config object is serialized to minimal JSON
  2. The JSON is compressed using Deflate
  3. The compressed bytes are encoded in Base80 (using the FRAG80 URL-safe alphabet)
  4. A VLQ version prefix is prepended

The result is a self-contained URL like:

https://aiscouncil.com/#B3kF9xR2mN7pQ...

A typical bot URL is 100-300 characters, depending primarily on system prompt length.

How to Share a Bot

  1. Open the bot you want to share (click it in the sidebar)
  2. Click the Share button in the header
  3. The URL is generated and copied to your clipboard
  4. Send the URL through any channel -- email, chat, social media, QR code, etc.
подсказка

You can also right-click the address bar and copy the URL directly after the share button has been clicked, since the URL in the address bar updates to include the encoded bot config.

What IS Shared

The shared URL contains everything needed to recreate the bot:

  • Bot name
  • Provider and model selection
  • System prompt (full text)
  • Temperature, max tokens, and all generation parameters
  • Advanced settings (top P, frequency/presence penalty, reasoning effort, etc.)
  • Persona settings (icon, description, color)
  • Council configuration (members, style, chairman, voting mode) if applicable

What is NOT Shared

The following are never included in shared URLs:

DataReason
API keysSecurity -- keys are always local
Chat historyPrivacy -- conversations stay on your device
Per-bot API key overridesSecurity -- treated the same as global keys
Local settingsTheme, font size, and other UI preferences are per-device
Usage dataToken counts and costs are per-device
warning

API keys are never encoded into URLs under any circumstances. The bot config schema explicitly excludes key fields during URL encoding. This is a core security guarantee of the platform.

Receiving a Shared Bot

When someone sends you a shared bot URL:

  1. Open the URL in your browser
  2. Sign in if you are not already logged in (or the bot may load directly if auth: 1 is set)
  3. The bot config is decoded from the URL fragment and loaded
  4. Enter your API key for the bot's provider if you do not already have one saved
  5. Start chatting -- the bot appears in your sidebar with all the sender's settings

The recipient gets an exact copy of the bot configuration but with their own:

  • API key (either previously saved or entered fresh)
  • Empty chat history (conversations are never shared)
  • Local settings (theme, preferences)

URL Format

https://aiscouncil.com/#B{base80_payload}
ComponentDescription
https://aiscouncil.com/The app domain
#Fragment identifier (not sent to any server)
BVLQ version prefix -- B indicates version 1 (Config V2 schema)
{base80_payload}Deflate-compressed bot config encoded in Base80

The Base80 FRAG80 alphabet uses URL-safe characters to maximize information density in URL fragments without requiring percent-encoding.

Privacy guarantee

Because the bot config lives entirely in the URL fragment (#...), it is never sent to any server. URL fragments are processed client-side only -- this is enforced by the HTTP specification (RFC 3986). When you share a URL, the fragment travels through whatever channel you use to send it (email, chat, etc.), but AI Supreme Council servers never see it.

The Auth Field

Bot configs include an optional auth field that controls whether the recipient needs to be logged in:

ValueBehavior
auth: 1Public -- anyone can open the bot without logging in
auth: 0 or absentProtected -- recipient must sign in before the bot loads

By default, shared bots require sign-in. Set auth: 1 in the config if you want the bot to be accessible to anyone without an account.

Compression Details

The compression pipeline ensures URLs stay as short as possible:

StepInputOutput
1. SerializeConfig objectMinimal JSON (short keys, no defaults)
2. CompressJSON stringDeflate-compressed bytes
3. EncodeCompressed bytesBase80 string
4. PrefixBase80 stringB + Base80 string

Only non-default values are included in the serialized JSON. A bot with default temperature (0.7) and default max tokens (4096) omits those fields entirely, saving space.

Typical URL lengths:

Bot TypeSystem PromptApproximate URL Length
Simple bot, no promptNone~80 characters
Standard bot100 chars~150 characters
Detailed bot500 chars~300 characters
Council (3 models)200 chars~350 characters

Sharing Councils

Council (multi-model) bots can be shared the same way as individual bots. The shared URL includes:

  • All member model configurations (provider + model for each)
  • Council style (council, compare, arena, moa, router, debate, consensus)
  • Chairman index, voting mode, deliberation rounds
  • Shared system prompt

The recipient needs API keys for all providers used by the council members. If a council uses three different providers, the recipient needs keys for all three.

Tips for Sharing

  • Test your shared URL by opening it in an incognito window to see what recipients experience
  • Keep system prompts concise if you want shorter URLs
  • Use the auth field (auth: 1) if you are sharing publicly and do not want recipients to need an account
  • Shared URLs are self-contained -- they work even if the sender deletes their bot, because the config is in the URL, not on a server