The AI harness for SaaS products

Your users ask.
Your product does it.

Point it at your documentation and it answers from day one. Connect your API when you're ready and it completes tasks too. And it shows you where your product is falling short. No AI team. No new backend. No rebuild.

Early beta. Rough in places, and we’d rather you saw it anyway.

Workflow
Product Context
General Question
0
AI engineers needed
10 min
From signup to live
100%
Runs in your user's own session
The problem

Your users are stuck.
You can’t see where.

Every release widens the gap between what your product can do and what your users can get it to do.

ADOPT

Features ship, adoption doesn't.

The capability exists. The path to it doesn't. Users never discover the thing you spent a quarter building.

TICKETS

Support answers the same questions forever.

Most tickets aren't bugs. They're navigation, and documentation that went stale two releases ago.

ACCOUNT

Docs can’t answer “why is mine broken?”

Most questions are about the user’s own data, not your documentation. A help article can’t see their account, so the ticket gets opened anyway.

BLIND

You can't see what users wanted.

Analytics tell you what people clicked. Nothing tells you what they were trying to do. Or what they couldn't.

The solution

Not three different tools.
One that does all three.

It answers like a support agent, reads your live data like an analyst, and completes the task like an assistant, so users get what they came for and support hears about it less.

General QuestionAnswered instantly
Can I carry over unused leave?
Answer

Partly. You can carry over up to 10 days of Annual Leave into next year. Sick and Personal Leave don't carry over; they lapse on 31 Dec.

Source: HR Policy v3.2 · last updated Jan 2026

Grounded in your real documentation. No hallucinations, every answer cites its source.

Why CommandPal

Bolt on a chatbot, hire a team,
or turn it on today.

A docs chatbot answers questions but can't do anything. Building it yourself works, but it costs you a quarter and two engineers who should be shipping your product.

Build it yourself
Months of plumbing that isn't your product.
CommandPal
Add your docs. Connect your API. Done.
CapabilityDocs chatbotBuild in-houseCommandPalOur approach
Answers questions from your docsYesYesYes, with sources cited
Publishes the docs your users readNoYou write every pageYes, on your own domain
Answers from live product dataNoIf you build itYes, per user and role
Completes tasks in your productNoIf you build itYes, with a plan
Runs in the user's own permissionsNot applicableYou build itAlways, by design
Shows where your product falls shortNoNoRanked intent gaps
Time to liveDaysMonthsMinutes
AI engineers requiredNoneTwo to threeNone
Workflow

How it works.
Intent to Action.

No navigation. No manual. Just intent. A user who knows what they want no longer has to know where it lives, so the feature you shipped last quarter stops depending on anyone finding it.

Your side · three steps, about ten minutes

01

Add your knowledge

A docs URL, PDFs, Markdown, plain text, a ZIP, or bulk-upload a whole folder. Indexing usually takes a few minutes.

02

Connect your API

Upload your OpenAPI spec and every endpoint is listed for review. Nothing is callable until you approve it: one endpoint, or a whole service at once.

03

Paste one script tag

A sandboxed iframe that runs in your user's own session. Its theme arrives pre-filled from your site, and every control is still yours.

ThenFrom day one you can see what users are asking for: intent clusters, completion rates, and the gaps where your product had no answer.

Your users' side · every request

01
Intent

User states what they want

No menu, no manual. One sentence in plain language. CommandPal reads the intent and takes over.

User intent
Onboard Alex Rivera as Product Manager, same setup as the last hire
No navigation. No manual. Just intent.
Workflow
02
Plan

A task plan is generated instantly

CommandPal breaks the intent into ordered steps. Everything it can resolve from live context is pre-filled automatically.

01Create employee profile for Alex RiveraAuto-resolved
02Assign role: Product ManagerAuto-resolved
03Clone permissions from last PM hireAuto-resolved
04Set reporting managerNeeds input
05Confirm start dateNeeds input
03
Dynamic UI

Only asks for what it doesn't know

Dynamic UI components surface inline to collect the essential user inputs. Click below to interact.

Reporting Manager
AK
Anna KimVP Product
SK
Sofia KellerHead of Engineering
MS
Marco SilvaDirector of Design
Start Date 14 July 2026
July 2026
‹
›
Mo
Tu
We
Th
Fr
Sa
Su
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
3 of 5 steps resolved from context · 2 inputs collected · ready to execute
04
Execute & Summary

Every step runs. Nothing is lost.

All 5 steps execute in sequence. A full summary is written: what ran, what changed, what's next.

Employee profile created for Alex Rivera
Role assigned: Product Manager
Permissions cloned from last PM hire
Reporting manager set to Sofia Keller
Start date confirmed · 14 July 2026
Pinned actions

The best interface for a weekly task
isn’t a chat box.

Chat is right when the request is new. For the things your users do every week, a named button is faster and more predictable. It also advertises what the product can do, so users find capabilities they never knew to ask for.

PINNED

One tap, not a prompt

Pin what your users do most often and give it a name. It becomes a button in the widget. Nothing to type, nothing to guess, no blank box waiting for the right words.

In the widgetSubmit last week’s expenses · Duplicate a schedule · Invite a teammate
DETERMINISTIC

The sequence is fixed

A pinned action replays the same steps every time instead of re-planning on each run. The steps don’t change; only the user’s inputs do. Reviewed once, then predictable.

Why it mattersA fixed sequence can’t be talked into doing something else.
MAINTAINED

Not a recording

Recorded automation breaks the moment an endpoint moves. When your API changes, CommandPal rebuilds the action and sends it back for approval. Your users never hit a broken one. Nothing goes live unapproved, including our own updates.

On an API changeaction rebuilt → awaiting your approval
What you get

Everything you'd have to build.
Already built.

Retrieval, tool calling, planning, safe execution, observability. The plumbing teams budget two engineers and half a year to build. And it still isn’t their product.

01

One ground truth

Web pages, PDFs, Markdown, plain text, ZIPs, or a whole uploaded folder. Deduplicated into a single source and version-controlled, so you can roll back to any earlier version.

You’d otherwise buildCrawlers, format converters, chunking, an embedding pipeline and a version store.
Sources indexed · 2,341 chunks
Answer retrieved · 98ms
Version 12 · rollback available
02

Docs you didn’t have to write

A hosted docs site generated from your ground truth, on your own domain via CNAME. Theme controls arrive pre-filled from your own site. Every knob is still yours. Edit any page in the builder.

You’d otherwise buildA docs platform: authoring, theming, navigation, search, versioning, hosting. Plus someone to write every page.
Published · 84 pages
docs.yourproduct.com · CNAME live
Written from ground truth
03

Your APIs become actions

Upload your OpenAPI spec and your endpoints are listed as candidate tools with AI-written descriptions. Nothing is callable until you approve it.

You’d otherwise buildA spec parser, tool schemas, and a deterministic authorization layer, because a prompt is not a security boundary.
POST /employees → awaiting approval
Schema inferred · 12 params
Approved by you · 6 of 14
04

Live product context

Answers grounded in your real-time state, resolved against the requesting user and their role, not a guess from documentation.

You’d otherwise buildThe plumbing to answer from live records without pasting them into the prompt, and to resolve “mine” and “my team” to the signed-in user before planning.
Context resolved · current user
4 employees matched
Last sync · just now
05

Plan, then execute

An intent becomes a step-by-step plan against your own API. Missing inputs are collected with generated UI cards, and nothing runs until the plan is complete.

You’d otherwise buildA planner, a step executor, dynamic input UI, confirmation gates and an audit trail.
3 steps auto-resolved
2 dynamic UI inputs surfaced
Executed in the user’s session
06

Intent gaps, ranked

Every request is classified and clustered into a ranked list of what users are trying to do, including the things your product can’t do yet.

You’d otherwise buildIntent clustering, question-level analytics, completion tracking, and the store to keep it all in.
847 intents this week
92% completion rate
5 gaps found · nothing matched
Shipping next
Diagnostics you write in plain English REST to managed MCP
Security and Privacy

It runs as the user.
Not as a service account.

CommandPal acts inside the session your customer is already signed into, so it inherits their permissions exactly. It cannot see or do anything they couldn’t do themselves. No backend key, no elevated account, nothing for us to over-permission. Your data never reaches the LLM or our servers: the model decides which APIs to call, and the data itself stays inside your platform.

How CommandPal separates planning from executionThe widget inside your product sends the user's intent to CommandPal, which returns a plan. Your product executes the plan against your own API using the signed-in user's session. CommandPal never calls your API and never receives your data.Your productthe signed-in user’s sessionCommandPal widgetsandboxed iframeCommandPalplans only · no records,no credentialsYour APIyour data, your systems01 INTENT02 PLAN03 EXECUTES IN THE USER’S SESSIONNEVER
The model receives intent and returns a plan. Your product executes it, with the signed-in user’s permissions, inside your own boundary.
01

Data stays in your platform

The LLM never sees your records. It receives intent and decides which APIs to call. Your data is read and written inside your own systems.

Zero data sent to LLM
02

Plan and execute, separately

The model plans the steps. Execution happens inside your product, in the signed-in user's own session, so the assistant can never do more than the person using it. No OAuth server, no new auth layer: it uses the session your users already have.

Never exceeds user permissions
03

Prompt injection, mitigated

Data never flows through the model as instructions, and the model can only call endpoints you have explicitly approved. Safety is structural, not bolted on.

Approved endpoints only
Get in touch

Rather talk it
through first?

Tell us what you’re building and we’ll show you what it looks like with CommandPal in it. On your product, not a demo account.