Chat

Conversation with an agent. Agent messages render as safe markdown; people's messages as plain text.

Jordan

Can you put together a proposal for 4 shoot days a month?

Rafael

Here are the two options:

ItemRecurring (6 mo)Annual
Day rate$640$560
Monthly$2,560$2,240

Pricing policy · unsafe link

Installation

Once per app, set up Aedis UI. The CLI verifies the signed release before writing anything and pins every dependency:

npx @aedis/cli@0.1.0 init

Import the theme once in your global CSS, after Tailwind:

app/globals.css
@import "tailwindcss";@import "./styles/aedis-theme.css";

Then add the component:

npx @aedis/cli@0.1.0 add chat# pnpm dlx @aedis/cli@0.1.0 add chat · yarn dlx @aedis/cli@0.1.0 add chat · bunx @aedis/cli@0.1.0 add chat

Props

PropTypeDefaultDescription
messages{ id; author; role: "person" | "agent" | "system"; content }[]—The conversation. Content is untrusted.
onSend(text) => Promise<void>—Send the text; throw to keep the draft and show the error.
workingstring—Indicator while the agent works.
maxLengthnumber8000Match your server limit.
labelsPartial<ChatLabels>—placeholder, send, message, log, sendError.

Security

  • Agent output goes through Markdown: no raw HTML, only http, https and mailto links.
  • The log region has aria-live, so new messages are announced.
  • Enter sends and Shift+Enter adds a line; IME composition never sends.