How Inara reaches out proactively — reminders, cron jobs, and memory digests.
-
+
+
+
Notifications
+
How Inara reaches out proactively — reminders, cron jobs, and memory digests.
@@ -254,7 +101,7 @@
Nextcloud Talk
-
+
Configure to send and receive messages via your Nextcloud Talk bot.
Sending requires the bot URL, secret, and notification room.
Reading history (nc_talk_history tool) additionally
@@ -266,7 +113,7 @@
Set these up in your Nextcloud Talk room → Bot settings.
- See the setup guide for step-by-step instructions.
+ See the setup guide for step-by-step instructions.
@@ -322,7 +169,7 @@
Home Assistant
-
+
Receive events from HA automations and let Inara call the HA REST API
(read states, control devices). Webhook ID is the shared secret used in your
HA rest_command URL.
@@ -374,7 +221,7 @@
Google Chat
-
+
Outbound webhook for proactive messages to a Google Chat space.
Incoming messages are handled separately via the Google Chat Add-on.
@@ -383,8 +230,7 @@
Outbound webhook
- Create a webhook in your Google Chat space → Manage webhooks.
- Paste the full URL here.
+ Create a webhook in your Google Chat space → Manage webhooks. Paste the full URL here.
@@ -397,19 +243,19 @@
-
+
Test
-
+
Fire a notification via your configured channel or run the reminder check
immediately — no need to wait for the daily 09:00 scheduler job.
- To link or change your Google account, contact Scott.
-
+
To link or change your Google account, contact Scott.
Email Allowlist
-
- One regex pattern per line. The email_send
- tool will only send to addresses that match at least one pattern.
- Leave blank to block all outbound email.
+
+ One regex pattern per line. The email_send tool will only send to addresses
+ that match at least one pattern. Leave blank to block all outbound email.
HTTP POST Allowlist
-
- One URL prefix per line. The http_post
- tool will only POST to URLs that start with a listed prefix.
- Leave blank to block all outbound POST requests.
+
+ One URL prefix per line. The http_post tool will only POST to URLs that
+ start with a listed prefix. Leave blank to block all outbound POST requests.
Notifications
-
+
Configure how Inara reaches out proactively — reminders, cron jobs, and memory digests.
You can chat now, but adding your own model gives you more choices, lets you pick
role-specific models, and tracks your usage separately.
OpenRouter is the easiest way to get started — one key, many models.
Configure AI providers (Anthropic, Google), local hosts (Open WebUI, Ollama, OpenRouter, etc.),
and assign models to roles — chat, orchestrator, distill, and more.
Auto-name any sessions that still show a random ID, using their first message as the name.
Only unnamed sessions are affected — existing names are left alone.
-
- Auto-name old sessions
-
-
+ Auto-name old sessions
+
+
Personas
@@ -528,16 +304,6 @@
document.getElementById('show-rename-user').style.display = '';
});
- // Gemini key — "remove" link clears the input and submits the form
- const geminiRemove = document.getElementById('gemini-remove-link');
- if (geminiRemove) {
- geminiRemove.addEventListener('click', e => {
- e.preventDefault();
- document.getElementById('gemini_api_key').value = '';
- document.querySelector('form[action="/settings/gemini-key"]').submit();
- });
- }
-
// Clear localStorage (keeps JWT cookie — no sign-out)
document.getElementById('clear-ls-btn').addEventListener('click', () => {
localStorage.clear();
@@ -548,8 +314,7 @@
(async () => {
try {
const d = await fetch('/backend').then(r => r.json());
- const roles = d.available_roles || [];
- if (roles.length === 0) {
+ if ((d.available_roles || []).length === 0) {
document.getElementById('openrouter-quickstart').style.display = 'block';
}
} catch (_) {}
@@ -563,7 +328,7 @@
if (!resp.ok) throw new Error(resp.statusText);
const rows_data = await resp.json();
if (!rows_data.length) {
- wrap.innerHTML = '
Control which orchestrator tools are available. The risk level sets an automatic threshold;
whitelist and blacklist let you fine-tune individual tools beyond that.