Advanced features
Power-user tools for steering model behavior, searching the web, and connecting custom endpoints.
Rules (global and per-chat)
Rules are instructions that steer how the assistant behaves. OpenChat supports two scopes:
- Global rules: apply to every chat when enabled. Manage them in Settings → Rules.
- Chat rules: per-conversation instructions edited from the rules button in the chat composer.
In Settings → Rules, configure:
- Use global rules in chats, off by default
- Use chat rules, off by default
- Allow assistant to propose rules, the model can suggest new rules during a conversation
- Require confirmation, review proposals before they are saved
Tap the rules chip in the composer to edit chat-specific rules. The chip highlights when the conversation has a non-empty system prompt.
Memory
Memory lets OpenChat remember facts across conversations. Manage stored memories in Settings → Memory.
- Use memory in chats, injects relevant memories into conversations (off by default)
- Require confirmation, review memory proposals before saving
Tap any memory to edit it. Swipe to delete. The assistant can propose new memories during chats when memory is enabled. Do not store passwords, API keys, or other secrets.
Memory is disabled in temporary chats.
Skills (slash commands)
Skills are reusable prompt shortcuts. Define them in Settings → Skills with a name, description, and slash command (e.g. /summarize).
- Use skills in chats, enable skill invocation (off by default)
- Require confirmation, review skill proposals before saving
While composing, type / followed by a skill name to see matching skills in a dropdown. Select one to insert its prompt. Skills can also be invoked automatically when relevant.
Web search
Attach a search provider to let models look up current information from the web.
Setup
- Open Settings → Web Search.
- Add an API key for one or more providers:
| Provider | Get a key |
|---|---|
| Tavily | app.tavily.com |
| Exa | dashboard.exa.ai/api-keys |
| Brave Search | api-dashboard.search.brave.com |
| Serper | serper.dev/api-key |
| SerpAPI | serpapi.com/manage-api-key |
- Toggle Enable Web Search on (requires at least one key).
- In chat, tap the web search button in the composer to pick a provider or turn search off.
Models with tool-calling support decide when to search. Models without tool support receive search results injected into the prompt automatically.
Custom OpenAI-compatible endpoints
Connect self-hosted or third-party OpenAI-compatible servers:
- Settings → Add a Provider → Custom Endpoint
- Enter a display name, base URL, and comma-separated model IDs
- Optionally require an API key and pick a brand mark icon
- Tap Test Connection to verify the endpoint responds
Common setups:
- Ollama, e.g.
http://your-mac.local:11434/v1 - LM Studio, enable the local server and use its OpenAI-compatible URL
- vLLM, point to your deployment's
/v1endpoint
Custom endpoints do not fetch a live model catalog: you specify model IDs manually. Capabilities are inferred from model names where possible.
Background generation and Live Activity
When you send a message and switch away from OpenChat, the assistant can continue generating in the background.
- A Live Activity appears on the Lock Screen and Dynamic Island while a reply is generating
- A local notification fires when the reply completes
- Tapping the notification opens the relevant chat
Background generation works for both regular and temporary chats. Notification content stays on-device. Nothing is sent to OpenChat servers.
Reasoning and effort controls
Some models support extended reasoning (thinking). When the current model supports it, the composer shows reasoning controls:
- Thinking toggle, on models with a separate thinking parameter, turn extended reasoning on or off
- Effort gauge, on models that support effort levels, pick how much reasoning effort to apply
Available controls depend on the model. Models with mandatory reasoning always use it. The effort picker only shows levels supported by the current model.
Compact Context
Settings → Tools → Compact Context enables conversation compaction for long threads. When enabled, older messages can be summarized to free context window space. Compaction is available from the composer in non-temporary chats.