What Is Strings
What Is Strings
Strings is your primary chat interface in QUI. Each String is a smart conversation container that can hold direct character chat, multi-character conversations, and messages from external channels like Telegram, Slack, Discord, WhatsApp, and Email — all in one unified thread.
Key Concepts
Strings Are Containers
A String is not just a chat window. It's a persistent conversation container that:
- Stores messages in semantic memory (not just as text — each message is indexed for recall)
- Supports multiple participants — you can add multiple characters to a single conversation
- Bridges external channels — messages from Telegram, Email, or Slack arrive in the same thread as direct chat
- Persists across sessions — your conversations are saved and searchable
- Holds shared files — upload documents that all participants in the conversation can reference
Frontend-Only App
Strings is a React application served through a web browser. It connects to several backend services:
- Qui Anima — character loading and chat completions
- Memory Service — message storage, retrieval, and file management
- Qonscious — consciousness state tracking
- Thalamus — real-time message delivery via WebSocket
- M2M — inter-character messaging
- Voice — text-to-speech and speech-to-text
All services are fail-open. If a service is temporarily down, Strings continues working — just without that enrichment.
Interface Layout
[Screenshot: Strings interface showing sidebar, chat area, and input bar]
Sidebar (Left)
The sidebar has two sections:
- Conversation List (top) — all your Strings, organized by recency. Click to open, use [+] to create new ones.
- Shared Files (bottom) — file drop zone and file list for the current conversation. Drag and drop text files, or click to upload. Files become part of the character's context.
Chat Area (Center)
Messages displayed chronologically. Each message shows:
- Character name and avatar
- Message content with formatting
- Timestamp
- Channel badge (if the message came from Telegram, Slack, etc.)
- Action buttons (reply, forward, copy, star, delete)
Input Bar (Bottom)
Where you type messages. Includes embedded controls for advanced features (covered in Chat Features).
Creating a Conversation
- Click [+] in the sidebar
- Give the String a name
- Select a character to chat with
- Start typing
You can add more characters to the conversation later through the participants settings.
How Messages Flow
When you send a message in Strings:
You type a message → Anima loads the character's full context
→ LLM generates a response (streamed back to you in real-time)
→ Triggers in the response are detected and executed (M2M, terminal, MCP, etc.)
→ Both messages are saved to semantic memory
→ Consciousness state is updated (if Qonscious is active)
Messages from other sources (M2M, channels) arrive in real-time via WebSocket and appear as they come in.
What's Next
- Chat Features — input controls for reasoning, awareness, and consciousness
- M2M Messaging — multi-character conversations
- Channels — bridging Telegram, Slack, Discord, WhatsApp, and Email
- Sharing — conversation sharing and federation
- Files — shared file management within conversations