Profiles
Profiles are saved configurations for AI models. Each profile stores a complete setup -- provider, model, system prompt, temperature, persona, and more -- that you can switch between instantly. Profiles are also the building blocks for councils.
Individual Profiles vs Councils
AI Supreme Council distinguishes between two types of profiles:
| Type | Members | Use |
|---|---|---|
| Individual Profile | 1 model | Standard single-model chat |
| Council | 2+ models | Multi-model deliberation (see LLM Council) |
A profile with one member is an individual profile. Add a second member and it automatically becomes a council. The platform detects this based on members.length >= 2.
Creating Profiles
There are several ways to create a profile:
1. Setup Wizard (New Users)
When you first open AI Supreme Council with no existing profiles, the wizard guides you through creating your first profile:
- Single Profile path: Pick a model, connect your API key, set a name and icon
- Cluster path: Select multiple models to create a council
2. New Bot Button
Click the + button or New Chat in the left sidebar to create a new bot. Configure it in the right panel, and it is saved as a profile automatically.
3. Import from JSON
Import profiles from a JSON file:
- Open Settings > Profile
- Click the Import button
- Select a
.jsonfile containing one or more profiles
The import format accepts a single profile object or an array of profiles. New IDs are always assigned to avoid conflicts with existing profiles.
Profile Fields
Each profile stores the following configuration:
Core Settings
| Field | Description | Default |
|---|---|---|
| Name | Display name for the profile | "Untitled" |
| Provider | AI provider (anthropic, openai, xai, gemini, openrouter, ollama) | anthropic |
| Model | Specific model ID | -- |
| System Prompt | Instructions that define the bot's behavior | Empty |
| Temperature | Controls randomness (0 = deterministic, 2 = creative) | 0.7 |
| Max Tokens | Maximum output length per response | 4096 |
Persona Settings
| Field | Description |
|---|---|
| Icon | Emoji or character displayed next to the bot's name and responses |
| Description | Short description of what this bot does |
| Color | Accent color for user message bubbles in this bot's chat |
Advanced Settings
| Field | Description | Default |
|---|---|---|
| Top P | Nucleus sampling threshold | 1.0 |
| Frequency Penalty | Penalizes token repetition | 0 |
| Presence Penalty | Encourages topic diversity | 0 |
| Stop Sequences | Comma-separated tokens where generation stops | Empty |
| Response Format | Text or JSON output mode | text |
| Reasoning Effort | Thinking/reasoning level (see Thinking) | Default |
| Seed | Fixed seed for reproducible outputs | None |
Chat Settings
| Field | Description | Default |
|---|---|---|
| Context Limit | Max messages sent per request | Unlimited |
| Streaming | Real-time token streaming | On |
| Auto-title | Auto-set chat title from first message | Off |
| Markdown Rendering | Render responses as markdown | On |
| Show Token Count | Display token usage | Off |
Per-Bot API Key
Each profile can store its own API key that overrides the global key for that provider. This is useful when you have multiple keys for the same provider (e.g., different billing accounts) or when sharing a profile configuration where different users bring their own keys.
Per-bot API keys are stored in the profile configuration. They are included in full profile exports but are never included in shared bot URLs or safe exports.
Switching Between Profiles
Click any bot in the left sidebar to switch to it. The chat area loads that bot's conversation history, and the config panel updates to show its settings.
When switching:
- The current bot's config is saved (debounced)
- The new bot's chat history is loaded from IndexedDB
- The config panel is populated with the new bot's settings
- If the new bot has a background stream still running, it is reattached
Editing Profile Settings
The right config panel is always editable for the active bot. Changes are saved automatically with a 300ms debounce -- just edit and the settings persist.
To access the full profile editor:
- Open Settings > Profile
- Select the profile to edit
- Modify any field: name, members, system prompt, temperature, advanced settings
- Changes save automatically
Importing and Exporting Profiles
Export
Two export modes are available:
| Mode | API Keys | Use Case |
|---|---|---|
| Safe Export | Stripped (members only have provider + model) | Sharing with others |
| Full Export | Included | Personal backup, cross-device transfer |
Export from Settings > Profile > Export. The file is a JSON array of profile objects.
Import
Import accepts:
- A single profile object:
{ "name": "...", "members": [...], ... } - An array of profiles:
[{ "name": "...", ... }, { "name": "...", ... }]
On import:
- New unique IDs are assigned to every profile (no collisions)
- Timestamps are set to the import time
- The profiles are added to your existing list (not replacing)
Imported profiles are additive. They do not overwrite or replace your existing profiles.
Profile Dropdown in Councils
When building a council, members are selected via a profile dropdown -- not by choosing a provider and model inline. This means:
- Create individual profiles first (one per model you want in the council)
- In the council builder, add members by selecting from the profile dropdown
- Each council member references a profile by ID
This design lets you reuse the same profile across multiple councils and ensures that changes to a profile (like updating the API key) automatically propagate to all councils that reference it.
Profile Resolution
When a message is sent, the platform resolves the profile configuration in this order:
- Per-bot API key (stored in the profile's member config)
- Profile reference (if the member references another profile by ID)
- Provider-matching profile (scan all profiles for a matching provider with a key)
- Global API key (from
localStorage['ais-apikey-{provider}'])
This cascading resolution ensures that API keys are always found if they exist anywhere in the system.
Deleting a Profile
To delete a profile:
- In the left sidebar, hover over the bot you want to delete
- Click the delete button (trash icon)
- Confirm the deletion in the dialog
Deleting a profile removes the bot, its chat history, and its memories. This action cannot be undone. Councils that reference the deleted profile will have that member removed.
Profile Storage
| Property | Detail |
|---|---|
| Backend | IndexedDB (key: ais-profiles) with localStorage sync backup |
| Persistence | Survives page reloads and browser restarts |
| Scope | Local to your browser |
| Export | Included in "Export All Data" backup |
| Shared URLs | Bot config (not the full profile) is encoded in shared URLs |