rekhu

Rekhu Assistant · for your own app

An assistant inside your app that gets the job done.

Your customers ask in their own words. Rekhu Assistant answers from your help, opens the right page, and does the task through your own code, as the signed-in user, with their permissions. One package on your server, a chat in your app, ready in an afternoon.

Laravel Node.js Flutter

What your customers get

Not a chatbot that only talks. A colleague that can act.

Actions from your own code

Mark a controller method or define a function, and the assistant can do that job: reorder, change an address, book a slot. Your validation checks every input, as it does for your forms.

As the signed-in user

Your own sign-in decides who is asking. The assistant only offers what that person may do in your app, and every action runs with their permissions.

A click, never a typed yes

An action that changes something shows a confirm card first. It runs only after the user taps Confirm.

Pages and help

It answers from your own help articles and sends people to the right page or screen, in their language: English, Arabic (right to left), Dutch, or your own words.

A public chat for visitors

Optionally for people who are not signed in yet, answering from your help, with limits per visitor, per IP address and per day.

Usage per customer

Every app is a project in your Rekhu account, with keys per environment, one monthly limit, a pause, and usage per user or per company, as a report and a CSV.

Your stack

Laravel, Node.js or Flutter. One assistant, one account.

rekhu/assistant-laravel

For Laravel 12 and 13, with Blade, Livewire, Inertia (Vue or React) or an API for Nuxt, Next or a mobile app. Put #[Tool] on a controller method: the form request's rules become the input, your controller does the work.

  • A chat component for your layout, or your own design
  • Single tenant or multi-tenant, usage per user or per company
  • An artisan command that shows what the assistant sees

@rekhu/assistant-node + @rekhu/assistant-widget

For Express, Next.js, Nuxt, Hono, Remix, SvelteKit, Bun and Deno, without dependencies. Your functions become actions with defineAction; the widget is a 7 kB web component for Vue, React or plain HTML.

  • The secret key stays on your server, like a payment key
  • Inputs checked against their schema before your code runs
  • TypeScript types included

rekhu_assistant for Flutter

A ready chat screen for iOS, Android, web, macOS, Windows and Linux, as a page or a bottom sheet, talking to your own Laravel or Node.js back end with the token your app already uses.

  • Streaming answers, page buttons and confirm cards
  • English, Arabic (right to left) and Dutch built in
  • Your own design on the same connection, if you prefer

# install

$ composer require rekhu/assistant-laravel

$ php artisan rekhu:assistant-install --key=agk_…

// a first action, in your own controller

#[Tool('Reorder a past order')]

public function reorder(ReorderRequest $request, Order $order)

{ // the same code as the form }

<!-- the chat, in your layout -->

<x-rekhu-assistant />

# install

$ npm install @rekhu/assistant-node @rekhu/assistant-widget

defineAction({

name: 'reorder',

input: { orderNumber: 'string' },

run: async (input, { user }) => orders.reorder(input, user),

})

app.use('/api/rekhu', assistant.express())

mount({ endpoint: '/api/rekhu/chat' })

# install

$ flutter pub add rekhu_assistant

final client = RekhuAssistantClient(

endpoint: Uri.parse('https://api.example.com/api/rekhu/assistant/chat'),

headers: () async => {'Authorization': 'Bearer …'},

);

RekhuChat.show(context, client: client);

How it works

Your app stays in charge

  1. 1

    Your customer asks in the chat in your web app or mobile app, signed in the way they always are.

  2. 2

    Your server prepares the answer with only the actions, pages and help this person may use, and calls Rekhu with your secret key.

  3. 3

    Rekhu answers and asks for an action when one is needed; your server runs it as the user, after their confirmation.

  4. 4

    The answer streams back with the result, the page to open, or the next question.

Safe by design

Built so it cannot overstep

  • The secret key never leaves your server; the browser and the app only talk to your own routes
  • Nothing calls into your app from outside: it works the same on a laptop and in production
  • Every action is your own code, with your own validation and permission checks
  • Changes wait for a click on a confirm card; a typed "yes" runs nothing
  • Users are known to Rekhu by their id only, never by name or e-mail
  • A monthly limit and a pause per app, with a message at 80% and 100%

Questions

What developers ask first

+What is Rekhu Assistant?

A ready AI assistant you build into your own web or mobile app, for your own customers. It answers questions from your help, opens the right page, and carries out tasks through the actions you define, as the signed-in user and with their permissions.

+Which frameworks does it work with?

On the server: Laravel 12 and 13 with rekhu/assistant-laravel, and any Node.js server (Express, Next.js, Nuxt, Hono, Remix, SvelteKit, Bun, Deno) with @rekhu/assistant-node. In front: Blade, Livewire, Inertia, Vue, React, plain HTML with the web widget, and Flutter for iOS, Android, web and desktop with rekhu_assistant.

+Can the assistant do something the user is not allowed to do?

No. It runs every action through your own code as the signed-in user, so your permission checks apply, and anything that changes data waits for the user to confirm with a click.

+Where is my secret key kept?

Only on your server. The browser and the mobile app talk to your own routes; your server calls Rekhu. Nothing calls into your app from outside.

+What does it cost?

There is no subscription. Conversations are paid from the prepaid credit on your Rekhu account, from $10, and each app has a monthly limit you set, so the cost never runs away.

Give your app an assistant this week.

Create a free account, add your app as a project, install the package for your stack, and mark your first action.