AI assistant
The catalog ships with a built-in AI assistant — a chat panel that can read your catalog, answer questions, and take actions on your behalf with explicit approval. It’s the fastest way to do things you’d struggle to phrase as a series of clicks.
Where to find it
The chat panel docks to the right side of the catalog UI. Toggle it with the sparkle icon in the top bar, or via Spotlight (⌘K) → “AI assistant”.
AI chat panel docked on the right.
Full catalog UI on the left, chat panel on the right with message history, suggestion chips at the bottom, input field below.
Screenshot pending
What it knows
The assistant has live context on where you are:
- Active workspace (org)
- Currently-open collection (if any)
- Active show (if a detail modal is open)
- Whether you can mutate the current collection
This means “add this show” or “what’s in this collection” Just Works without explanation.
How a conversation flows
- Type a question or instruction in the input. Press Enter to send.
- The assistant streams a response.
- If it wants to take an action (add shows to a collection, create a collection, etc.), it surfaces an ActionCard above the message — a pending request for your approval.
- Click Approve to run the tool, Decline to dismiss it. Approved actions stream their result back into the conversation; completed cards offer a View result link where one applies.
Pending action card mid-conversation.
Card with the proposed tool name, summarized parameters, and Approve / Decline buttons.
Screenshot pending
This approval-gated tool-use is the assistant’s safety net: even an over-eager response can’t mutate the catalog without your explicit OK.
Auto-approved (read-only) tools
Three read-only tools run without a confirmation step — the chat shows a brief indicator (“Analyzing the catalog…”, “Listing collections…”, “Reading collection…”) and inlines the result:
| Tool | What it does |
|---|---|
queryCatalog | Searches and analyzes shows in the current workspace. |
listCollections | Lists the collections you can see. |
readCollection | Reads the contents of one collection. |
Mutating tools (always confirmed)
| Tool | What it does |
|---|---|
createCollection | Creates a new (org or personal) collection. |
renameCollection | Renames an existing collection. |
deleteCollection | Deletes a collection. |
addShowsToCollection | Adds one or more shows to a target collection. |
removeShowsFromCollection | Removes shows from a collection. |
All five go through ActionCard approval. The assistant tells you what it’s about to do and waits — deleteCollection in particular never runs without your explicit OK. Show edits and vetting handoffs are not assistant tools; those happen in the grid and the collection action menu respectively.
Conversation history
Every conversation is persisted in the database. The history panel (a sidebar inside the chat) lists past conversations with auto-derived titles, sorted most-recent-first.
Chat history list.
Sidebar inside the chat panel with conversation titles, hover state showing rename / delete buttons. Active conversation highlighted.
Screenshot pending
From the history list, you can:
- Resume a past conversation
- Rename it (titles are auto-generated from the first message; rename to anything memorable)
- Delete it
- Start a fresh one (the ”+” button at the top)
The current conversation ID is stored in localStorage so a page refresh drops you back into the same chat.
Suggested prompts
Below the input, the assistant shows suggestion chips — context-relevant starter prompts based on where you are. Examples:
- On a collection: “Summarize this collection”, “What demographics does this collection skew?”, “Add 5 more comedy shows like these”
- On the shows grid: “Find shows similar to
<show name>”, “Group these by network” - With no active collection: “Help me build a pitch list for an outdoor brand”
Suggestion chips above the chat input.
Row of pill-style chips: 'Summarize this', 'Add similar shows', 'What demographics?', etc.
Screenshot pending
Clicking a chip pre-fills the input — you can edit before sending.
Scope banner
If you have access to more than one org, the assistant shows a small scope banner at the top of the conversation with the active org name. It’s a reminder that “the catalog I’m talking about” is scoped to that workspace.
Switching orgs mid-conversation is supported; the banner updates and the assistant’s tools re-scope automatically.
Streaming
Responses stream token-by-token. The thinking indicator (an animated bar) replaces the placeholder until the first token arrives. You can:
- Read along as the answer streams in.
- Hit Stop to cancel mid-stream (the partial response is kept).
- Wait for tool calls — when the model pauses to call a tool, you’ll see a “thinking…” or “running…” indicator until the tool finishes.
Permissions & access control
The assistant respects every permission you have in the UI. It can’t see shows you can’t see; it can’t write to a collection you can’t edit. RLS on the database is the source of truth — the AI is just a more efficient way to issue queries through it.
A view-only share recipient can chat about the collection but can’t approve any mutating actions on it.
Edge cases & gotchas
- Long responses — for very long answers the chat panel scrolls; the input stays pinned to the bottom.
- Failed tool execution — if an approved tool fails (e.g. the collection was deleted between approval and execution), the chat surfaces the error inline and the assistant explains what to do next.
- Conversation gone — if you delete a conversation while it’s the current one, the chat resets to a fresh conversation.
- Multiple browser tabs — each tab can have a different conversation open; conversation state is per-tab but the database list is shared. A deletion in tab A is reflected in tab B on next refresh.
- AI hallucinations — the assistant is grounded by tool-use, but it can still misremember show names. When in doubt, click the show’s name in the chat to verify (the assistant inlines show links where possible).
- Cost / latency — complex queries that involve searching many shows can take several seconds. The thinking indicator is your hint that it’s working, not stalled.
Choosing a model
The assistant routes through Frequency’s AI gateway, and you can pick which model answers. The model picker in the chat header offers:
- Default — the platform-configured default.
- Balanced · Claude Sonnet — best all-round quality.
- Balanced · Gemini Flash — fast and cost-efficient.
- Smart · Claude Opus — deepest reasoning; admins only.
Each finished response is stamped with the model that produced it, shown in small type under the message — useful when comparing answers. The picker is disabled mid-stream and hidden on small screens.