FAQ
Is this only for @cognipeer/agent-server?
No. AgentServerClient talks to agent-server (and Cognipeer Console portals), and transports connect other backends: agent-sdk in the same process, OpenAI Chat Completions, the Responses API and A2A. Most 0.4.0 features need agent-server 0.3.0 or later. See Transports.
Which component should I start with?
Use Chat for the full product experience. Use ChatMinimal for embedded or compact experiences on your own page. Use EmbedChat when the chat lives in an iframe inside another site.
Can I fully rebrand the UI?
Yes. Start with theme="dark" | "light" and then override tokens using themeColors (twelve base colours plus four status colours with tints) or CSS variables. The theme is read when the chat mounts. See Theming.
Is markdown supported in assistant messages?
Yes. Markdown rendering is built-in, including common formatting patterns. Raw HTML is not rendered.
Does it support file uploads?
Yes, if the backend endpoint handles uploaded files and your integration enables uploads. Files can be picked, dropped or pasted; they can travel inline, be uploaded when the message is sent, or be uploaded as soon as they are picked, with progress. See File Uploads.
Can I show tool execution traces?
Yes. The chat shows the steps an agent took with its tools (the latest step and the earlier ones folded), and tool calls reach your code through onToolCall and onToolResult.
Can people approve tool calls and answer the agent's questions?
Yes, with agent-server 0.3.0 or later. The cards appear under the assistant message, the answer is sent back and the turn continues. You can allow editing the arguments, show deadlines and replace the cards. See Approvals and Questions.
What happens if I reload the page while the agent is working?
The conversation reopens, sees that the turn is still running and follows it. A dropped connection is not an error either. Stop cancels the run on the server. See Running Turns and Stop.
Can I limit what a conversation costs?
The server can give a conversation a usage limit; the chat shows a meter and a notice, and where you allow it lets people raise the limit and continue. See Usage Limits.
How do I turn on copy, regenerate, feedback, export, and so on?
They are opt-in props (messageActions, feedback, historyActions, exportMenu, notifications, disclosure, ...). The agent can only take a feature away from one you turned on. See Portal Experience.
Can I put the chat in another site's page?
Yes: EmbedChat runs in an iframe and signs in with an identity token the host page's server signs, exchanged over postMessage with strict origin checks; the session lives in memory only. See Embedding the Chat.
Which languages are supported?
English and Turkish are built in. Any other language works by supplying its strings with customMessages; keys you leave out fall back to English. See Internationalization.
Is it accessible?
Controls are labelled, the message list is a live log, approval cards are announced and take focus, history rows and menus work with the keyboard, and animation respects prefers-reduced-motion. See Accessibility.
Can I change the theme at runtime?
theme and themeColors are read when Chat mounts. Remount with a key (for example key={theme}) to switch.
Is server-side rendering supported?
Yes, when integrated correctly in frameworks like Next.js. Follow Next.js Integration guidance for client/server boundaries.
How do I upgrade from 0.3.x?
It is a drop-in upgrade; a few behaviours changed. See Migrating to 0.4.0.

