Scheduled Jobs

Automate any prompt to run on a schedule — daily, weekly, every N hours, or on demand — with full control over which tools and profile each job uses. Use the Step Builder to design custom multi-step workflows that chain tool calls into precise, repeatable sequences.

info Overview

A scheduled job is a saved prompt that runs automatically at configured times. Jobs are useful for:

newspaperDaily news briefings — fetch BBC top story, add background context, email the report
folderFile processing — scan a folder every few hours and summarise new files
monitoringMonitoring — periodically check a website or API and write a status report
mailAutomated reports — compile weekly summaries and send via Gmail integration
Important: Jobs only run while LexiChat is open (or hidden in the system tray). If the app is fully quit, scheduled jobs will not fire. The app is designed to run in the background — closing the window hides it rather than quitting it. See Background operation.

schedule Opening the Jobs Panel

Click the clock icon in the toolbar (top right, next to the Settings gear). The Jobs panel opens as a modal with two tabs:

Scheduled Jobs tab
List of all your jobs with their schedule, last run time, next run time, and status. Buttons to create, edit, run, enable/disable, or delete jobs.
Run History tab
Every execution logged with start/finish time, duration, and status. Expand any run to see the full debug trace and output.

When a job completes while the panel is closed, a badge on the clock icon shows the number of new runs.

add_circle Creating a Job

Click + New Job at the bottom of the jobs list. The job form has these fields:

Field Description
Job NameA short label shown in the job list and run history.
EnabledToggle the job on or off without deleting it.
ProfileWhich profile's tools and settings this job uses. See Profile & tools.
ScheduleWhen the job runs. See Schedule types.
ModelWhich Ollama model to use. Auto-populated from the profile's default.
PromptThe user message sent to the model on each run. Can reference today's date — it's injected automatically.
System Prompt OverrideOptional. Replaces the profile's system prompt for this job only.
ToolsWhich tools this job can use. See Profile & tools.
Output FileOptional path to auto-save the final output after each run. Supports .txt, .md, .pdf, and .docx.

Click Save Job to save. The job is immediately added to the scheduler.

Want to define a precise sequence of tool calls? Click Step builder to open the visual workflow editor. See Step Builder below.

account_tree Step Builder — Build Your Own Workflow

The Step Builder lets you design a precise, repeatable multi-step workflow for a job. Instead of writing a single prompt and letting the agent decide how to proceed, you choreograph each step yourself — specifying both the instruction and the exact tool call to make at every stage.

Click Step builder in the job form to open the visual workflow editor. Each step has two parts:

text_fields Text Instruction

The natural-language instruction for this step — what the agent should do or consider before calling the tool. For example: "Get the current date and time. Note the filename-safe format for use in the output filename and the report header."

build Tool Call

Select the specific tool this step must invoke (e.g. get_current_datetime, web_search, read_file). You can also supply argument hints — the model will use them as defaults. A step with no tool selected is a pure reasoning step.

Example workflow: Daily AI Research Brief

1 Step 1
Text instruction: Get the current date and time. Note the filename-safe format (e.g. 2026-04-26_08-00) for use in the output filename and the human-readable format for the report header.
buildTool: get_current_datetime
2 Step 2
Text instruction: Search for today's top AI technology news stories.
buildTool: web_search
Argument hint: query: top AI technology news today site:bbc.co.uk, max_results: 5
check_circle
Steps execute in order — the output of each step feeds naturally into the next, building a coherent chain of context.
check_circle
Argument hints guide the model without being mandatory — the agent can still adapt if conditions differ from expectations.
check_circle
A workflow job can still use the standard Prompt field as a final step instruction (e.g. "Compile the above into a formatted report and save it").
info
Tools used in steps must be enabled for the job in the Tools panel — step builder tool hints are ignored if the tool is not selected.

event_repeat Schedule Types

DailyHH:MM

Runs once per day at the specified local time. The scheduler checks every 30 seconds, so the job fires within 30 seconds of the target minute. Jobs only run once per day — if the app wasn't running at the target time, the job waits until the next day.

WeeklyDay + HH:MM

Runs once per week on the chosen day and time. Same 30-second precision as Daily.

IntervalEvery N hours

Runs every N hours from the previous run time. A brand-new job with an Interval schedule fires within 30 seconds of being saved (it has never run before, so it's immediately due). Subsequent runs are spaced N hours apart.

ManualOn demand

Never fires automatically. Run it by clicking ▶ Run in the job list. Useful for ad-hoc tasks you want to repeat with the same prompt and tools each time.

The Next run time is shown on each job row so you can verify the schedule at a glance.

person Profile & Tool Selection

When you select a profile for a job, a Tools for this job panel appears with three collapsible sections. This lets you control exactly which tools the job can use — independently of the profile's global tool settings.

build Built-in tools

Checkboxes for each built-in tool enabled in the profile (web_search, read_file, write_file, etc.). Pre-checked based on the profile's settings. Deselect tools this job doesn't need.

hub OpenAPI / REST services

One checkbox per enabled OpenAPI spec in the profile (e.g. Gmail, Wikipedia). Check only the services this job needs — unnecessary APIs add schema tokens without benefit.

electrical_services MCP servers

One row per MCP server. Check the server to include it. Click N tools ▼ to expand and toggle individual tools within the server — useful when an MCP server exposes many tools and you only need a few.

No profile selected? The job runs with whatever tools are currently active in AppState (the globally active profile). This is fine for simple jobs but means the tool environment depends on which profile is active at run time.

camera Snapshots & Staleness

When you save a job with a profile, LexiChat embeds a snapshot of the profile's tool configuration directly in the job definition. This means the job runs with exactly the tools and auth credentials you selected, regardless of future profile changes — the job is fully self-contained.

check_circle
If you delete the profile, the job still runs using the saved snapshot.
check_circle
A job for Profile A runs correctly even while Profile B is active in the main chat — no interference.
warning
Profile changes are not automatic. If you update a profile (add a new MCP server, change credentials, etc.), existing jobs continue using the old snapshot until you refresh it.

Refreshing a snapshot

In the job edit form, below the profile selector, you'll see the snapshot timestamp: Snapshot: Apr 22, 09:00. Click Refresh snapshot to re-capture the profile's current state, then re-save the job.

After 7 days without a refresh, a ⚠ stale warning appears on the job row as a reminder to check whether the profile has changed.

play_circle Running Jobs

Automatic execution

The scheduler checks every 30 seconds for due jobs. When a job is due, it runs silently in the background — no text streams into the main chat, no UI disruption. When it finishes, the clock icon badge increments by 1. Open the Jobs panel to see the result.

Manual execution

Click ▶ Run on any job to execute it immediately. The button shows while running. Closing the panel does not stop the job — it continues running in the background and the result appears in Run History when done. The button label changes to Close (jobs keep running) while a run is in progress.

Current date & time is automatically injected into the job's system prompt, including a filename-safe format like 2026-04-22_09-00. This lets the model include accurate timestamps in reports and output filenames without needing a separate tool call.

history Run History

The Run History tab shows every job execution. Each row shows:

Status badge — green ✓ OK or red ✕ Error
Profile — which profile the job ran with
Start & finish time — exact timestamps for the run
Duration — total execution time (e.g. 12.4s)

Debug trace

Click any run row to expand it. Inside you'll find a collapsible Debug trace section showing every step the agent took:

  • smart_toyEach agent step numbered sequentially
  • chatThe LLM's text response at each step (what the model "thought" before calling a tool)
  • buildEach tool call with its name, expandable JSON arguments, and the raw result returned

Below the trace, the Output section shows the final assistant response rendered as Markdown. A ⧉ Copy output button copies the raw text.

Run history is stored per-job (up to 100 entries). Use the filter dropdown to view runs for a specific job. The Clear button removes all runs for the selected filter.

save Output Files

Each job can optionally save its final output to a file after every successful run. Set the Output File path in the job form — use the Browse… button to pick the location.

.txt / .md
Plain text output, each run overwrites the previous.
.pdf
PDF document generated from the output text.
.docx
Word document with full Markdown formatting preserved — headings, bold, bullets, code blocks.
Tip: To create a dated archive instead of overwriting, include a date token in your prompt: "Write the output to ~/reports/news-{{current_date}}.md". The AI can use the get_current_datetime tool to get a filename-safe timestamp, or it will use the date injected into the system prompt.

menu_open Background Operation

LexiChat is designed to run persistently. Clicking the window's close button (✕) hides the window rather than quitting — the app continues running in the system tray / menu bar and all scheduled jobs keep firing.

macOS

Click the Lexi icon in the menu bar to show/hide. Right-click for the menu. Clicking the dock icon also restores the window.

Windows

Click the Lexi icon in the system tray notification area. Right-click for the menu.

Linux

Icon in the system tray (desktop environment dependent). Same click behaviour.

To fully quit LexiChat (and stop all scheduled jobs), right-click the tray icon and choose Quit LexiChat, or use the system menu on macOS.

Note on MCP stdio servers: When a scheduled job creates a fresh MCP connection for a stdio server (a locally spawned process), that process is automatically terminated when the job completes. There is no process leak.