Settings & Configuration
NORA stores all configuration locally on your machine. Nothing is sent to external servers. This guide covers every setting available in the Settings modal and where configuration files are stored on disk.
Note: The Settings modal is only available in Desktop (Electron) mode. In browser/dev mode, settings are managed via config files directly.
Opening Settings
Click the ⚙ Settings button in the top-right toolbar (available in both Edit and Run modes). The modal opens with tabbed navigation.
External Editors
Configure external editors for opening files. Click file links in workflow nodes to open them with your chosen editor.
When a node’s command references a file path, NORA makes that path clickable. Clicking it opens the file in your configured editor.
Adding an Editor
- Click + Add Editor
- Enter a name (e.g., “VS Code”, “Notepad++”)
- Enter the path to the executable — or click Browse… to locate it via file picker
- Repeat for additional editors
Default Editor
Use the Default Editor dropdown to select which editor opens files by default. All configured editors appear in this dropdown.
Example Paths
| Editor | Typical Path |
|---|---|
| VS Code | C:\Users\{you}\AppData\Local\Programs\Microsoft VS Code\Code.exe |
| Notepad++ | C:\Program Files\Notepad++\notepad++.exe |
| Sublime Text | C:\Program Files\Sublime Text\sublime_text.exe |
Workflow Folders
Add custom folders to organize workflows from different locations.
NORA scans specific folders for workflow config files. These folders appear in the config file selector when you load or import workflows.
Built-in Folders
Two folders are always included (cannot be removed):
- Project Workflows — the
import-workflow-configfolder inside the app directory - Documents/NORA/configs — your Documents folder
Custom Folders
Click + Add Custom Folder to add additional locations. Use this for:
– Shared network drives
– Cloud-synced folders (Dropbox, OneDrive, Google Drive)
– Git repository directories
– Any folder where you store .js workflow config files
Custom folders can be removed by clicking the ✕ button next to each entry.
Default Workflow
Set which workflow loads automatically when you start the app.
Setting a Default
- Load the workflow you want as your default
- Open Settings → Default Workflow tab
- Click ⭐ Set as Default Workflow
The currently loaded workflow’s path is shown, along with the current default (if any).
Default Workflow Behavior
- The default workflow loads automatically on app startup
- Default workflows open in read-only mode — the save button is disabled to prevent accidental changes
- To edit a default workflow, use Export Config to save a copy first, then edit the copy
- Click Clear Default to stop auto-loading a workflow on startup
Background Jobs
View and manage workflows running in the background.
This tab auto-refreshes every 3 seconds. A green badge on the tab shows the count of currently running jobs.
Job Cards
Each background job shows:
| Field | Description |
|---|---|
| Workflow name | The config file name |
| Job ID | Unique identifier (click to copy) |
| Status | Running (blue), Completed (green), or Failed (red) |
| Started | When the job began |
| Running for | Elapsed time (for active jobs) |
| Ended | When the job finished (for completed jobs) |
| Error | Error details if the job failed |
Active Commands
For running jobs, you can see every OS-level process the workflow has spawned:
| Detail | Description |
|---|---|
| Node | Which workflow node started this process |
| PID | Process ID (click to copy) |
| Duration | How long the process has been running |
| CPU | “Active” (green) if using CPU, “Idle” (gray) otherwise |
| Command | The actual shell command being run |
Controls
| Button | What It Does |
|---|---|
| 🛑 Stop Workflow | Stops the workflow and terminates all its processes |
| ⛔ Kill | Terminates a single process |
| ⛔ Kill All Commands | Terminates all processes for one workflow |
| 📊 View Live Logs | Opens the Execution History tab with real-time log streaming |
Completed and failed jobs are automatically removed from this list after 5 minutes.
Scheduler
Schedule workflows to run automatically using cron expressions.
A purple badge on the tab shows the count of active schedules.
Creating a Schedule
- Click Select Workflow to choose a workflow config file
- Pick a schedule preset from the dropdown — or choose Custom to enter your own cron expression
- Enter a label describing the schedule (e.g., “Morning data sync”)
- Optionally toggle Notify on completion (desktop notification when the run finishes) and Stop on error (halt the workflow when a node fails without an error-handling edge)
- Click Add Schedule
Schedule Presets
| Preset | Cron Expression | Runs |
|---|---|---|
| Every Hour | 0 * * * * |
On the hour, every hour |
| Daily at Midnight | 0 0 * * * |
Every day at 12:00 AM |
| Weekly (Sunday) | 0 0 * * 0 |
Every Sunday at 12:00 AM |
| Weekdays at 9 AM | 0 9 * * 1-5 |
Mon–Fri at 9:00 AM |
| Monthly (1st day) | 0 0 1 * * |
First of every month at 12:00 AM |
| Custom | you specify | Any valid cron expression |
Custom Cron Expressions
Not sure about cron syntax? Use crontab.guru — an online cron expression editor that shows a plain-English description of any expression as you type.
┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-7, Sun = 0 or 7)
│ │ │ │ │
* * * * *
NORA displays a human-readable description of your cron expression (e.g., 0 9 * * 1-5 → “At 09:00 AM, Monday through Friday”).
Timezone: All schedules run in Eastern Time (America/New_York).
Managing Schedules
Active schedules are listed with their workflow name, cron expression, human-readable description, and creation date. Each schedule has a row of action buttons:
| Button | Action |
|---|---|
| ✎ | Edit schedule — modify the cron expression, preset, or label (workflow cannot be changed) |
| ▶ | Run now — immediately execute this workflow without waiting for the schedule |
| ⏸ / ▶ | Pause/Resume — temporarily disable the schedule; paused schedules show a PAUSED badge |
| ✕ | Remove this schedule |
Additional controls in the header:
| Control | Description |
|---|---|
| ↻ Refresh | Reload schedules from disk — useful after external edits (e.g., by an AI agent) |
Schedule cards may show badges:
– ⏸ PAUSED — The schedule is paused and won’t run until resumed
– 🔕 — Desktop notifications are disabled for this schedule
– ⛔ — Stop on error is enabled for this schedule (workflow halts on unhandled node failures)
Editing a Schedule: Click ✎ to edit. The form switches to edit mode with your existing values pre-filled. Click Save Changes to confirm or Cancel to discard.
Paused Schedules: A paused schedule will not execute at its scheduled time. It remains in the list with a ⏸ PAUSED badge. Click ▶ Resume to reactivate it.
External edits: NORA watches
schedules.jsonfor changes. If an AI agent or external tool modifies the file, the changes are automatically merged into the running scheduler within ~500ms.
Schedules persist across app restarts — they are saved to ~/.nora/config/schedules.json.
Schedule Options
When creating or editing a schedule, you can configure:
| Field | Description |
|---|---|
| Workflow | The workflow config file to run (cannot be changed when editing) |
| Schedule | Choose a preset or enter a custom cron expression |
| Label | A friendly name for this schedule |
| Notify on completion | When checked, a desktop notification appears when the workflow finishes. Uncheck this for frequently-running schedules (e.g., every 2 minutes) to avoid notification spam. |
Tip: Email notifications (if configured) are separate from desktop notifications and remain unaffected by this setting.
Workflow Selector
When adding a new schedule, click Select Workflow to open a modal showing all available workflow config files. Folders are collapsed by default — click the ▶ arrow to expand and see files inside. Use the search box to filter by name or path.
Ports
Configure the ports used by the application.
| Setting | Default | Valid Range | Description |
|---|---|---|---|
| Backend Server Port | 4000 |
1024–65535 | The Express.js API server |
| Frontend Port | — | 1024–65535 | The React development server |
Restart required after changing ports. The app must be fully closed and reopened for port changes to take effect.
Only change these if you have a port conflict with another application on your machine.
Execution History
View past workflow executions and their detailed logs.
History List
Every workflow run (foreground and background) is recorded:
| Column | Description |
|---|---|
| Workflow | Config file name |
| Started | When execution began |
| Duration | Total execution time in seconds |
| Status | Success (green), Failed (red with error count), Cancelled (amber) |
| Cost | Total AI API cost in USD (if AI nodes were used), or — |
A Grand Total Cost row at the bottom sums all AI costs across all recorded executions.
Execution Details
Click View Details on any execution to see:
- Summary: job ID, start/end time, duration, final status
- Node statuses: each node listed with a colored status indicator (green = success, red = error, gray = pending/skipped)
- Last node executed: where the workflow ended
- Error reason: if the run failed
Detailed Logs
A scrollable log viewer shows every event during execution:
- Timestamps and log levels (INFO, ERROR, WARN, SUCCESS)
- Node identification — which node generated each log entry
- Commands and their output (color-coded: output in green, errors in red)
- Retry information — if nodes retried, each attempt is logged
Live Logs
When viewing a running background job (accessed via Background Jobs → View Live Logs), the log viewer updates every 3 seconds with a green “Live Logs” indicator. Polling stops automatically when the job finishes.
Log Retention
See the System tab section for configuring how long logs are kept.
System
System Tray
| Setting | Default | Description |
|---|---|---|
| Minimize to system tray instead of closing | Enabled | When checked, clicking the window’s ✕ button hides the app to the system tray instead of quitting. Background workflows continue running. Right-click the tray icon and select Quit to fully exit. |
Startup
| Setting | Default | Description |
|---|---|---|
| Start with Windows | Disabled | When checked, the app launches automatically when Windows boots. If “Minimize to tray” is also enabled, the app starts hidden in the system tray. |
Tip: Enable both Minimize to tray and Start with Windows to run scheduled workflows 24/7 without manual intervention.
Execution History & Log Retention
| Setting | Options | Default |
|---|---|---|
| Keep workflow logs for | 30 days, 60 days, 90 days, Forever | 30 days |
Log cleanup runs automatically when the server starts. Changes take effect on the next server restart.
License
View and manage your NORA license activation.
License Information
The License tab displays your activation status:
| Field | Description |
|---|---|
| License Key | Your license key (partially masked for security) |
| Machine ID | Unique identifier for your computer (hardware-bound) |
| App Version | Currently installed version of NORA |
| Status | Active, Expired, or Pending Validation |
Activation Status
- ✅ Active — License is valid and activated on this machine
- ⚠️ Pending Validation — Needs online check (connect to internet)
- ❌ Expired — License is no longer valid
Re-Activation
If you need to re-activate (after hardware changes, reinstall, etc.):
1. Click Re-Activate License
2. Enter your license key
3. Click Activate
For license transfers to a new machine, contact support with your license key and new machine ID.
Updates
Check for and install NORA updates.
NORA includes an auto-update system that checks for new versions and lets you install them with one click.
Checking for Updates
- Click Check for Updates in the System tab
- NORA contacts the update server to check for newer versions
- If an update is available, you’ll see:
- Current version
- New version available
- Download Update button
Installing Updates
- Click Download Update
- A progress bar shows download status
- When complete, click Install and Restart
- NORA closes, installs the update, and reopens
Note: Save your work before updating. Open workflows are preserved, but any unsaved changes will be lost.
Update Notifications
When an update is available, NORA shows a notification badge. You can dismiss it to continue working and update later.
Gmail / Email
Get notified via Gmail when workflows complete or fail.
Email notifications are configured in the System tab of Settings. Setup requires a Google Cloud OAuth 2.0 credential.
Prerequisites
- A Google account
- Access to Google Cloud Console
Step 1: Create OAuth Credentials
- Go to Google Cloud Console → Credentials
- Create a new OAuth 2.0 Client ID
- Choose application type: Web application
- Under Authorized redirect URIs, add:
http://localhost:4000/gmail/oauth2callback
(Replace4000with your configured backend port if different) - Copy the Client ID and Client Secret
Step 2: Enter Credentials in NORA
- Open Settings → System tab → Email Notifications section
- Click 🔧 Configure OAuth Credentials
- Paste your Client ID and Client Secret
- Click 💾 Save Credentials
Step 3: Connect Your Gmail Account
- Click 🔗 Connect Gmail Account
- Your browser opens Google’s consent page
- Sign in and authorize NORA to send emails on your behalf
- Google redirects back to NORA — you’ll see “Authorization Successful!”
- The page auto-closes after 3 seconds
- NORA shows your connected email address with a green ✅ Gmail Connected badge
Notification Preferences
Once connected, configure when to receive emails:
| Setting | Default | Description |
|---|---|---|
| Send email when workflows complete successfully | Enabled | Get notified on successful runs |
| Send email when workflows fail | Enabled | Get notified on failures |
What Notification Emails Include
Notification emails are formatted HTML containing:
– Per-node execution status (success/error icons)
– Execution timing (total and per-node)
– Retry information (which nodes retried and attempt counts)
– AI cost summary (token usage and estimated cost)
– Detailed execution logs
Testing
Click 📤 Send Test Email to send a test notification to yourself and verify the setup works.
Disconnecting
Click Disconnect to remove the Gmail authorization. Credentials are cleared from ~/.nora/email-credentials.json.
AI Provider Keys
API keys for AI-powered nodes (AI Agent, AI Router, AI Autonomous Agent).
AI keys are configured in the System tab of Settings. Keys are stored locally on your machine — they are never sent anywhere except directly to the AI provider’s API.
🔒 Security: API keys are not included in the NORA installer or application bundle. You must provide your own keys after installation. Keys are stored only on your local machine and transmitted only to the respective AI provider’s API endpoints.
Supported Providers
| Provider | Key Format | Get a Key |
|---|---|---|
| OpenAI | sk-... |
OpenAI API Keys |
| Anthropic | sk-ant-... |
Anthropic Console |
| Google Gemini | AIza... |
Google AI Studio |
Managing Keys
For each provider:
| Action | How |
|---|---|
| Add/Update | Paste your key into the field and click Save Settings |
| View | Click the 👁 toggle to show/hide the key |
| Remove | Click Clear to delete the key |
| Status | Green “✓ Key saved” or amber “⚠️ Key not set” |
You only need keys for providers you plan to use. If you only use Gemini-based AI nodes, you only need a Gemini key.
Key Storage
Keys are stored in ~/.nora/config/settings.json under the aiProviderKeys object:
{
"aiProviderKeys": {
"openai": "sk-...",
"anthropic": "sk-ant-...",
"gemini": "AIza..."
}
}
Configuration File Locations
All NORA configuration is stored locally in your home directory:
| Data | Location |
|---|---|
| App settings (editors, ports, folders, AI keys, startup, tray) | ~/.nora/config/settings.json |
| Gmail credentials & preferences | ~/.nora/email-credentials.json |
| Scheduled workflows | ~/.nora/config/schedules.json |
| Execution history | ~/.nora/logs/execution-{jobId}.json |
| Agent session logs | ~/.nora/agent_logs/{sessionId}/ |
| Example workflows & tools | ~/Documents/NORA/ (copied on first install) |
Where ~ is your home directory (e.g., C:\Users\{YourName} on Windows).
Backing Up Settings
To back up your NORA configuration, copy the entire ~/.nora/ folder. This preserves all settings, credentials, schedules, and execution history.
Resetting Settings
Delete ~/.nora/config/settings.json to reset all settings to defaults. The file is recreated on next launch. To reset Gmail only, delete email-credentials.json.
Restoring Default Resources (Documents\NORA)
On first install, NORA copies example workflows and tools to Documents\NORA\. If you delete this folder, reinstalling NORA alone won’t recreate it — the app remembers that first-run setup already completed.
To restore the Documents\NORA\ folder:
- Open
~/.nora/config/settings.jsonin a text editor - Find
"firstRunComplete": trueand change it to"firstRunComplete": false - Save the file and restart NORA
- NORA will re-copy the default resources on next launch
Tip: This only copies files that don’t already exist — your customizations are preserved.
Browser vs. Desktop Differences
Some features are only available in the desktop (Electron) version:
| Feature | Browser/Dev Mode | Desktop (Electron) |
|---|---|---|
| Settings modal | Not available | Full access |
| File browser dialogs | Not available | Native file picker |
| Gmail notifications | ✅ Works directly | ✅ Works via background worker process (googleapis loaded in a forked child process to avoid Electron compatibility issues) |
| Start with Windows | Not applicable | Available |
| System tray minimize | Not applicable | Available |
| Config file persistence | Manual file editing | Automatic via Settings UI |
In browser/dev mode, you can still run workflows, use background jobs, and schedule workflows — but configuration must be done by editing the JSON files directly.
What’s Next?
- AI Features — Deep dive into AI providers, models, and AI-powered nodes
- Tool Library — Create and manage reusable tool packages
- Running Workflows — Execution modes, scheduling, and monitoring
- Reference — Keyboard shortcuts, API endpoints, troubleshooting, and glossary