Start a conversation
You can also dictate your message with the microphone in either composer. Select Send while recording to transcribe and send in one step, or Stop to review the editable transcript first. Voice transcription uses an included organization allowance and does not deduct AI credits. Starting from nothing? Your organization home in the dashboard opens with a focused prompt box and your six most recently updated websites. Describe the site you want and attach reference images if they help. Cactal creates the site immediately asUntitled site, starts the first build, and requests a concise name from the original brief and images without delaying the build. It preserves an explicit name from your brief; otherwise it uses a generic description rather than inventing a brand. That first name also aligns the dashboard slug and available platform hostname. Later accepted runs retry naming if the temporary name remains. Open Sites when you need the complete searchable list. For an existing site:
Prompt text and attached images are saved in your browser while you work, so they return after a refresh or when you reopen Cactal. The new-site prompt and every website conversation keep separate drafts. A draft clears only after the server accepts the message.
If the conversation reconnects, you can keep typing, selecting preview elements, attaching images, and recording dictation. Send pauses until the connection returns, and brief reconnects recover without showing a notice. A longer interruption shows a status above the composer without moving your draft. Reconnecting does not stop work already running on the server. If transcription cannot finish while offline, keep the recording and retry when connectivity returns.
- Open a site in the dashboard. The agent conversation is docked beside the preview on every studio tab.
- Describe the change, or pick one of the starting prompts on an empty site. Attach images for visual reference if it helps.
- Watch concise progress updates: tool calls and edits appear as they happen, the conversation shows that the agent is working without exposing its private reasoning, and the draft preview refreshes as the agent works.
- Approve publishing, CMS publication, destructive changes, and live recovery actions when they pause for confirmation in the conversation.
Reference the visible preview
When you send a message from the Preview tab, Cactal includes the site-relative path currently open in the preview with that turn. The agent can therefore resolve phrases such as “this page” and “here” against the page you were viewing. Messages sent from Analytics, Activity, CMS, or Settings do not include preview-page context. The path is contextual metadata, not a screenshot. The agent can capture the draft page with its preview tool when it needs to inspect layout or visual details.Work with Cactal source
The built-in agent receives Cactal-specific source, design, and publishing guidance selected for each request, so it works with the framework knowledge the task at hand needs. It inspects existing source first, follows the website’s established patterns, validates changes with the framework check, and can capture affected draft pages before requesting publication. When one response requests multiple source writes, Cactal commits them in order so each write sees the version created by the previous one. The same agent can generate or edit image assets, design a logo (it proposes a few distinct concepts with the wordmark drawn into the design, refines the one you pick, derives the icon from it, and wires the logo into the header, footer, and favicon), rename the current website, inspect and manage its CMS schema and content, read realtime and historical analytics, diagnose domain configuration, set or clear the favicon from the asset library, restore a draft source version, recover a deployment, roll back a published version, or take a website offline. It cannot change domain configuration. Image generation spends the organization’s AI credits and requires no separate approval. Generated thumbnails appear in the tool stream and open in the same full-size gallery as uploaded images. Favicon changes apply immediately without approval. When you reference another Cactal website you can access, the agent can find it and inspect its source, preview, assets, CMS content, or analytics for context. Those reference websites remain read-only: every change stays bound to the website whose conversation is open, and every reference read uses your current permission on the referenced website. When website work depends on current public information, the built-in agent can search the web for ranked sources and read clean Markdown from specific public URLs. It treats page content as untrusted evidence and cites the source URLs it uses. This capability is built in and requires no provider setup. Paste the URL of an existing site and the agent can look at it and measure it. It takes real browser screenshots of any public page at desktop or mobile size, pages down through it or zooms in on one element or region, runs measurement presets in the rendered page for colors by role, typography, font files, spacing, radii, shadows, every image and video with its size and position, and head metadata, views public images inline before deciding to use them, and imports logos, favicons, self-hosted font files, and photos into the website’s asset library through the same validation as an upload. Measured values feed its token plan; the screenshot feeds the layout. It imports only assets you have the right to use and asks before taking anything from a site that is not yours. If you explicitly ask it to send Cactal product feedback, the agent can submit a concise report on your behalf. It will not include credentials, sensitive content, or unnecessary personal or customer data. CMS item creation and editing stay draft-only until the separate publication action is approved. Destructive CMS changes and live website recovery actions also require approval.Remember project details
Cactal keeps the website’s agent notes for you. When older turns of a long conversation are summarized, Cactal distills the business facts, brand rules, decisions, and rejected directions you stated in them into a short list of notes that is included with every request beside your own project knowledge. Those notes outlast long conversations: older turns are condensed, but the notes never are. Each rewrite appears as a step in the conversation, and you can read and edit everything it writes on the Context tab. Ask the agent to remember or forget something at any point and it records that immediately. Your own project knowledge text is never touched by the agent.Attach project images
Image messages use the same asset library as the rest of the website. The client uploads each image as a website asset, finalizes it, and sends its asset id with the message. The server verifies that the asset belongs to the current website and replaces any client URL with the canonical CDN URL. This gives the agent visual context while keeping the image available for later website changes. The agent can reference or embed the CDN-hosted asset like any other project image. Each attached image also arrives with its extracted color palette, so a reference screenshot’s exact hex values reach the agent instead of estimates. A message may include up to 8 images. Most attachments are momentary context, such as a pasted screenshot of the layout you want, so they do not fill the asset library. An attached image is uploaded withlisted: false and stays out of asset lists until the website uses it: once a source edit, CMS field, or favicon references the asset, it appears in the Assets tab and in GET /v1/websiteAssets like any other upload. Attachments are never described automatically, and the agent can always look at one again by id.
Point at elements in the preview
Click the crosshair in the prompt box to select elements in the draft preview. Hover to see what will be picked, click to select it, and hold Cmd (Ctrl on Windows and Linux) to add or remove more. Press Escape or click the crosshair again to stop. Each pick appears as a chip such ashome <h1> above the prompt, and the message’s placeholder changes to ask about the selection.
When you send, the agent receives a short description of each element: the page it belongs to, its tag, classes, text, key attributes, its position in the page, and the preview width you were using. It resolves those against the source before editing and treats “this” or “these” in your message as the selected elements. The chips stay on the sent message in the conversation. A message may target up to 10 elements, and a selection alone does not send; add an instruction.
Selections stay queued when the preview updates or you navigate to another page. They keep the original element descriptions, even if an edit changes or removes those elements. Remove a chip to discard a target; sending the message clears the queued selection. Targeting is available on desktop and tablet; the mobile layout stacks the preview under the conversation, so it has no crosshair.
Add durable project context
Use the website’s Context tab for references the agent should retain across conversations, such as brand guidelines, research, briefs, and moodboards. The agent receives a concise index of ready resources and searches or reads only the relevant text ranges, images, or pages when needed. Context files stay private to the website and are not published as website assets. See Project context for supported formats, limits, processing behavior, and privacy details.Choose a model tier
Cactal exposes stable branded tiers instead of making clients depend on provider model ids:- Fast is the default, is available on free and paid plans, and currently uses high reasoning for its underlying model.
- Standard uses Gemini 3.8 Flash with high reasoning, and requires a paid plan.
- Max uses Kimi K3 with high reasoning, served through OpenRouter on a fixed set of verified providers, and requires a paid plan.
GET /agent/capabilities returns the current tier labels, descriptions, relative cost levels, supported reasoning efforts, plan requirements, underlying provider models, and whether the website’s billing organization can use paid tiers. Clients should render and gate from that response instead of maintaining a separate model list. Cactal can change the provider model behind a tier without changing the tier id stored with a run.
The server checks the plan when a run is submitted and again before queued work reaches the model. A free-plan request for Standard or Max is rejected even if a client bypasses its own controls.
Finish reliably within a run
Cactal caches stable instructions and conversation prefixes during multi-step work, measures the active tool definitions instead of reserving a fixed context estimate, and limits each model-visible tool result. When the active prompt reaches 100,000 estimated tokens, older completed tool calls and results are replaced in model input with small operation receipts while the latest three completed pairs stay intact. The durable conversation still retains the original tool traffic. Cross-run history is summarized at user-turn boundaries when it reaches the same threshold, with compaction usage included in the run’s recorded usage and credit charge. Images the agent generates draw from the credits already reserved for the run instead of opening a second reservation, so a run never competes with its own hold for credits. If an image batch does not fit in the remaining run budget, the agent is asked to request fewer images. The run spending limit still applies. Every normal step preserves enough inference allowance for a final response. When a run approaches its cost limit, the agent stops calling tools and summarizes completed work, validation, and anything unresolved. If even that final request cannot fit, the conversation reports the inference cost limit separately from a model-provider failure, and completed draft edits remain available. Optional preparation has a capped allowance and uses recent conversation context for skill selection. If the available credits cannot cover the conversation and a useful response, Cactal asks you to add credits before starting its main response. Long conversations may require paid summarization before that check. Retrying without more credits does not resolve an insufficient-allowance notice. When an identical tool request succeeds after an earlier failure, its earlier attempt is labeled Succeeded on retry and remains inspectable. A different tool request does not clear the failure. Repeated failures are bounded; the agent should explain any work or visual verification it could not complete. Active work continues during planned server updates. Brief service-check failures are retried automatically. If Cactal cannot confirm that continuing is safe, the run stops with a service-interruption notice; completed draft changes remain available. Uncertain changes still require checking the draft before retrying.Observe runs
Agent subscriptions send message and state snapshots. State snapshots refresh when queue or run state changes, so subscribers can keep queued, running, and terminal states current without reconnecting. The opening message snapshot contains the latest 10 complete conversation turns, not an arbitrary number of low-level stream events. One turn begins with a user submission and includes the assistant text, tool calls, results, approvals, and retries that follow it. If earlier turns exist, the state snapshot includes an opaque history cursor.GET /agent/history?threadId=...&cursor=... returns the next page in the standard { items, nextCursor } envelope. Clients may request up to 20 turns per page and should treat cursors as opaque.
When a selected model exposes reasoning, the subscription protocol carries it alongside assistant text and tool calls. The built-in conversation keeps that private reasoning out of the transcript and shows concise actions plus a working state instead. Reconnect snapshots preserve the protocol stream, while future model context excludes reasoning.
Retrying the latest failed turn creates a linked run attempt without adding another copy of the user message or uploading its attachments again. Earlier attempts remain durable for usage and audit records, while the conversation shows the latest attempt.
User events retain the authenticated principal id. Display names are resolved from the current principal profile when events are read, rather than copied into the durable transcript. Successful and interrupted RUN_FINISHED events include result.creditsCharged alongside token usage.