← All updates

What's new in Butler - April 11, 2026

Comprehensive privacy policy and terms of service

Both legal pages have been completely rewritten to be launch-ready. The privacy policy now covers Google API Limited Use compliance, CCPA/CPRA California rights, children's privacy (COPPA), cookies, data breach notification, and all third-party services. The terms of service now include proper warranty disclaimers, limitation of liability, indemnification, arbitration, IP ownership, age requirements, and termination rights.

Graceful error recovery instead of white screen

When Butler's session expires or your network changes, you now see a branded "Butler lost connection" screen with a Reconnect button instead of a blank white page with a cryptic error message.

Daily automated smoke test

Butler now tests all its services every day at midnight - Supabase, Anthropic, Resend, Google Calendar, and Stripe. If any service is down, you get an email alert immediately.

Comprehensive FAQ page with 30+ questions

Butler now has a dedicated FAQ page at trybutler.xyz/faq covering every use case - flight booking, phone calls, calendar, groceries, parenting, holidays, dining, and more. All 30+ questions are embedded as structured data (JSON-LD FAQPage schema) so AI assistants like ChatGPT, Perplexity, and Gemini can recommend Butler when people ask questions like "Can AI book flights for me?" or "Is there an AI that makes phone calls?"

Daily question feels like a friend, not a survey

The daily question on the home screen used to feel like an interrogation - asking about insurance policy numbers and auto companies. Now it rotates between three modes: "What can I do for you?" (action-oriented), "Life logistics" (activities, trips, birthdays), and occasional "Life details" (only for active users). New users never get asked about insurance or accounts - they get questions like "Any errands you've been putting off? I'll handle them."

Task activity dashboard in admin panel

The admin panel now has a Tasks tab showing every task across all users - who created it, what it was, whether it succeeded or failed, and what each step produced. Tap any task to expand and see step-by-step results. Summary cards show total, done, active, and errored task counts.

"Try this" cards replace the empty home screen

New users no longer see a blank home page with a generic "Create your first task" prompt. Instead, they see five tappable task cards - check your calendar, schedule an appointment, find flights, plan meals, plan a party. One tap starts the task immediately. No thinking required.

Simple tasks execute instantly without a plan

Reminders, calendar adds, and calendar lookups now skip the entire chat→plan→approve flow. Type "What's on my calendar this week?" and Butler executes immediately - no plan card, no approval button, no waiting. Complex tasks still get the full planning flow.

30 free credits instead of 12

New users now get 30 free credits (~10-15 tasks) instead of 12 (~4 tasks). Research shows 7-10 successful interactions are needed before a behavior sticks. 12 credits wasn't enough runway for users to experience Butler's full value before hitting the paywall.

Daily PM report emails you every morning

Butler now has an automated product manager that checks real metrics every day at 7am PST and emails you a report: DAU/WAU trends, task completion rates, stuck tasks, user breakdown, and 3 ranked action items for the day. The report uses real database numbers - never hallucinated - and is designed to be read on your phone in 60 seconds.

Voice input available alongside text

The mic button in the message input lets you speak your task instead of typing. Tap it to start, tap again to stop. Text input is always the default - the keyboard shows immediately so you can start typing right away. Voice is one tap away, never forced.

Session expiry auto-recovers instead of crashing

When your Clerk session expired after leaving a tab idle, the app showed "Something went wrong" with no way to recover. Now the task page and home page detect auth failures and auto-reload to get a fresh session. If auto-recovery fails, the error screen says "Session expired" with a clear Reconnect button - not the cryptic "Something went wrong."

Butler uses its tools when you ask for actions mid-task

When you said "send an email to Masako," Butler replied "I cannot send emails" - even though it has the send_email tool. The re-execution prompts (used when you reply mid-step) didn't include the tool list or the execution rule. Now all prompts explicitly list available tools and include "NEVER say you can't do something you have a tool for."

Task plans are leaner - no more 7 steps of redundant research

The planner was generating 5-8 steps for every task, regardless of complexity. "Find anime classes near me" got 7 overlapping research steps. Now the planner adapts: 1-2 steps for simple tasks, 2-4 for medium, 4-6 max for complex travel. Each step must produce a decision or action, not just gather more data.

Install Butler prompt for non-PWA users

Users who haven't installed Butler as an app see a friendly prompt explaining how to add it to their home screen. On iOS, it shows step-by-step instructions (tap share → Add to Home Screen). On Android/Chrome, it shows a one-tap Install button. Installing enables push notifications and a full-screen experience.

Fixed: AI internal reasoning no longer leaks into conversations

Butler's internal thinking (`<think>` tags) was appearing in task results and conversation messages. All AI reasoning is now stripped at three layers: when results are generated, when they're summarized, and when they're displayed. Users never see internal reasoning.

Fixed: Butler actually does things instead of telling you to do them

Butler was sometimes telling users "Call this number to confirm" instead of making the call itself. Added a strict rule: if Butler has a tool for it (phone calls, emails, web search), it must use the tool - never tell the user to do it manually.

Push notification prompt after first task success

Butler no longer asks for push notification permission the moment you land on the home page. Instead, it waits until your first task completes successfully, then shows a friendly "Get notified when tasks finish?" banner. You can enable notifications when you've seen value - not before.

"What people are asking Butler" social proof

The landing page now shows real examples of completed tasks - "Called the dentist and booked a cleaning" (3 min), "Found and booked SFO→JFK flights" (2 min), "Built a weekly grocery cart" (4 min). Six examples spanning phone calls, flights, groceries, kids' activities, birthdays, and home repairs. Builds confidence that Butler actually works.

Full-width desktop landing page

The landing page no longer looks like a phone app on desktop. It breaks out of the 430px constraint and uses the full screen width with 3-column grids for features, steps, and social proof cards. Responsive: 3 columns on desktop, 2 on tablet, stacked on mobile. The app pages (home, tasks, profile) stay at 430px mobile-width.

Proactive suggestions no longer repeat completed or dismissed tasks

Butler's daily scanner was suggesting things you'd already done - like "coordinate birthday gifts" when you already had a completed task for exactly that. The scanner now checks your last 30 days of tasks, extracts people names and action types to build a deterministic blocklist, and passes both the raw tasks and the blocklist to the AI. If Chotu Didi's birthday appears in any recent task, the scanner won't suggest anything birthday-related for her again. Dismissed suggestions are also tracked permanently.

Butler actually listens when you correct it

When you told Butler "I'm flying from London, not SFO" or "it's just me, not my family," Butler kept ignoring you. The profile data (home: Hillsborough, CA, family: 4 people) was overriding your explicit words. Fixed: user corrections now appear at the TOP of the execution prompt, profile data is marked as "background only," and previous rejected output is labeled as such. This fix applies to both the initial correction and any follow-up corrections in the decision loop.

Rejected steps require your approval before proceeding

Previously, when you said "that's wrong" or "WTF" on a step result, Butler would re-execute and then silently mark it as done - even if the new result was still wrong. Now Butler detects rejection signals (angry words, "wrong," "I told you," "fix this") and enters a verification loop: it re-executes, shows the new result, and asks "Does this look right?" before proceeding. Only your explicit confirmation ("yes," "looks good," "book it") marks the step as done. After 8 rounds of rejection, Butler acknowledges it's struggling and asks for clearer instructions instead of bulldozing forward.

Flight search uses web as fallback when Duffel is limited

Butler's flight search API (Duffel) doesn't carry all airlines - Icelandair direct London→Iceland flights were missing entirely, leaving Butler stuck with SAS connections via Copenhagen. The prompt used to say "NEVER use web_search for flights." Now Butler searches Duffel first, then supplements with web search when results don't match what you want (wrong city, missing nonstop options, missing evening departures). Results are clearly labeled: bookable through Butler vs. book-it-yourself reference prices.

Step labels are rewritten on correction, not appended to

When you corrected Butler ("I'm flying from London, not SFO"), the step label was staying as "Search flights from SFO to London [CORRECTED: flying from London]" - and the AI reasoning model used at the time kept anchoring on the "SFO to London" part. Now Butler uses a cheap the AI reasoning model used at the time call to fully rewrite the label: "Search premium economy flights London to Iceland, May 7 evening, 1 passenger." Clean, unambiguous, no leftovers from the wrong instruction.

Chat history preserved when tasks are created

Previously, the conversation you had with Butler on the "New task" screen disappeared when the task was created - the task page showed only the checklist and execution messages, losing the context of what you originally asked for. Now the full conversation is saved to the task before execution starts, so you can always see what you asked and what Butler understood.

Hotel and flight results no longer get cut off

Butler's responses were capped at 120 words - fine for "your appointment is booked" but way too tight for presenting 3 hotel options with names, prices, amenities, and locations. Responses now allow up to 300 words when presenting multiple options. Hotels include a Google search link so you can see photos, reviews, and book directly.

Inline approve/reject buttons replace hidden approval flow

When Butler needs your go-ahead to book a flight or make a call, the approve/reject buttons now appear right in the conversation - both in the checklist and at the bottom of the chat. Buttons fire both event types (user-reply and transaction-approval) so they work regardless of which Inngest workflow is waiting. The page auto-scrolls to the buttons when a task enters awaiting status, and the "Needs approval ↓" label in the checklist scrolls down to them when tapped.

Butler no longer marks rejected steps as "done"

Previously, if you told Butler "this is wrong" during a flight search, Butler would re-execute and then mark the step as "done" - even if you hadn't confirmed the new result. Now, decision-point steps (flights, hotels, bookings) ONLY complete when you explicitly confirm ("yes", "book it", "sounds good"). If Butler gets it wrong, the loop continues until you approve. After 8 rounds without confirmation, the task parks at "awaiting" instead of auto-completing with bad data. On the task page, if you reject a completed step ("that's wrong", "WTF"), Butler acknowledges the mistake with "I'm sorry - let me redo that" instead of treating it as a new request.

Calendar events actually get created now

Previously, tasks like "add dinner to my calendar" would show as completed but the event was never actually created on Google Calendar. Butler was taking a shortcut that skipped the real calendar API. Fixed - calendar, email, and shopping tasks now go through the full execution engine so real actions happen.

Butler no longer guesses email addresses

Butler was fabricating email addresses for family members when creating calendar invites (e.g. making up "[private email redacted]"). Now Butler asks you for real email addresses before sending invites or emails to anyone. If it doesn't know an address, it asks - it never guesses.

World model uses your name, not "user"

When Butler learned things about you (like your dentist or doctor), it was storing entries as "user" instead of your actual name. Now it uses your name, making the profile cleaner and preventing the daily question from re-asking things it already knows.

"I don't know" stops the question for good

If Butler asks you a daily question and you say "I don't know" or "skip," it permanently remembers that topic and never asks about it again. Previously it would keep cycling back to the same question.

Blog with weekly updates

Butler now has a blog at trybutler.xyz/blog that publishes automatically every week. Each Friday, Butler reads the week's git commits, writes up the user-facing changes in plain English, and publishes them - no manual work. The blog also has 20 detailed guides showing exactly how Butler handles flights, hotels, groceries, appointments, and more.

Dark mode works everywhere now

The landing page, blog, privacy policy, terms of service, task cards, and plan previews all respect your system dark/light preference. Previously, several screens had hardcoded light-mode colors that were unreadable in dark mode.

Better SEO and AI discoverability

Butler is now findable by search engines and AI assistants. The site has a dynamic sitemap, RSS feed, structured data (JSON-LD), and llms.txt files so AI tools like ChatGPT and Perplexity can understand what Butler does and recommend it.

Custom 404 page

If you hit a bad URL, you now see a branded Butler page with links back home instead of a generic error. ---

See what Butler can do for you today - it's free to start.

Get started with Butler →