Skip to content

Web Chat

Selu ships with a built-in web chat interface. It’s the fastest way to start talking to your agents — no extra apps or accounts needed.

The web chat interface showing the conversation sidebar and chat area.

Once Selu is running, open your browser and navigate to your Selu instance:

http://localhost:3000

If you’ve configured a custom domain or port, use that address instead. The chat interface loads automatically and connects to your default agent.

The web chat interface includes:

  • Real-time streaming — Responses appear as the agent generates them, so you don’t have to wait for a full reply.
  • Conversation history — Your recent conversations are saved and organized by pipe.
  • Multi-pipe support — Switch between different ways to talk to your agents (web, Telegram, iMessage, etc.).
  • Mobile friendly — The interface adapts to phones and tablets with a slide-in conversation drawer.
  • Slash commands — Use special commands starting with / for quick actions.
  • Interactive approvals — When agents need permission to use tools, you get inline approve/deny buttons.
  • Thread management — Organize conversations into separate threads for better context.

Selu automatically provides agents with date and time context in your configured timezone. When you mention relative dates like “tomorrow” or “next Friday,” your agent understands them correctly based on your local time, not server time.

The system includes explicit anchors for:

  • Current date and time in your timezone
  • Today’s date
  • Tomorrow’s date
  • Yesterday’s date

This ensures accurate scheduling and date-based requests across all time zones. You can update your timezone setting on the Schedules page.

When you have tool policies set to Ask, web chat provides the smoothest approval experience:

  1. The agent pauses and shows: “I want to use [tool name]. Approve this action?”
  2. You see Approve and Deny buttons right in the chat
  3. Click your choice and the agent immediately continues or adapts

This is faster than the approval flow in messaging channels like Telegram or iMessage, where you need to send a reply message.

You can attach images to your messages in web chat. Selu automatically handles sizing before sending them to the AI model:

  • Images that are within the model’s size limit are sent as-is.
  • Oversized images are downscaled and recompressed automatically so the conversation doesn’t fail.
  • If an image is too large to compress down to fit, it’ll be skipped — the agent will let you know and you can try a smaller version.

On mobile devices, the chat interface adapts for smaller screens:

  • Slide-in drawer — Access conversation threads via a chat bubble icon in the top bar.
  • Thread selection — When a pipe is selected but no thread is active, tap “Open conversations” to see available threads.
  • Auto-dismiss — The thread drawer closes automatically when you select a conversation.
  • Close controls — Use the × button or tap the backdrop to manually close the drawer.

Web chat supports slash commands for quick actions without leaving the conversation. Commands are handled immediately and don’t go through the agent — they’re processed directly by Selu.

Create and manage recurring schedules:

  • /schedule add <prompt + timing> — Create a new recurring schedule
  • /schedule list — Show all your active schedules and reminders
  • /schedule delete <name> — Remove a schedule or reminder
/schedule add Give me a morning summary of my calendar and weather every weekday at 6:45 AM
/schedule add Check my emails every hour during work days
/schedule list
/schedule delete morning-summary

Set reminders for specific future times:

  • /remind <prompt + timing> — Create a one-shot reminder
/remind Check the weather and email about grilling next Sunday morning
/remind Call the dentist tomorrow at 3pm
/remind Review the quarterly report in 2 hours

The AI automatically:

  1. Separates the task from timing — Understands what you want done vs. when you want it
  2. Detects schedule type — Distinguishes between recurring (“every day”) and one-time (“tomorrow”) requests
  3. Parses natural language timing — Converts phrases like “every weekday at 6:45” into proper cron schedules or specific timestamps
  4. Handles timezone conversion — Uses your configured timezone for accurate scheduling
  5. Pins to agent — Schedules created via slash commands are pinned to the current agent

When you create reminders using slash commands or through agent conversation, Selu handles timing intelligently:

  • Times with explicit timezone/offset (like 2026-03-04T11:10:00+01:00) are used exactly as specified
  • Simple times without timezone (like “tomorrow at 3pm”) are interpreted in your configured timezone
  • Your timezone setting can be updated on the Schedules page in the web interface

This means if you’re in Berlin and say “remind me at 3pm,” Selu creates the reminder for 3pm Berlin time, not UTC.

Even without slash commands, your agents can create schedules and reminders directly during conversation. When you ask an agent to set up recurring tasks or remind you of something, it uses built-in scheduling tools:

You: "Remind me to check the weather tomorrow morning"
Agent: "I've set a reminder for tomorrow at 8:00 AM to check the weather for you."
You: "Every weekday morning, give me a summary of my calendar"
Agent: "I've created a recurring schedule to give you a calendar summary every weekday at 8:00 AM."

This creates the same schedules and reminders as the slash commands, but feels more natural in conversation. The reminder will be pinned to the agent that created it, ensuring consistency when it fires.

When agents create schedules or reminders using their built-in tools (either through natural conversation or slash commands), these are pinned to the creating agent. This means:

  • The same agent that created the schedule will always execute it
  • Even if you change your pipe’s default agent later, pinned schedules continue using their original agent
  • This prevents automation workflows from drifting to different agents over time

You can see which agent owns each schedule on the Schedules page in the web interface.

Web chat organizes your conversations into threads for better organization:

  • Multiple pipes — Each pipe type (web, Telegram, iMessage) appears separately
  • Thread history — Each conversation thread maintains its own history and context
  • Easy switching — Click any conversation in the sidebar to switch to it
  • New conversations — Start fresh conversations with the “New conversation” button

When you have multiple pipes configured, the sidebar shows each one with its active conversation threads underneath.

When your schedules and reminders fire, their results automatically appear as new conversations in web chat (if web chat is configured as one of the target pipes). These conversations are marked with special status indicators:

  • Scheduled run — For recurring schedule executions
  • Reminder — For one-time reminders that fired

The pinned agent can use any of its tools during scheduled runs, so complex tasks like checking weather, sending emails, or analyzing data all work automatically.

If the chat interface doesn’t load, check that:

  1. The Selu server is running (docker ps should show the Selu containers).
  2. Port 3000 (or your custom port) is not blocked by a firewall.
  3. Your browser supports modern JavaScript (any recent version of Chrome, Firefox, Safari, or Edge will work).

If you can’t access conversation threads on mobile:

  1. Look for the chat bubble icon in the top bar (appears only on the Chat page).
  2. If you’re in an active conversation, try the hamburger-style button in the chat header.
  3. When no thread is selected, look for the “Open conversations” button instead of sidebar text.
  4. If no conversations appear, make sure you have at least one pipe configured.

If images aren’t being processed as expected:

  1. Check that the file is a supported image format (JPEG, PNG, GIF, or WebP).
  2. If the agent says it can’t see the image, the file may have been too large to compress below the model’s size limit — try a smaller version.
  3. Very large images (over 10 MB) may take a moment to process before the message sends.

If slash commands aren’t working:

  1. Make sure you’re typing them at the start of a message with /.
  2. Check that the command syntax is correct.
  3. Verify you have permission to create schedules (if using schedule commands).
  4. Ensure you have at least one pipe configured for schedule results.

If one-time reminders aren’t working:

  1. Check that the fire time is in the future (reminders for past times are ignored).
  2. Verify your timezone setting on the Schedules page.
  3. Look at the Schedules page — reminders appear there with “Fires once” badges.
  4. After firing, reminders show as “Completed” and are automatically cleaned up after 7 days.
  5. Make sure the pinned agent has all necessary permissions and credentials.

If your reminders are firing at the wrong time:

  1. Check your timezone setting on the Schedules page.
  2. Make sure you’re using times without explicit timezone offsets when you want them interpreted in your local timezone.
  3. If you need a specific timezone for a single reminder, include it in the time (like 2026-03-04T15:00:00+01:00).

If you don’t see inline approval buttons for Ask-policy tools:

  1. Check that the tool policy is set to “Ask” (not “Deny” or “Allow”).
  2. Refresh the web chat page to ensure you have the latest interface.
  3. Make sure JavaScript is enabled in your browser.
  4. Try the action again — some network issues can prevent the approval UI from loading.

If your conversation threads aren’t showing up:

  1. Ensure you have at least one pipe configured (visit the Pipes page if you’re an admin).
  2. Try starting a new conversation with the “New conversation” button.
  3. Check that the pipe is active and properly connected.
  4. On mobile, use the chat bubble or hamburger buttons to open the conversation drawer.