
Clinical Intake Agent Review
A Next.js 16 app that conducts pre-visit clinical intake via web chat or VAPI phone calls and produces a structured clinical brief.
Each review covers deployability, value versus commercial alternatives, and privacy model. Tools that can run locally were started and exercised; mobile or backend-dependent tools were assessed from published builds, source code, and deploy guides. Ratings reflect what we were able to verify.
Clinical Intake Agent — Web Chat & Voice Intake for Clinicians
A Next.js 16 app that conducts pre-visit clinical intake via web chat or VAPI phone calls and produces a structured clinical brief. Last updated: 2026-06-21.
One-sentence verdict: A feature-rich intake agent with web and phone modalities and solid brief extraction, but VAPI setup and in-memory state keep it in the prototype category.
What the System Is
Clinical Intake Agent — also referred to as Wardly Clinical Intake Agent — is a Next.js 16 application that collects pre-visit patient information through two surfaces: a streaming web chat and inbound/outbound phone calls via VAPI. The conversation is powered by Claude Sonnet 4.5 (chat) or Claude 4 (voice). When the user finalizes the chat or hangs up the phone, a separate call extracts a structured clinical brief containing chief complaint, HPI in OLDCARTS form, ROS by body system, red flags, pertinent negatives, allergies, medications, past medical history, narrative summary, and recommended triage.
The deploy guide reports the service was started on port 5012.
| Key data | |
|---|---|
| Category | Clinical Intake |
| Language | TypeScript / Next.js |
| License | Unknown (no LICENSE file) |
| Self-hosted | Yes |
| AI provider | Anthropic Claude (Sonnet 4.5 chat, Sonnet 4 voice) |
| Voice platform | VAPI |
| Database | None; in-memory globalThis Map, with optional Upstash Redis |
| Auth | None |
| Tests | 13 Vitest unit tests for schema validation and store mutations |
How to Install and Deploy
cd /data2/docker/going-global/repos/clinical-intake-agent
cp .env.example .env.local
# Add ANTHROPIC_API_KEY (required for web chat and brief extraction)
# Add VAPI_API_KEY and VAPI_PHONE_NUMBER_ID only if enabling voice
npm install
PORT=5012 npm run dev
Then open http://localhost:5012 for the web chat interface.
To enable voice locally, expose the dev server with ngrok, set PUBLIC_BASE_URL to the ngrok URL, run npm run setup:vapi, copy the printed VAPI_ASSISTANT_ID into .env.local, and restart.
How to Test
The documented test flow is:
- Open
http://localhost:5012. - Start a chat intake and describe a symptom.
- Verify the conversation streams and the brief view renders after clicking Finalize.
- Review the structured brief (CC, OLDCARTS HPI, ROS, red flags, narrative summary).
- Run
npm testfor the 13 unit tests covering Zod schema validation and in-memory store mutations. - If voice is configured, call the VAPI number or trigger an outbound call and verify the end-of-call webhook generates a brief.
Privacy & Compliance
Clinical Intake Agent is not HIPAA compliant. It has no authentication by default, stores sessions in an in-memory Map (or optional Redis), and sends transcripts to Anthropic. The README notes that a real deployment would use Postgres or KV, add clinician auth, and address PHI handling. Do not use it for real patient data without those additions.
Clinical Intake Agent vs Commercial Intake Tools
| Dimension | Clinical Intake Agent | Commercial Tools (e.g., Notable, Nabla, Ambience Healthcare) |
|---|---|---|
| Cost | Free / self-hosted + Anthropic + VAPI usage | Enterprise subscription |
| Channels | Web chat + inbound/outbound phone | Phone, portal, EHR-embedded |
| Structured output | Zod-validated ClinicalBrief JSON | EHR-compatible notes |
| Voice platform | VAPI | Proprietary or integrated telephony |
| State storage | In-memory (optional Redis) | Persistent, audited cloud storage |
| Auth / HIPAA | None documented | BAA, SSO, audit logs |
| Customization | Full source code | Vendor-controlled |
| Clinical validation | None claimed | Often reviewed by clinicians |
Who Should Use It
- Developers exploring multi-modal intake (chat + phone) with Claude and VAPI.
- Teams that need a working example of structured brief extraction via tool-use.
- Prototypers who want a clinician-facing brief view alongside a patient chat.
Who Shouldn't Use It
- Clinics needing persistent, authenticated, or HIPAA-compliant intake.
- Users who want a fully self-contained voice solution without VAPI.
- Organizations requiring EHR integration or enterprise audit controls.
FAQ
Is Clinical Intake Agent free?
There is no LICENSE file, so reuse rights are unclear. Running it requires an Anthropic API key, and voice features require a VAPI account.
Does it need VAPI?
No. The web chat works with only an Anthropic API key. VAPI is required only for inbound or outbound phone calls.
Why does voice use Claude 4 instead of Claude 4.5?
The README states that the VAPI SDK type union does not yet include Claude 4.5, so the voice assistant uses Claude 4. The chat path uses Claude 4.5.
Verdict
Clinical Intake Agent is the most feature-complete web + phone intake prototype in this batch. The structured brief extraction and dual-modal design are genuinely useful references. Production use would require replacing the in-memory store, adding authentication, and building out HIPAA safeguards.
Ratings: Deployability 3/5 · Value vs Commercial 3/5 · Privacy Compliance 2/5
