User Manual
v1.3.28 | Your data never leaves the harbour.
What Changed Since v1.0.x
If you are coming back to a manual you last read a few releases ago, these are the changes that alter how you use HARBOUR:
| Release | What changed for you |
|---|---|
| v1.2.0 | The toolbar is gone. Everything now lives in ☰ WORKSPACE and ⚙ SYSTEM, or behind Ctrl+K. See The Shell. |
| v1.3.0 | Day mode and six colour palettes, split into two controls in the header. Your old theme choice is migrated automatically. |
| v1.3.1–v1.3.2 | Data-loading and voice fixes — several panels that had been opening empty, and four websocket features (live voice, live meeting, collaboration, dictation) that had been failing authentication, now work. |
| v1.3.5 | Self-test, the problems tray, and the egress meter. Prompts stopped being silently truncated, documents stopped being partly un-indexed, and three bundled libraries stopped calling home. |
| v1.3.6 | Real neural speech (Kokoro), and document intelligence that works in a shipped installer — the ML stack had been missing from the build. |
| v1.3.7 | The dictation microphone works. It had never worked since v1.0.51. |
| v1.3.8 | Windows portable build starts cleanly first time. |
| v1.3.28 | API fixes; nothing on screen changes. The project dashboard (GET /pm/projects/dashboard) and the list of scheduled compliance reports (GET /compliance-reports/schedules) now answer; both used to say "not found". The project health score no longer records an invented 75/Amber when the AI's reply can't be read, status reports work from the project's real tasks, and time can't be logged against another account's task. See Features without a screen. |
| v1.3.27 | Two dozen fixes found by filming every feature, a security fix, and slides you can download. Whistleblowing reports are now visible to administrators only — before this, anyone signed in could open Case Handling. Things that never worked now do: Proposals → Generate; the invoice panel (it showed every invoice blank, and its status buttons did nothing — statuses are now unpaid, paid, disputed and cancelled); the website receptionist (it can be typed into, answers from your business details, embeds correctly, and saves leads); the proposal and DPIA Download DOCX buttons, the podcast and generated video players; Ask the Manual; and a newly created assistant works straight away. HARBOUR no longer presents made-up content: Deep Research with no sources says so instead of writing a report; the briefing never invents appointments; Data Analysis uses exact figures. New: the Slide Generator downloads a PowerPoint file. Also: ▶ RUN NOW on the briefing works with the daily briefing switched off, and Sector Packs no longer opens with a false error. |
| v1.3.26 | The Meeting Assistant works in installed copies, a privacy fix, and spoken replies that no longer drop sentences. The Meeting Assistant could not transcribe in any installed copy of HARBOUR: a file it needs was left out of the installer. It is included now, and the self-test checks for it. When the Meeting Assistant or voice transcription loaded its speech model, HARBOUR asked huggingface.co for the model's version number; nothing you said or wrote was sent, but it is a connection HARBOUR promises not to make, and it no longer happens. In the Isabella, Michael and Sarah voices, some sentences of a spoken reply came out as silence; every sentence is spoken now. The rate, pin and save buttons no longer cover the end of an answer's first line. And Admin → Users now has the Set role (including Admin) and Reset password controls this manual describes. |
| v1.3.25 | Backups now hold everything, and can rebuild HARBOUR on a new machine. A backup used to be the database alone; now it is the whole installation: documents, the search index, the licence and the keys to saved logins too. Backups can be encrypted with a passphrase you keep, and copied to a USB drive or network share automatically. A brand-new or replacement machine can be restored from a backup with no internet, from the first screen. See Backups and Restore. Also: ⚙ SYSTEM → Software updates lets you turn automatic updates off or take them from your own network; the setup wizard asks about your firm; and the "Forgotten the administrator password?" link this manual described now exists on the sign-in screen. Saved MCP servers now survive a restart (in installed builds they were lost every time HARBOUR closed). |
| v1.3.24 | OCR works on Windows after a normal Tesseract install. HARBOUR now finds Tesseract in the folder its Windows installer uses, so scanned PDFs, photographed documents and invoice images can be read. Before this, it only looked on your PATH, which that installer doesn't change. |
| v1.3.23 | A security fix to SAML single sign-on (Enterprise only). SAML sign-in now checks the identity provider's signature every time. If you use SAML, an identity-provider certificate is now required — see Enterprise SSO below. Nothing changes on Solo or Business. |
| v1.3.22 | You can scroll the chat while agents are replying — it stays where you put it, with a ↓ Latest button to jump back. EMMA's WEB_SEARCH switch works (it never did), and when search engines refuse a search the reply says so instead of the agent claiming it is offline. Agents can show pictures from the web — see Pictures from the web. Admins can add a Brave Search key for dependable results (Admin → WEB-SEARCH). |
| v1.3.21 | The Company Knowledge Base works again — it had been storing nothing since May. See the warning in Company Knowledge Base below: anything you added between May and this release was never kept, so please add those documents again. Also fixed: "disconnect" on a cloud drive now genuinely revokes HARBOUR's access instead of only removing the drive from the screen; a cloud AI provider key pasted during first-run setup is now actually saved (it was silently discarded); Claude can now be set as your provider for all agents, which this manual described but the app would not accept; webcam and pasted-image analysis work; and a Data Subject Access Request no longer fails on every attempt. |
| v1.3.20 | Backups actually survive now, and can be restored. They used to be written to a temporary folder that most systems clear at restart, so a backup could vanish before you needed it. They now live beside your data, run automatically every night, and there is a Restore path. Also: a locked-out administrator can get back in — see If you are locked out — and email addresses are properly checked. |
| v1.3.13 | Tighter limits on what an agent's tools can reach. Terminal commands are now confined to your permitted folders whichever way the path is written, and a few allowed commands that could be used to start other programs no longer can. Nothing you could do before has been taken away. |
| v1.3.12 | When a voice or collaboration feature refuses a connection it can now tell you why — "please log in again" instead of failing in silence. |
| v1.3.11 | The message box is multi-line at last: Shift+Enter starts a new line, the box grows as you type, and pasted line breaks survive instead of collapsing into spaces. |
| v1.3.10 | Dragging a file onto the chat panel now looks like it will work — the panel says DROP TO ATTACH — and dropping several files no longer discards the extras in silence. |
| v1.3.9 | Ctrl+K no longer clears your chat as well as opening the palette, Ctrl+/ focuses the message box (it never did), and this manual was rewritten against the current app. |
Install
Windows — download from GitHub Releases. Two builds:
| File | Use it when |
|---|---|
HARBOUR-AI-Setup.exe | Normal install. Adds a Start Menu entry and receives auto-updates. |
HARBOUR-AI-Portable.exe | No installation — run it from a USB stick or a locked-down machine. |
Then install Ollama from ollama.com and pull models:
ollama pull llama3.1 && ollama pull llava
Both Windows builds keep your data in C:\Users\<name>\.harbour-ai\. The portable build is portable in the application sense only — it uses that same folder, so it shares its database with an installed copy on the same machine.
Linux — install Ollama first, then run the AppImage or deb:
curl -fsSL https://ollama.com/install.sh | sh
ollama pull llama3.1 && ollama pull llava
chmod +x HARBOUR-AI.AppImage && ./HARBOUR-AI.AppImage
AppImage won't launch: sudo apt install libfuse2
Docker / server deployment — HARBOUR AI also runs headless on a VPS, private cloud, or on-premise server (production Docker image with health checks, an nginx/TLS reverse proxy, and a persistent /data volume), accessed by your team via browser. Server deployment is provided to licence holders — email Gregorymoores@proton.me for the deployment bundle (docker-compose.yml, DOCKER.md, and a licence-keyed .env template) plus setup guidance.
First Launch
The first screen asks for a licence. Choose:
- Enter Licence Key — paste your
HARBOUR-XXXX-XXXX-XXXX-XXXXkey. This checks the key with the licence server once, so it needs internet the first time. - Start Free 14-Day Trial — one click, no payment, one per machine.
- Moving to a new computer? Restore from a backup — rebuilds HARBOUR from a backup file, licence included, with no internet. See Backups and Restore.
Then create your account. The first registered user becomes admin.
The setup wizard opens on your first sign-in: your sector, a few lines about your firm (its name, what it does, how replies should be written) and any first documents, then model setup and quick-start tips. What you tell it is saved as memory facts that every conversation recalls (shared with everyone at the firm on a Business licence), and documents go into the Company Knowledge Base. Every step can be skipped and changed later; reopen it from ⚙ SYSTEM → Onboarding Wizard.
The Agents
| Agent | Role | Colour |
|---|---|---|
| BELLA | Code and technical | Green |
| SAPPHIRE | Research and analysis | Blue |
| JADE | Creative and lateral thinking | Yellow |
| ELLIE | Critic / devil's advocate | Red |
| EMMA | Orchestrator — final verdict | Pink |
Toggle agents on/off in the left panel. Add custom agents with ☰ WORKSPACE → Create Agent or install from ☰ WORKSPACE → Marketplace — agents.
All agents know your name and today's date automatically — no manual context needed.
The Shell — Where Everything Lives
Everything HARBOUR does is reachable three ways: the header bar, two menus, and the command palette. There is no long toolbar any more — the old scrolling row of 84 buttons was replaced in v1.2.0 by the shell below.
The header bar
| Control | What it does |
|---|---|
| App name / logo | Your white-label branding. A pulsing pink dot means EMMA's wake phrase is listening. |
| GLOBAL MODEL | Sets the model for every agent at once. |
| 🌙 NIGHT / ☀ DAY | Switches light and dark mode (see Appearance). |
| Palette | Accent colour family — Neutral, Ocean, Teal, Amber, Rose, Violet. |
| ⚡ number | Tokens generated in this session. |
| 👁 VISION | Webcam / screen capture for the vision model. |
| 🔊 ON/OFF | Speaks each response aloud. |
| 🔧 ON/OFF | Tool calling — lets agents read files, run safe commands, scrape URLs, call plugins. |
| 📌 PIN | Pinned messages in this session. |
| ☰ WORKSPACE | Everything you do — chat, knowledge, research, agents, business, meetings, creation. |
| ⚙ SYSTEM | Everything you configure — models, governance, diagnostics, account, connections, display. |
| ❓ HELP | Shortcuts and feature reference. |
| 👤 username | ⭐ marks an admin, ⚡ a power user. |
| LOGOUT | Ends the session. |
Ctrl+K — the command palette
Press Ctrl+K (⌘K on Mac) anywhere and type. It searches every menu entry by name and by keyword — "gdpr" finds the DPIA generator, "churn" finds Client Sentiment. Subsequence matching works too, so scrmem finds Screen Memory.
↑↓ to move · ↵ to open · esc to close.
The palette and the two menus are generated from one registry, so anything in a menu is in the palette and vice versa — they cannot drift apart.
☰ WORKSPACE
| Section | Panels |
|---|---|
| Chat & Session | EMMA agent mode · Debate mode · Search conversations · Memory · Projects / Spaces · Templates · Prompt Library · Session Summary · Export (Markdown / PDF / DOCX) · Backup now |
| Knowledge | RAG / Documents · Company Knowledge Base · Company Brain · Knowledge Decay · Screen Memory |
| Research | Deep Research · Research Queue · Daily Briefing · Scheduled Reports |
| Agents & Automation | Create Agent · Marketplace · Workflow Builder · Workflow Recorder · Computer Operator · Code Sandbox · Scheduler · Always-On Monitors · Auto-routing · Conversation Routing · Jobs · Agent SDK · MCP Servers · Teach EMMA |
| Business | Invoices · Contracts · Proposals · Contract Compare & Compliance · Accounting · Grants · Client Portal · Partner / Reseller · Email Triage / Inbox · Mail / Ghost-writing · Web Receptionist · Phone Receptionist · WhatsApp Business · Client Sentiment |
| Meetings | Meeting Assistant · Meeting Capture · Live Meeting · Meeting Actions · Live Voice |
| Create | Document Generator · Data Analysis (CSV) · Everyday Tools · Sector Packs · OCR Scanner · Vision / Webcam · Video Generation · Audio Overview · Collaborative Docs |
⚙ SYSTEM
| Section | Panels |
|---|---|
| Models | Model & Providers · Fine-Tuning · Boost / Self-Improve · Self-Evolve |
| Governance | Trust Layer · Data residency attestation · Vendor Certs · DPIA · Whistleblowing · Compliance Autopilot · Review queue (power user+) · Data Retention (admin) |
| Diagnostics | Self-test — check everything works |
| Account | Team (Business licence) · Two-Factor Auth · Usage · Admin (admin) · MSP Tenants (admin) |
| Connections | Integrations · Public API · Plugins · Cloud Drive Sync · Open in VS Code (desktop app only) |
| Display | Help · UI scale larger / smaller / reset · Onboarding Wizard |
Menu entries carry live state: a green dot means that feature is currently on, and a number is a live count (unread alerts, queued research jobs, contracts, and so on). Entries you have no licence or role for are not shown at all.
Appearance
Mode × palette — two independent controls in the header, both saved to this browser/machine.
🌙 NIGHT / ☀ DAY — night is the default dark cockpit; day is a full light theme where accents darken for light panels. Danger, warning and positive colours stay red / amber / green in both, so a risk banner never changes meaning with the theme.
Palette — Neutral (default), Ocean, Teal, Amber, Rose, Violet. This changes the accent family only, not the layout or the safety colours.
If you used one of the old 16 named themes, your saved choice is migrated automatically to the equivalent mode + palette, and night + neutral is pixel-for-pixel identical to the old default.
UI scale — ⚙ SYSTEM → Display → UI scale larger / smaller / reset to 100% (range 80%–160%). Useful on 4K panels and for accessibility; also saved per machine.
Core Features
Multi-agent chat — active agents respond in parallel with streaming output.
EMMA Orchestrator — toggle on for a synthesised final verdict after all agents respond.
Debate Mode — agents challenge each other before EMMA delivers a verdict. ⚔ marks debate messages.
EMMA Agent Mode — a ReAct loop with autonomous tool use, up to 20 steps by default. Turn it on in the EMMA panel → ⚡ AGENT_MODE; every message you send then becomes a task EMMA works through step by step, showing each step as it goes. Available tools include: run commands, read/write files, scrape URLs, search the web, create folders (create_folder) — all restricted to safe directories (Documents, Downloads, Desktop, /tmp). Recommended model: llama3.1 or better for reliable tool-calling.
Platform tools — ask instead of hunting panels. EMMA (and chat with tools enabled) can also drive 41 HARBOUR features directly: log a GDPR subject access request and draft its response, run the data-breach 72-hour chain (log → severity → ICO/individual notices → remediation plan), value a business, forecast cashflow, prepare (never submit) VAT/ITSA drafts, translate offline, compare or review documents, review code, draft care plans, GP referrals and court forms, assess IR35, look up Companies House, check drug interactions, generate slides/formulas/classifications and more. Just ask in plain English — e.g. "we've had a data breach, log it and tell me if we need to notify the ICO" or "translate this paragraph into Polish". Everything runs under your own account, so licence tier, quotas and the audit trail apply exactly as if you'd used the panel; drafts are saved in the matching panel. These tools only draft, analyse and look up — they never send email, submit to HMRC or delete anything. (Admins can disable them with HARBOUR_PLATFORM_TOOLS=off.)
EMMA Voice Commander — say "Hey EMMA" (or your custom wake phrase) for hands-free input. Pulsing pink dot when listening. Change the phrase in the EMMA panel → WAKE PHRASE.
Web Search — enable per-agent via the WEB toggle, and for EMMA's final verdict via WEB_SEARCH in the EMMA panel. Only your search words leave the machine; the model still runs locally. HARBOUR tries, in order: a Brave Search API key if an admin has set one (Admin → WEB-SEARCH; Brave gives a monthly free credit, card required at sign-up), a local SearXNG if you run one (docker run -d -p 8080:8080 searxng/searxng), then DuckDuckGo. The keyless options are not guaranteed: search engines often answer automated searches with a CAPTCHA. When that happens the reply says so in an amber WEB SEARCH GOT NOTHING BACK box listing what each engine said, rather than the agent claiming it is offline. Admin → WEB-SEARCH → TEST A SEARCH shows which provider is currently answering. Brave and DuckDuckGo requests count towards the "sent externally" meter and obey the kill-switch; SearXNG is a separate program, so the searches it forwards to other engines do not appear on HARBOUR's meter.
Pictures from the web — with web search on, ask for pictures ("show me pictures of houses for sale in Bristol") and up to six appear in a grid under the reply, each linking to the page it came from. HARBOUR downloads the thumbnails itself, so the pictures make no request from your window. Ask for pictures "in my area" or "near me" and HARBOUR uses the town or postcode in your saved memories (save it once with /remember I live in Bristol); if it doesn't know, the agent asks. Pictures are shown for that reply only and aren't kept in the conversation history. Asking to draw, generate or create an image still goes to image generation instead.
Document RAG — upload PDF, DOCX, TXT, or CSV per session. Agents cite sources, stored locally.
Vision — webcam or screen capture analysed by llava. Enable VISION in the header.
Voice transcription (dictation) — click 🎤 beside the message box to dictate, click again to stop. Audio streams to the local faster-whisper model over a websocket and the text lands in the input; it is offline and multilingual, and no audio or text leaves the machine. Model size is configurable in ⚙ SYSTEM → Model & Providers.
Spoken replies — the header 🔊 toggle reads each response aloud using your operating system's built-in voice. HARBOUR's own neural voice (Kokoro) is used where the audio is the product: Live Voice and Audio Overviews.
Tool Calling — the header 🔧 toggle. Agents can read/write files, run safe commands, scrape URLs, call plugins.
Chat Export — ☰ WORKSPACE → Chat & Session → Export — Markdown / PDF / DOCX.
Global Hotkey — Ctrl+Shift+H from anywhere opens the EMMA Quick Ask overlay.
Integrations
Click ⚙ SYSTEM → Integrations:
Email / Outlook — connect any IMAP mailbox. Enter host, port, username, app password. Outlook: imap.outlook.com:993. Gmail: imap.gmail.com:993 (use an App Password). Everything processed locally.
Microsoft Teams — paste an incoming webhook URL from your Teams channel. Agents can then post summaries and alerts directly.
Calendar — paste an ICS URL (Google, Outlook, Apple). HARBOUR AI fetches today's events for EMMA's morning briefing.
Morning Briefing
In the EMMA panel → ☀ MORNING BRIEFING → toggle ON → set time → SAVE. Each morning EMMA summarises today's calendar, unread emails, and one key priority, from what is connected under ⚙ SYSTEM → Integrations; if nothing is connected it says so rather than guessing. Click ▶ RUN NOW for one straight away (it works whether or not the daily briefing is switched on, and can take a minute or two).
Compliance Autopilot
Click ⚙ SYSTEM → Compliance Autopilot (turns green). Select a framework: UK GDPR · FCA Consumer Duty · KCSIE 2023 · CQC · Employment Law. After each response, HARBOUR AI scans it async — if an issue is found a coloured banner shows the risk level (LOW / MEDIUM / HIGH) and specific findings.
Scheduled Reports
☰ WORKSPACE → Scheduled Reports → + NEW. Set agent, prompt, schedule (daily/weekly/monthly), and optional email. Click ▶ RUN NOW for an immediate one-off.
Conversation Routing
☰ WORKSPACE → Auto-routing — toggle (turns purple) routes each message to the best agent automatically. Built-in rules:
| Content | Routes to |
|---|---|
| Legal, contracts, GDPR | JADE |
| Finance, VAT, HMRC | BELLA |
| Code, SQL, APIs, debug | ELLIE |
| Research, data, analysis | SAPPHIRE |
| HR, employment, disciplinary | BELLA |
Custom rules: click ROUTE → add keyword and target agent. Custom rules run first.
Company Knowledge Base
☰ WORKSPACE → Company Knowledge Base → upload PDF, DOCX, TXT, or Markdown. All agents reference it automatically in every conversation. Upload and delete require Power User or Admin role.
Agent Memory
☰ WORKSPACE → Memory → add facts agents recall in every conversation (e.g. "I'm a solicitor", "always reply in formal British English"). On Business licences, scope facts to PERSONAL or TEAM.
Auto-Memory — HARBOUR AI automatically extracts key facts from your conversations every 10 messages and saves them to your memory store. No manual action needed; facts accumulate over time and are injected into every agent system prompt.
Save to Memory — click the 💾 button on any agent response bubble to save the full response as a memory fact. Or type /remember <fact> in the chat input to save anything directly.
All three methods (manual MEM, auto-extract, and 💾 save) write to the same memory store and take effect immediately.
Learned Skills & Teaching Wizard
⚡ LEARNED SKILLS lives inside the ☰ WORKSPACE → Memory panel. Skills are short AI behaviour instructions injected into every chat system prompt — distinct from memory facts, which are personal knowledge. Skills tell the AI how to behave; memories tell it what you know.
Three ways to build your skills library:
| Method | How |
|---|---|
| Auto-extract | 👍 thumbs-up any agent response — a background task extracts one reusable technique and saves it |
| Manual add | Type any instruction directly into the skill input box at the bottom of the skills section → + |
| 📚 TEACH | Click the TEACH button → describe a workflow or approach in plain text → pick how many skills to extract (1–5) → EXTRACT & SAVE SKILLS |
You can edit any skill in-place (✎ button) or delete individual ones (✕). CLEAR removes all.
Sector Packs
☰ WORKSPACE → Templates → ⚗ SECTOR PACKS — installs templates, prompts, and UK law memory facts in one click:
| Pack | Focus |
|---|---|
| ⚖ Legal | Contracts, employment law, GDPR, TUPE, DSAR |
| 💼 Accountancy | VAT, corporation tax, MTD, R&D credits |
| 👥 HR | Disciplinary, redundancy, flexible working, TUPE |
| 🎓 Education | KCSIE 2023, SEND/EHC, Ofsted EIF 2023 |
| 🏥 Healthcare | CQC SAF, NHS DSPT, Mental Capacity Act, Care Act s.42 |
Deep Research
☰ WORKSPACE → Deep Research → type your question → choose depth → ▶ RUN.
| Depth | Queries | Best for |
|---|---|---|
| Quick (3) | 3 searches | Fast overview, known topics |
| Standard (5) | 5 searches | Most use cases |
| Deep (8) | 8 searches | Complex topics, thorough analysis |
HARBOUR AI generates targeted sub-queries, searches the web, reads the top pages, then synthesises everything into a structured report with inline citations [1], [2], [3] and a source list. Export via ↓ MD.
If no search engine returns anything (engines sometimes refuse automated searches), HARBOUR says so, with each engine's reason, and writes no report: a report with no sources would only be guesswork with invented citations. Adding a Brave Search key (⚙ SYSTEM → Admin → WEB-SEARCH) makes results dependable.
Uses the same search providers as Web Search (Brave key → SearXNG → DuckDuckGo). It is not offline: the search words and page requests go over your connection, even with SearXNG, which forwards your searches to public engines.
Autonomous Research Queue
☰ WORKSPACE → Research Queue → background research tasks you can set running and come back to.
Unlike Deep Research (which blocks until complete), the Research Queue accepts a task, starts it in the background, and saves the result. You can queue multiple tasks at once and check back when they're done.
To queue a task:
- ☰ WORKSPACE → Research → Research Queue
- Give the task a title and a research question
- Pick depth (Quick / Standard / Deep)
- Click ▶ QUEUE — the task starts immediately in the background
Status badges:
| Badge | Meaning |
|---|---|
| ⏸ QUEUED | Waiting to start |
| ⏳ RUNNING | Research pipeline active |
| ✓ DONE | Report ready — click ▼ VIEW REPORT |
| ✗ FAILED | Error — check your Ollama connection |
Click ▼ VIEW REPORT on any completed task to read the full report and source list inline. The panel auto-refreshes every 4 seconds while tasks are active.
SAPPHIRE runs the same multi-source synthesis pipeline as Deep Research — sub-queries, web search, page reading, and a structured report with inline citations.
Artifacts / Canvas
When an agent response contains a renderable code block — HTML, React/JSX, SVG, or Mermaid — an ⬡ ARTIFACT button appears on the code block. Click it to open the live preview panel on the right side of the screen.
| Language | What renders |
|---|---|
html | Full HTML page in a sandboxed iframe |
react / jsx | React component (React 18 + Babel CDN) |
svg | SVG graphic |
mermaid | Flowchart / sequence diagram (Mermaid CDN) |
Controls: PREVIEW / CODE tab toggle · ⬡ NEW WIN opens in a new browser tab · COPY copies the source · ↓ downloads the file · ✕ closes the panel.
Email Assistant
☰ WORKSPACE → Mail / Ghost-writing → paste the email → select a task → ▶ RUN:
- ANALYSE — tone, intent, key points, risk flags, urgency
- DRAFT REPLY — ready-to-send UK English reply
- SUMMARISE — 3–5 bullet summary
- COMPLIANCE — review against UK GDPR, FCA, Employment law, ACAS
Data Analysis
☰ WORKSPACE → Data Analysis (CSV) → upload CSV or XLSX → optional question → ▶ ANALYSE DATA. Returns insights, trends, anomalies, and recommendations. Fully offline.
The totals, averages, shares and ratios are worked out exactly from every row before the AI sees them, and it is told to quote those figures rather than do its own sums. (Before v1.3.27 it did its own arithmetic and could get totals badly wrong.) Amounts are shown as they are in your file, so it may not know they are pounds.
Contract Comparison & Compliance
☰ WORKSPACE → Contract Compare & Compliance:
- CONTRACT COMPARE — upload two documents (A and B) → COMPARE DOCUMENTS. Returns differences, unique clauses, risk flags.
- COMPLIANCE CHECK — upload a document, select a framework → RUN COMPLIANCE CHECK. Returns risk rating plus specific gaps.
Frameworks: UK GDPR · ICO Children's Code · FCA Consumer Duty · UK Employment Law · KCSIE 2023 · CQC Fundamental Standards. Both tools support ↓ MD export.
Document Generation
☰ WORKSPACE → Document Generator → select a template → describe the parties and situation → GENERATE & DOWNLOAD DOCX.
Built-in templates: NDA · Letter Before Action · Employment Offer Letter · Client Engagement Letter · Employee Written Warning.
Meeting Assistant
☰ WORKSPACE → Meeting Assistant → 🔴 START RECORDING → hold meeting → STOP RECORDING. Transcribed locally via Whisper. EMMA produces: attendees, key points, decisions, action items (owner + deadline), follow-ups. Export via ↓ MD.
Workflow Builder
☰ WORKSPACE → Workflow Builder → + NEW → add steps (agent + prompt, use {{input}} for previous output) → SAVE. To run: select the workflow, enter starting text, click ▶ RUN WORKFLOW.
Don't want to build steps by hand? Use the ⏺ Workflow Recorder (see below) — do the task once and HARBOUR turns it into a workflow for you.
OCR — Document Scanner
☰ WORKSPACE → OCR Scanner → upload an image or use the webcam to capture a document. HARBOUR AI preprocesses the image and runs Tesseract OCR locally. Edit the extracted text, then click SEND TO EMMA ▶.
Requires Tesseract: Linux sudo apt install tesseract-ocr · Windows: install it with the installer from github.com/UB-Mannheim/tesseract/wiki, keeping the default folder, then restart HARBOUR AI. That installer does not add Tesseract to your PATH. From v1.3.24 HARBOUR finds it in C:\Program Files\Tesseract-OCR anyway; on v1.3.23 and earlier, add C:\Program Files\Tesseract-OCR to your PATH or HARBOUR will still say it is not installed. Installed somewhere else? Set the TESSERACT_CMD environment variable to the full path of tesseract.exe (v1.3.24 and later).
File Attachments
Click 📎 in the send bar, or drag a file straight onto the chat panel — the panel turns green and shows DROP TO ATTACH while you're holding a file over it. Supported formats: PDF, DOCX, TXT, MD, CSV, XLSX, JSON, HTML.
One file at a time. If you drop several at once, the first is attached and HARBOUR tells you exactly which ones it ignored — it will not quietly swallow the rest.
Still prefer this to pasting a whole document in: an attachment is parsed properly (PDF, DOCX, XLSX and the rest), whereas pasted text arrives as plain text in the prompt. The message box does now keep your line breaks, so pasting a few paragraphs is fine.
The file is parsed server-side and its text is prepended to your message as context. A green badge above the input shows the filename and character count. Click ✕ to remove the attachment before sending.
The attachment is cleared after each send. To use the same document across multiple messages, re-attach it each time.
Image Input (Clipboard Paste)
Paste an image with Ctrl+V while the chat panel is focused, or drag-and-drop an image file (JPG, PNG, GIF, WebP) onto the chat area.
A blue thumbnail preview appears above the input. Type your question and press SEND. The image is sent to the vision model (llava or any multimodal model configured under Model & Providers) via /vision/analyse. The response appears inline tagged with "📎 Image".
Click ✕ on the preview to discard the image before sending.
Requirements: A multimodal model must be pulled in Ollama (ollama pull llava) and configured as the model in the active agent.
Response Style
Three toggle pills appear between the attachment area and the send bar:
- ⚡ BRIEF — maximum 3–5 sentences, no padding, no restating the question
- — NORMAL — default balanced response length
- 📖 DETAILED — thorough, covers all aspects, includes examples and step-by-step reasoning
Your selection is saved automatically and remembered across sessions.
Shared Conversation Links
Click ↗ on an active session tab to generate a share link. The link is copied to your clipboard instantly.
Anyone with the link can read the full conversation at /share/{token} — no login required. Useful for sharing research, support transcripts, or outputs with colleagues who don't have an account.
Conversation Branching (Fork)
Click ⑂ fork beside any of your messages in chat. A new session is created, pre-loaded with all history up to that point. The original conversation is untouched.
Use this to explore an alternate reply, try a different model, or split a conversation into separate threads.
Usage Dashboard
⚙ SYSTEM → Account → Usage shows your personal stats:
- Total AI responses received
- Total tokens generated
- Number of sessions
- Top agents by response count
- 14-day message activity bar chart
Inline Web Citations
When 🌐 web search is enabled on an agent, responses now include [1][2][3] inline citations and a numbered source list below each response. Click any source title to open the original URL.
Projects Knowledge Base
In a project's edit view, a KNOWLEDGE BASE section lets you attach documents directly to the project. Supported formats: PDF, DOCX, XLSX, TXT, MD, CSV, JSON.
Every chat session assigned to the project automatically receives the attached documents as context — no re-uploading needed. Useful for always-available company policies, client briefs, or reference material.
Canvas — Live Editing and AI Refine
The Artifact panel (⬡ button on code blocks) now has three tabs:
- PREVIEW — live rendered output (HTML/React/SVG/Mermaid)
- CODE — read-only source view with copy
- EDIT — editable textarea; click APPLY to update the live preview, RESET to revert
Below the panel is a REFINE WITH AI input. Type a description of what to change (e.g. "make the button blue" or "add a dark mode toggle") and press REFINE or Enter. The AI rewrites the artifact in-place.
Enhanced Canvas features:
- ⬇ APP — Export as Standalone App: downloads the artifact as a fully self-contained HTML file you can open in any browser, share via email, or host anywhere. React/Mermaid artifacts are wrapped with their runtime included.
- ↩ UNDO / ↪ REDO — undo/redo your edit history in EDIT mode. Each APPLY and each AI Refine pushes to the history stack.
External API — OpenAI-Compatible Endpoint
HARBOUR AI now exposes an OpenAI-compatible endpoint at:
POST http://localhost:8000/v1/chat/completions
Any tool that supports an OpenAI-compatible API (LangChain, Cursor, Open WebUI, Continue.dev) can point at this URL and use HARBOUR AI as its backend.
Auth: pass your HARBOUR AI API key as a Bearer token:
Authorization: Bearer hb_...
Or generate a key in ⚙ SYSTEM → Public API → GENERATE.
The API panel also has ready-to-copy curl examples for both the standard /api/ask endpoint and the OpenAI-compatible endpoint.
Image Generation (DALL-E 3)
In addition to local AUTOMATIC1111-compatible generators, HARBOUR AI now supports DALL-E 3 via the OpenAI API.
Open ⚙ SYSTEM → Models → Model & Providers → IMAGE GENERATION:
- Click the DALL-E 3 tab
- Paste your OpenAI API key
- Click SAVE
Type an image prompt in the chat input. The image generates and appears inline in the conversation.
To switch back to a local generator: click the AUTOMATIC1111 tab, enter your server URL, and save.
Code Execution Sandbox
☰ WORKSPACE → Code Sandbox → write Python in the editor → RUN (or Ctrl+Enter). Output appears below. If your code plots with matplotlib, the chart renders inline. Click → CHAT to inject the code and output as a message into the current chat.
Allowed: numpy, pandas, matplotlib, math, json, csv, datetime, statistics, re, itertools, collections, functools, random, string, textwrap, hashlib.
Blocked: os, sys, subprocess, socket, shutil, pathlib, ctypes, importlib and all other system/network modules.
Projects / Spaces
☰ WORKSPACE → Chat & Session → Projects / Spaces. Create a project with a name, description, default agent, and optional persistent instructions. Any text in Instructions is automatically injected into the system prompt for every session assigned to that project — no need to re-paste context each time.
Assign a session to a project from the Projects panel. Session tabs display the project name as a badge. Each session belongs to at most one project.
Stop and Regenerate
⏹ STOP — while a response is streaming, the SEND button becomes a red STOP button. Click it to immediately abort all in-flight streams.
↺ REGENERATE — when no response is streaming and the last message is from an agent, a ↺ button appears next to SEND. Click it to delete the last bot response and re-generate it from scratch with the same context.
Session Review Queue
⚙ SYSTEM → Admin → SESSIONS — assign any session to an admin or power user. Assignees view their queue via ⚙ SYSTEM → Review and read the full conversation inline.
Browser Extension
Install from browser_extension/ (Chrome / Edge, Manifest V3):
- Open
chrome://extensions, enable Developer Mode - Click Load Unpacked, select
browser_extension/
Select text on any page → ⚓ Ask HARBOUR button appears. Right-click for context menu options. Set auth token and default agent in the popup ⚙ SETTINGS tab.
Mobile Companion
Connect the Expo React Native app to your HARBOUR AI instance over Wi-Fi or a VPS:
- Find your machine's local IP (
ip addr/ipconfig) - Install Expo Go on your phone
- From
mobile/:npm install && npx expo start - Scan the QR code, enter
http://192.168.1.x:8000, sign in
Features: browse sessions, read history, send messages to EMMA with live streaming. 2FA supported.
Real-Time Collaborative Sessions
Click the 👥 icon next to a session name, share the session ID. All participants see messages in real time. Requires Business licence.
MCP (Model Context Protocol)
☰ WORKSPACE → Agents & Automation → MCP Servers → add a server (stdio, http, or streamable-http). Tools auto-inject into EMMA at connection time.
AI Provider
Defaults to Ollama. To connect LM Studio, vLLM, or any OpenAI-compatible API: ⚙ SYSTEM → Models → Model & Providers → AI PROVIDER → set type, base URL, optional API key → TEST → SAVE. Admin only.
Anthropic Claude — select type Anthropic, enter your API key, click SAVE. All agents route through Claude. Recommended models: claude-sonnet-4-6 (fast, balanced), claude-opus-4-7 (most capable).
Per-agent provider routing — each agent can use a different provider independently. ⚙ SYSTEM → Models → Model & Providers → PER-AGENT PROVIDER → click any agent (EMMA, BELLA, SAPPHIRE, JADE, ELLIE) to expand → set type, API key, optional model override → SAVE. Classic setup: EMMA on Claude API, the four squad agents on local Ollama. Set to Global to revert an agent to the global provider. Changes take effect immediately with no restart.
Image Generation
Connect a local AUTOMATIC1111 instance (./webui.sh --api --nowebui), then ⚙ SYSTEM → Models → Model & Providers → 🖼 IMAGE GENERATION → set URL → TEST → SAVE → enable ON. Ask naturally — "generate an image of...", "/imagine ...". Renders inline in chat.
Accounts and self-registration
The first account on a new install becomes the administrator. This happens once and cannot be undone or transferred — there is no way to promote another user to admin afterwards — so create it yourself before anyone else can reach the instance. On a desktop install that is whoever sits down at the machine; on a networked or Docker deployment, set ADMIN_EMAIL and ADMIN_PASSWORD so the admin exists from first boot.
Self-registration closes automatically once that first account exists. After that, the REGISTER tab disappears from the login screen and accounts are added by an admin.
Admin → Users controls both:
| Control | What it does |
|---|---|
| Self-registration: OPEN / CLOSED | Whether anyone who can reach this instance may create their own account. Closed on a new install. |
| ADD A USER | Create an account directly — email, username, password, and a role of User or Power User. |
Notes:
- Upgrading an existing installation changes nothing. An install that already has users keeps whatever behaviour it had, so if self-registration was open for your team it stays open. The door only closes on installs created fresh from the release that introduces this.
- An admin cannot create another admin, and cannot promote an existing user to admin. Roles available are User and Power User.
- If your instance was started with
ALLOW_REGISTRATION=falseor in appliance mode, the toggle is disabled and shown as owned by the configuration — change it there.
Two-Factor Authentication
🔐 2FA → ENABLE 2FA → scan QR code → enter 6-digit code → ACTIVATE. On login, a second screen prompts for the current TOTP code. Disable by entering a valid code and clicking DISABLE 2FA.
Team Mode (Business — £999)
Shared memories, shared prompt library (TEAM badge), session review queue, and ⚙ SYSTEM → Team panel (activity, 7-day usage, per-member favourite agents). Power User role can manage the KB and review assigned sessions.
Enterprise SSO / Active Directory
⚙ SYSTEM → Admin → SSO:
- LDAP — direct Active Directory bind, test connection before saving
- SAML 2.0 — supports Entra ID, Okta, Google Workspace. Download SP metadata for IdP setup.
Users auto-provisioned on first SSO login. Requires Enterprise licence.
SAML needs your identity provider's signing certificate (from v1.3.23). Paste it into ⚙ SYSTEM → Admin → SSO; the bare base64 or the whole PEM block both work. Without it, every SAML sign-in is refused, because HARBOUR has no way to tell a real response from a forged one. Sign-in is also refused if SAML is switched off, if the assertion has expired, if it was issued for a different service (its audience must match HARBOUR's SP entity ID, which is in the SP metadata), or if the same assertion is presented twice. The refusal gives the reason, and each SSO sign-in, successful or not, is written to the audit log.
Air-Gapped / Internal Update Server
Set HARBOUR_UPDATE_SERVER=http://your-intranet-server/ in the environment. Drop release artifacts + latest.yml on any file server — Electron's auto-updater points there instead of GitHub Releases.
Admin Dashboard
⚙ SYSTEM → Admin → tabs: Users · Sessions · Stats · Analytics · Logs · Audit · PII · Branding · Reseller · SSO · Model Cache · Quotas.
- Audit — every interaction logged (timestamp, user, agent, content hash, IP address, tokens). Export as CSV. Click VERIFY CHAIN to confirm the entire log has not been tampered with.
- PII — toggle PII Auto-Redaction on/off; view stats (total events, items redacted, breakdown by type) and the full redaction event history.
- Quotas — set per-user daily and monthly message caps. When a cap is reached the user receives a clear limit message instead of a response.
- Branding — app name, tagline, logo, colour, agent name overrides.
- Reseller — enter
HARBOUR-RSLkey, generateHARBOUR-CLclient keys, track activations. - Model Cache — shared network Ollama path for team installs.
Quota Management
Admins can set per-user daily and monthly message caps via ⚙ SYSTEM → Admin → QUOTAS.
- Set a Daily Limit (max messages per calendar day) and/or a Monthly Limit (max messages per calendar month)
- When a user hits their cap, the next message returns an HTTP 429 with a clear explanation — no silent failure
- Limits can be removed at any time; leave blank for no limit
- Today's count and this month's count are shown live in the Quotas table
PII Auto-Redaction
Protect sensitive data before it reaches any AI model. Enable via ⚙ SYSTEM → Admin → PII → toggle ON.
When enabled, every incoming chat message is scanned for 11 UK PII types before being processed:
| Type | Example |
|---|---|
| NHS Number | 123 456 7890 |
| National Insurance | AA 12 34 56 A |
| UK Postcode | SW1A 1AA |
| UK Phone | 07700 900000 |
| Email Address | name@company.co.uk |
| Credit Card | 4111 1111 1111 1111 |
| Sort Code | 20-00-00 |
| Bank Account | 12345678 |
| Date of Birth | 01/01/1980 |
| Passport Number | A1234567 |
| Driving Licence | SMITH801011AB9IJ |
Matched values are replaced inline with [REDACTED:TYPE] — agents only ever see the redacted version. Each event is logged with the user, session, types found, and count.
The PII tab in the Admin Dashboard shows:
- Total redaction events and total items redacted
- Breakdown by type
- Full event history with timestamps
PII redaction is off by default. Any detection failure is silent and non-blocking — messages are never dropped.
Tamper-Evident Audit Trail
Every logged action (chat messages, logins, admin changes) is cryptographically chained so any tampering is immediately detectable.
How it works:
- Each audit entry computes a SHA-256 hash of
previous_chain_hash|timestamp|user_id|action|content_hash - The very first entry anchors to the string
GENESIS - Any modification, deletion, or insertion of rows breaks the chain
What is logged:
- Every chat interaction (agent, session, tokens, content hash)
- Login success and failure events — with the originating IP address
- Admin actions: disable user, enable user, delete user, reset password, change role
- PII redaction setting changes
Verify the chain: Go to ⚙ SYSTEM → Admin → AUDIT → VERIFY CHAIN. HARBOUR AI re-walks the entire log from GENESIS and either confirms all entries are intact or reports the exact entry ID where the chain breaks.
Export the full log as CSV at any time for offline archiving or ICO evidence packs.
v1.0.131 — signed checkpoints + independent verification: the ledger is now periodically signed with your install's Trust Root key, so even a full rewrite of the table (recomputing every hash) is detectable against the signed history. ⚙ SYSTEM → Trust Layer → LEDGER verifies the chain and every checkpoint signature, can sign a checkpoint on demand, and downloads a signed ledger export that an auditor verifies without HARBOUR installed (see Trust Center below).
Audio Overviews
☰ WORKSPACE → Audio Overview → BROWSE FILES and choose one or more documents (PDF, DOCX, TXT, MD) → 🎙 GENERATE PODCAST (a few minutes). HARBOUR AI scripts and records a two-voice podcast-style audio summary. HOST speaks in UK English, GUEST in US English. Output is a WAV file you can play inline or download.
Fully offline — spoken by HARBOUR's bundled Kokoro neural voice (bf_emma hosting, am_michael as guest). No cloud TTS, no system speech packages needed. Requires ffmpeg on the machine to stitch the segments together.
EMMA Always-On Monitors
☰ WORKSPACE → Always-On Monitors → + ADD MONITOR. Three monitor types:
| Type | What it does |
|---|---|
| File Watch | Detects when a specific file changes and alerts EMMA |
| Folder Scan | Scans a folder on a schedule, reports new or modified files |
| Scheduled Prompt | Runs any EMMA prompt on a timer |
Monitors run in the background. The 🤖 button shows an unread alert badge. ALERTS tab — read and mark as read. Toggle individual monitors on/off without deleting them. ▶ RUN NOW triggers a monitor immediately for testing.
Company Brain
☰ WORKSPACE → Company Brain — a living knowledge graph of your business, automatically populated from your conversations.
The Brain populates automatically — every 20 messages in any chat session EMMA extracts entities and relationships silently in the background. You can also trigger it manually.
EXTRACT FROM CHAT on any session — EMMA reads the conversation and extracts entities (people, companies, projects, decisions, deadlines, contacts, products) and the relationships between them.
- ENTITIES tab — browse and search all extracted entities, delete any entry
- ASK tab — ask plain-English questions about your business ("What decisions were made about Project X?")
- STATS — entity count breakdown by type
No manual tagging needed — extraction is LLM-driven and runs as a background task. The auto-extract fires staggered from memory auto-save (memory at 10 messages, brain at 20) so both run without overlapping.
Real-Time Live Voice
☰ WORKSPACE → Live Voice — a continuous, real-time voice conversation with EMMA (or any agent).
Speak naturally; HARBOUR AI transcribes via local faster-whisper (offline), streams the LLM response, and speaks it back sentence by sentence in the bundled Kokoro neural voice — all on-device with no cloud dependency and no system speech packages.
Four voices ship with the model: bf_emma (British female, default), bf_isabella (British female), am_michael (American male), af_sarah (American female).
- Interrupt EMMA at any point by speaking — the current response cancels immediately
- 🔄 CLEAR HISTORY resets the conversation context
- CHANGE AGENT switches agent mid-conversation
- Requires a microphone and faster-whisper installed
Computer Operator
☰ WORKSPACE → Computer Operator — EMMA can see and control your desktop. At every step it captures your screen, passes the screenshot to the llava vision model, and plans the next action based on what it actually sees — not guesswork.
Supported actions: click, move, type, key press, scroll.
- Describe a task → ▶ START
- EMMA takes a screenshot, reads it with llava, and proposes the next action
- Review the plan and either APPROVE or DENY
- EMMA loops up to 40 steps, stopping when the task is complete or it decides it cannot continue
Requires Business licence. Uses pyautogui with FAILSAFE=True — move the mouse to any screen corner to abort immediately.
Video Generation
☰ WORKSPACE → Video Generation. Describe the video → pick a provider → 🎬 GENERATE VIDEO.
| Provider | Method |
|---|---|
| Local Slideshow | LLM generates scene descriptions → placeholder frames with Ken Burns zoom/pan → ffmpeg concat |
| Runway | RunwayML API (requires RunwayML API key) |
| Kling | Kling AI API (requires Kling API key) |
| Luma | Luma Labs API (requires Luma API key) |
Generated videos are saved locally. Click ▶ PLAY to preview or ↓ DOWNLOAD to save.
Collaborative Documents
☰ WORKSPACE → Collaborative Docs → + NEW. Create a shared document and invite team members by username. All editors see each other's changes in real time via WebSocket.
- INVITE — add a collaborator by username
- ASK EMMA — EMMA reads the current document content and appends a response (summary, rewrite, research, etc.)
- Presence indicators show who is currently in the document
- Requires Business licence
Grant Writing Engine
☰ WORKSPACE → Grants — find and apply for UK grant funding with EMMA's help.
- COMPANY PROFILE → SAVE — describe your business: sector, size, stage, location, technologies
- GRANTS tab → + ADD GRANT — paste any grant opportunity: name, funder, deadline, description, eligibility criteria
- ANALYSE FIT — EMMA scores the grant 0–10 for relevance to your company profile, with a written reason and recommendation
- DRAFT APPLICATION — EMMA writes a 200–400 word application answer for the grant
Track application status: New → Applied → Awarded / Rejected.
AI Web Receptionist
☰ WORKSPACE → Web Receptionist — a chat window for your website. Visitors get instant answers from the details you give it, and anyone who leaves an email address becomes a lead.
Setup:
- ⚙ CONFIG — fill in Business Name, Receptionist Name, Greeting Message, a Business Description (your services, prices, hours: this is what it answers from) and, optionally, a Custom Persona / Tone → SAVE CONFIG
- 🔗 EMBED — copy the
<script>snippet; PREVIEW WIDGET → opens the chat as a visitor sees it - Paste the snippet into your website's pages — the chat window appears in the bottom-right corner
👥 LEADS — when a visitor types their email address into the chat (the receptionist asks for it when they seem interested), it is saved here with a one-line summary of what they wanted.
Your website must be able to reach HARBOUR for the widget to work, so the address in the snippet has to be one your visitors can open: your IT partner arranges that. The chat itself (/receptionist/chat/{token}) needs no login; the CONFIG, EMBED and LEADS tabs do.
HARBOUR AI Box
HARBOUR AI Box is a pre-configured hardware appliance for organisations that need zero-setup, air-gapped AI with no IT involvement.
Tiers:
| Tier | Price | Users |
|---|---|---|
| Solo Box | £149 | 1 user |
| Team Box | £499 | Up to 10 users |
| Enterprise Box | POA | Unlimited |
Appliance mode features:
- Self-registration is disabled — the admin account is pre-provisioned; the admin creates all user accounts from Admin → Users → ADD A USER > ⚠️ Correction (27 Aug 2026): in v1.3.17 and earlier this was not achievable. Appliance mode disabled self-registration, but no route existed for an admin to create an account, so an appliance was in practice limited to the single pre-provisioned admin. ADD A USER shipped in v1.3.18 (Linux) and reached Windows in v1.3.19. On an earlier build, a multi-user appliance needs self-registration left on. If this has affected your deployment, contact support and we will help you provision accounts.
HARBOUR_APPLIANCE_MODE=trueenvironment variable activates this behaviour, and also removes the admin's own self-registration toggle (the setting is then owned by the appliance's configuration)/healthendpoint exposesappliance_mode: truefor monitoring and deployment scripts- All other HARBOUR AI features are fully available — no capability is removed
See harbour-ai.co.uk/appliance for hardware specs and ordering.
Smart Email Triage
☰ WORKSPACE → Email Triage / Inbox — EMMA monitors your connected inbox, triages every email automatically, and pre-drafts a ready-to-send reply.
Requires email configured in ⚙ SYSTEM → Integrations → ✉ OUTLOOK/EMAIL.
▶ SYNC NOW — fetches all unread emails immediately. Inbox also syncs automatically every 15 minutes in the background once synced once.
Each email is classified into one of four labels:
| Label | Meaning |
|---|---|
| 🔴 URGENT | Needs a response or action within 24 hours |
| 🟡 ACTION | Needs a response or action, not immediately urgent |
| 🔵 FYI | Informational — no reply needed |
| ⚫ SPAM | Unsolicited or irrelevant |
Click any email to expand it. EMMA shows a summary, the action required, and a draft reply you can edit before sending. Click SEND REPLY to send directly from HARBOUR AI via your SMTP settings. Re-label any email manually using the label buttons.
The Email Triage / Inbox menu entry carries the unread count.
Proposal & Quote Builder
☰ WORKSPACE → Proposals → + NEW PROPOSAL — fill in a client brief and EMMA writes a complete professional proposal as a downloadable DOCX.
Fields:
- Client name, email, and project title
- Your company name
- Client brief — describe the project, objectives, requirements, and context
- Pricing hints — day rate, fixed fee, or budget range (optional)
Click ✦ CREATE & GENERATE PROPOSAL — EMMA writes:
| Section | Content |
|---|---|
| Executive Summary | Who you are, what you're proposing, key benefit |
| Understanding | Shows you understand the client's situation |
| Approach | Methodology and how you'll work |
| Deliverables | Clearly stated list |
| Timeline | Phases with duration and description |
| Investment | Line-item breakdown with pricing |
| Terms & Conditions | Standard UK business terms |
| Next Steps | What happens after signing |
| About Us | Company background |
Click ↓ DOWNLOAD DOCX to get a formatted Word document. Click 🤖 GENERATE / REGENERATE at any time to rewrite the proposal with updated content.
Contract Lifecycle Manager
☰ WORKSPACE → Contracts — track every contract with renewal dates, EMMA-extracted key terms, and automatic renewal alerts.
Adding a contract: + ADD tab → fill in name, counterparty, contract type, dates, notice period, annual value → + ADD CONTRACT.
Extracting terms from a document: Open any contract → paste the contract text → 🤖 EXTRACT KEY TERMS. EMMA reads the text and populates: parties, contract type, start/end/renewal dates, notice period, break clauses, liability cap, payment terms, governing law, and risk flags. Date fields auto-fill from the extracted data.
⏰ RENEWALS tab — shows all active contracts expiring within 60 days, sorted by urgency. Contracts expiring within 7 days show 🔴, within 30 days show 🟡.
Renewal alerts also appear in ☰ WORKSPACE → Always-On Monitors alerts automatically — EMMA checks every morning at 8am and fires an alert for any contract due within the alert threshold (default 30 days, configurable per contract).
The Contracts menu entry carries the contract count.
Client Portal
☰ WORKSPACE → Client Portal → + NEW CLIENT — create a white-labelled private portal for each client with a unique URL they can bookmark and return to.
Setup:
- Enter client name, email, company, portal title, and welcome message → ✦ CREATE CLIENT PORTAL
- A unique portal URL is generated:
http://your-server/client-portal/{token} - Share the URL directly with your client — no login required for them
Sharing content with a client: Open a client → enter a title, pick a type (Report / Document / Note / Invoice), paste the content → + SHARE WITH CLIENT. The item appears in their portal immediately.
Viewing the portal: Click 🌐 VIEW on any client to see exactly what they see — a clean, branded page showing all shared items. Each item expands to show the full content.
The portal title and welcome message use your white-label branding from the Admin panel.
DPIA Auto-Generator
⚙ SYSTEM → DPIA — generate complete GDPR Article 35 Data Protection Impact Assessments following ICO guidance.
Creating a DPIA:
- Click ⚙ SYSTEM → DPIA → NEW → fill in Title, Description, Data Types, Purposes, Legal Basis, Data Subjects, Recipients, Retention, Transfers, Risk Areas → ✦ CREATE DPIA
- Click ⚡ GENERATE DPIA WITH AI — EMMA drafts the full assessment in ICO structure
- Review the Executive Summary, Risk Register (likelihood/severity/residual), DPO advice, and Decision
- Click ⬇ DOWNLOAD DOCX to export a professionally formatted Word document
Output includes: executive summary, necessity & proportionality analysis, risk register with mitigations, safeguards, DPO advice, supervisory authority consultation flag, PROCEED/DO NOT PROCEED decision, sign-off section.
WhatsApp Business Integration
☰ WORKSPACE → WhatsApp Business — connect your Meta WhatsApp Business account so EMMA automatically replies to incoming messages.
Setup:
- Create a Meta Business account + WhatsApp Business App in the Meta Developer Console
- Click ☰ WORKSPACE → WhatsApp Business → CONFIG → enter Phone Number ID, Access Token, Webhook Verify Token, and EMMA system prompt
- Configure your webhook URL in Meta:
https://your-harbour-instance/whatsapp/webhook - Toggle Enable auto-reply → 💾 SAVE CONFIG
Using the panel:
- MESSAGES tab — browse all inbound and outbound messages with EMMA replies inline
- SEND tab — manually send a message to any number (E.164 format)
- STATS tab — total, inbound, replied, and unique numbers at a glance
Live Meeting Intelligence
☰ WORKSPACE → Live Meeting — real-time transcription and auto-generated meeting minutes during live meetings.
Starting a live meeting:
- Click ☰ WORKSPACE → Live Meeting → ▶ START LIVE MEETING (microphone permission required)
- Audio streams via WebSocket → VAD → local Whisper → live transcript updates appear as you speak
- Every 5 utterances, EMMA auto-generates structured minutes (title, key points, decisions, action items)
- Click ⏹ END MEETING to finalise — full minutes are generated and saved
Reviewing past sessions: All past sessions are listed in the panel. Click any session to view the full transcript and minutes.
Action items include task description, owner, and deadline extracted by EMMA from the conversation.
Partner / Reseller Portal
☰ WORKSPACE → Partner / Reseller — manage your HARBOUR AI reseller account directly inside the app.
First-time setup:
- Click ☰ WORKSPACE → Partner / Reseller → paste your
HARBOUR-RSL-...key from your welcome email → 🔌 CONNECT RESELLER ACCOUNT
Dashboard tabs:
- STATUS — live seat pool: total / used / remaining, plan, expiry. Click ↻ to force-refresh from the licence server
- GENERATE — enter a count (1–100) → ⚡ GENERATE KEYS — new client keys drawn from your seat pool
- KEYS — full list of issued keys with activation status; COPY button for each key
Delivering keys to clients: copy a key and send via email. The client enters it on their HARBOUR AI activation screen. Unused keys do not consume seats until activated.
Referral Programme
Earn 20% commission per sale. Go to harbour-ai.co.uk/refer, enter your licence key, get your REF-XXXXXX link. £29.80 per Solo sale (20% of £149) · £199.80 per Business sale (20% of £999). No cap, no expiry, paid monthly.
Email Ghost-Writing in Your Voice
👻 GHOST tab inside the ☰ WORKSPACE → Mail / Ghost-writing panel — EMMA learns your writing style and drafts emails that sound like you.
Training EMMA on your voice:
- Click ☰ WORKSPACE → Mail / Ghost-writing → 👻 GHOST tab
- Paste 2–10 sent emails into the text box, separated by
---on its own line - Click TRAIN EMMA — she analyses your tone, vocabulary, greeting/sign-off style, sentence structure
- A style profile summary appears confirming the analysis is saved
Drafting an email:
- Enter a Topic (required) — what the email is about
- Optionally add Recipient, Context, and paste the email you're Replying To
- Click GHOST-WRITE EMAIL — EMMA drafts in your exact voice
- COPY to clipboard or ↓ TXT to download
Retraining: click RETRAIN to wipe the current profile and start again with new samples.
Meeting Pre-Brief
EMMA automatically prepares a briefing 15 minutes before every calendar event.
Setup:
- Connect your calendar: ⚙ SYSTEM → Integrations → Calendar → paste your ICS URL → SAVE
- In the EMMA panel → enable 📅 MEETING PRE-BRIEF toggle
How it works: 15 minutes before each event EMMA queries your Knowledge Base, Company Brain, and memories for relevant context, then delivers a brief as an EMMA alert (appears in the ☰ WORKSPACE → Always-On Monitors badge). The brief covers what the meeting is about, relevant background, and 2–3 things to prepare for.
Manual trigger: EMMA panel → 📅 MEETING PRE-BRIEF → ▶ RUN NOW (previews upcoming events in a configurable time window).
Post-Meeting Auto-Actions
EMMA automatically extracts action items and follow-up emails the moment a meeting recording ends.
How it works: When you stop a meeting capture (🎙 CAPTURE → ⏹ STOP), EMMA reads the transcript and identifies every action item with owner and deadline, plus any follow-up emails that need sending.
Viewing actions:
- ☰ WORKSPACE → Meetings → Meeting Actions — the menu entry shows the pending count
- Each action shows: task description, meeting title, owner, deadline
- Email actions show a 👻 DRAFT FOLLOW-UP EMAIL button — click to ghost-write the email in your style (uses your M1 profile if trained, otherwise drafts in professional UK English)
- COPY or ↓ TXT to download the drafted email
Marking complete: click the status badge on any action to cycle through pending → done.
Screen Memory
EMMA passively remembers what you were working on throughout the day — entirely locally, nothing ever leaves your machine.
Enabling Screen Memory:
- EMMA panel → 🖥 SCREEN MEMORY toggle → ON
- Configure capture interval (default: 5 minutes) and retention period
How it works: Electron captures the active window title at the configured interval using xdotool (Linux) or PowerShell (Windows). Titles are stored in local SQLite. EMMA references recent activity in every chat automatically.
Searching your activity:
- EMMA panel → 🖥 SCREEN MEMORY → VIEW
- Type a keyword in the search box → SEARCH — shows matching window titles with timestamps
- Or type a natural language question → ASK EMMA — she answers from your activity log (e.g. "What was I working on Tuesday afternoon?")
Clearing data: VIEW panel → 🗑 CLEAR ALL — wipes the entire activity log immediately.
Privacy: opt-in only, disabled by default. Window titles only — no screenshots, no content capture. One-click wipe. Never transmitted anywhere.
Per-Agent Knowledge Base
Give any installed marketplace agent its own specialist document store — curriculum PDFs for a teaching agent, BNF data for a clinical agent, SRA guidance for a legal agent.
Adding documents to an agent:
- ☰ WORKSPACE → Agents & Automation → Marketplace → find an installed agent → click 📚 TRAIN
- In the AGENT INTELLIGENCE panel → 📄 KNOWLEDGE DOCS tab
- Click ↑ UPLOAD DOCUMENT → select a PDF, DOCX, TXT, or Markdown file
- The document is stored locally and the agent uses it as its primary reference on every chat
Managing documents: each uploaded document is listed with filename, size, and date. Click ✕ to remove a document.
How it works: when you chat with that agent, it searches its own KB first, then the Company Knowledge Base, then uses its general training. Agent-specific knowledge always takes priority.
Per-Agent Web Search Source Filtering
Restrict an agent to only search trusted websites — essential for school, NHS, and legal deployments.
Adding trusted domains:
- ☰ WORKSPACE → Agents & Automation → Marketplace → find an installed agent → click 📚 TRAIN
- In the AGENT INTELLIGENCE panel → 🔍 SEARCH SOURCES tab
- Enter a domain (e.g.
gov.uk,nice.org.uk,legislation.gov.uk) and an optional label → ADD
How it works: when web search is active, results from domains not on the list are silently filtered out before the agent sees them. A teaching agent with gov.uk and bbc.co.uk/bitesize added will only ever surface results from those sources.
No sources added: agent searches the open web normally (default behaviour).
Removing a source: click ✕ next to any domain to remove it.
Client Sentiment Monitor
EMMA reads every inbound client email daily and flags dissatisfaction signals before they become churn. A weekly at-risk digest is delivered as an Always-On alert.
Enabling:
- ☰ WORKSPACE → Business → Client Sentiment → toggle ON
- Click ANALYSE NOW to run an immediate pass, or let it run automatically each morning
What it detects: frustration, urgency, complaint language, requests to cancel or escalate, declining engagement tone. Each client is scored and ranked: positive, neutral, at-risk, or churning.
At-risk clients: the AT-RISK tab shows clients EMMA has flagged, with the specific reason — e.g. "Three consecutive emails with escalating urgency; last email included "extremely disappointed"."
Requires IMAP email connected under ⚙ SYSTEM → Integrations.
Knowledge Decay Alerts
Company Brain data goes stale. EMMA monitors every entity in your Brain and alerts you when information hasn't been updated in too long.
Enabling: ☰ WORKSPACE → Knowledge → Knowledge Decay → toggle ON → set thresholds per entity type (e.g. client data: 30 days, supplier: 90 days).
Click CHECK NOW to run an immediate scan. Stale entities appear with a count of days since last update and the entity type. Click any entry to open the relevant Brain record.
Features Without a Panel — Ask EMMA, or Call the API
Not every capability has a window of its own. Around forty of them are wired straight into EMMA as platform tools, so the way you use them is to ask:
EMMA calls the same endpoint the panel would have called, under your own account — so your licence tier, quotas and audit trail apply exactly as if you had clicked it, and any draft is saved where the matching panel would have put it. These tools only draft, analyse and look up; they never send email, submit to HMRC, or delete anything.
Everything below is also a plain REST endpoint you can call directly (see Public API), and each section names its own.
⚠️ Older versions of this manual sent you to an M-SERIES panel for these. There is no M-SERIES panel — it was retired with the rest of the old toolbar in v1.2.0. Use the phrasing or the endpoint given in each section instead.
NHS DSPT Compliance Check
Every AI output can be checked against NHS Data Security and Protection Toolkit standards in real time.
Using: ask EMMA — "check this against NHS DSPT: …" — or call POST /dspt/check. You get a compliant/non-compliant verdict, the specific issues found, and a score.
Every check is logged; read the history with GET /dspt/flags and the standards list with GET /dspt/standards. Non-compliant outputs are never blocked — EMMA advises, you decide.
This is a prerequisite for NHS organisations deploying HARBOUR AI for patient-adjacent workflows.
BNF Drug Interaction Checker
The British National Formulary drug interaction database is built into EMMA for healthcare users. All checks run against a local offline database — no data ever reaches an external service.
Using: ask EMMA — "check these drugs for interactions: warfarin, aspirin, ibuprofen" — or call POST /bnf/check-text with free text, or POST /bnf/check with a list of drug names.
EMMA returns each interaction pair with severity (HIGH / MEDIUM / LOW), the clinical effect, and a plain-English explanation. High-severity interactions are flagged in red.
Intended for clinical staff to verify AI outputs — not a substitute for clinical judgement or a registered pharmacist.
CQC Self-Assessment
EMMA auto-generates a CQC Self-Assessment Framework report by reading your Company Brain, meeting transcripts, and Knowledge Base documents. Covers all five CQC quality themes with evidence mapped from your actual records.
Generating a report: POST /cqc/assessments with a title (e.g. Q2 2026 CQC Assessment). EMMA reads the available data and fills the framework; GET /cqc/framework returns the five themes it works to.
List past assessments with GET /cqc/assessments and download one with GET /cqc/assessments/{id}/export.
Reports export as DOCX and are listed with download links. Each assessment is saved so you can regenerate when new data is available.
SRA Conflict of Interest Checker
Before onboarding a new client, run a conflict check across your entire Company Brain — every conversation, document, and relationship EMMA has indexed.
Running a check: ask EMMA — "run an SRA conflict check on Johnson Holdings" — or call POST /sra/conflict-check with the client or opposing party name.
EMMA returns one of three verdicts: CLEAR (no matches found), POTENTIAL (related entities detected, review recommended), or CONFLICT (direct conflict identified). Each result includes the specific matches found and an explanation.
All checks are logged with timestamps for your compliance records.
Court Form Auto-Fill
EMMA fills N1 (money claim), ET1 (employment tribunal), and N244 (application notice) court forms from a plain-English description of the matter.
Using: ask EMMA — "fill an N1 for me: …" followed by the matter in plain English (parties, dates, amounts, what happened) — or call POST /court-forms/fill. GET /court-forms/types lists the supported forms.
EMMA extracts and maps every required field. The completed form exports as DOCX ready for review before filing. All drafts are saved and downloadable.
MTD VAT Return Assistant
Connect to HMRC Making Tax Digital and let EMMA prepare and submit VAT returns using your accounting data.
Setup: complete the HMRC OAuth2 flow (GET/POST /mtd/config, then POST /mtd/token). Your HMRC credentials are stored locally.
Preparing a return: ask EMMA — "prepare our VAT return for 2026-01" — or call POST /mtd/vat-return/prepare. EMMA pulls transactions from connected accounting software, calculates VAT due, and flags anomalies.
Submitting: review the prepared return, then POST /mtd/vat-return/{id}/submit. ⚠️ EMMA will prepare a return when asked, but she will never submit one — submission is a deliberate, separate call you make yourself.
Requires Xero, QuickBooks, or Sage connected under ☰ WORKSPACE → Accounting.
Automated Compliance Reports
Scheduled auto-generation of reports required by UK regulators. EMMA populates them from your Company Brain and Knowledge Base overnight.
Available templates:
- CQC Quality Statement pack
- FCA Consumer Duty board report
- ICO Article 30 ROPA update
- SRA Practice Management report
Generating a report: ask EMMA — "generate the FCA Consumer Duty board report" — or call POST /compliance-reports/generate with a template from GET /compliance-reports/templates. Schedule recurring ones with POST /compliance-reports/schedules.
Reports export as DOCX. Each is saved with a timestamp and downloadable at any time.
Regulatory Change Monitor
EMMA watches HMRC, ICO, CQC, FCA, and SRA for updates every night. When a change is published, EMMA briefs you the next morning — what changed, how it affects you, and which documents may need updating.
Enabling: POST /regwatch/config — turn it on and choose which regulators to monitor. There is no panel for this one.
Ask EMMA — "check for regulator updates" — or call POST /regwatch/check-now for an immediate check. New items appear with source, title, impact summary, and a link to the original publication. Items are ranked by impact level: HIGH, MEDIUM, LOW.
Cash Flow Forecasting
EMMA models your cash position 90 days forward using outstanding invoices, historical payment patterns, and recurring costs from connected accounting software.
Generating a forecast: ask EMMA — "forecast our cashflow" — or call POST /cashflow/forecast.
EMMA returns a week-by-week cash position with a narrative commentary. An Always-On alert fires when projected cash drops below your configured threshold.
Set the alert threshold via POST /cashflow/config. Requires Xero, QuickBooks, or Sage connected under ☰ WORKSPACE → Business → Accounting.
Auto Invoice Chasing
EMMA sends polite, escalating payment reminders for overdue invoices automatically. Tone escalates with each chase: polite → firm → formal.
Enabling: POST /invoice-chaser/config — turn it on and set the chase intervals (e.g. 7, 14, 30 days after due date).
POST /invoice-chaser/run-now triggers an immediate chase run across all overdue invoices. Each chase is logged to the Company Brain and to GET /invoice-chaser/history. EMMA stops chasing automatically when payment is received.
Before you enable it, ask EMMA to "preview the chase email for invoice …" (POST /invoice-chaser/preview) to see the exact wording that would go out.
R&D Tax Credit Assistant
EMMA scans your Company Brain, conversations, and Knowledge Base for HMRC-qualifying R&D activity and drafts the technical narrative for an R&D tax credit claim.
Using: ask EMMA — "analyse our R&D tax credit claim" — or call POST /rd-tax/analyse.
EMMA identifies qualifying activities — technical uncertainty, systematic investigation, advance in science or technology — and estimates the credit value. POST /rd-tax/claims/{id}/narrative writes the HMRC technical narrative for a claim; GET /rd-tax/claims/{id}/export downloads it as DOCX.
R&D credit rates: SME scheme (up to 33p per £1 spent) or RDEC (13p per £1). EMMA identifies which scheme applies based on company size data in your Brain.
Pricing Intelligence
EMMA monitors competitor websites, job boards, and Companies House filings to produce a quarterly pricing recommendation backed by evidence.
Using: POST /pricing-intel/scan-now. Reports are listed at GET /pricing-intel/reports.
Add competitor URLs with POST /pricing-intel/config. EMMA checks for pricing page changes, hiring signals (growth indicators), and Companies House filing changes. The latest report shows detected changes, hiring signals per competitor, and a specific pricing recommendation for your business.
Smart Clipboard Intelligence
When you copy text that EMMA recognises — a company name, a bank sort code, a drug name — a toast notification appears with instant context from your Company Brain and Companies House.
Availability: the detection endpoint (POST /clipboard/check) is live, but nothing in the desktop app watches your clipboard automatically — you or an integration must send it the text. There is no clipboard watcher and no on/off setting to find.
⚠️ A company-name lookup calls the Companies House API over the internet, so it is one of the few features that is not purely on-device. The egress meter will show it.
Examples:
- Copy "Acme Ltd" → toast shows last interaction, open invoices, sentiment rating
- Copy "20-00-00" → toast shows "Barclays sort code" with a fraud warning prompt
- Copy a drug name → BNF lookup fires automatically
Focus Mode / Ambient Context Panel
EMMA detects what application and document you have open and automatically surfaces the most relevant Company Brain entries, emails, and KB documents in a side panel — without you asking.
Availability: this is an API-only capability today — POST /focus/context with what you are looking at, GET /focus/recent-context for what it last surfaced. There is no Focus Mode panel or toggle in the app.
The context is recalculated each time you post a new window. If you open a contract named "Johnson v Smith", EMMA surfaces the relevant client files, related emails, Brain entities, and KB documents for that matter automatically. Debounced to avoid noise on rapid window switching.
Slack / Teams Bot
@EMMA lives in your Slack workspace or Microsoft Teams. Team members can ask questions, get Company Brain lookups, and run research — all processed on your local HARBOUR AI instance. Slack only sees the message relay; no AI processing happens in Slack's cloud.
Setup:
POST /bot/config— platform (Slack or Teams), your Slack Bot Token and Signing Secret (from api.slack.com/apps), andenabled: true- Point Slack's event subscription at
POST /bot/slack/events(Teams:POST /bot/teams/messages) - In Slack: add your bot to channels, then @mention EMMA in any message
POST /bot/test verifies EMMA responds before you roll it out to the team. GET /bot/messages lists all bot conversations with timestamps.
Embeddable Chat Widget
Add EMMA to your website with a single <script> tag. Visitors get instant answers from your Knowledge Base — your HARBOUR AI instance handles the conversation, your data never leaves your machine.
Setup:
POST /widget/config— company name, welcome message, accent colour,enabled: trueGET /widget/snippetreturns the<script>tag — paste it into your website's<body>
GET /widget/stats shows total sessions, messages, and sessions today.
If you want a configured-by-clicking version of this, use the Web Receptionist panel instead (☰ WORKSPACE → Business) — same idea, with a UI.
Public API
HARBOUR AI exposes a fully documented REST API that third-party apps, automations, and AI tools can connect to. As of v1.0.120 the API surface covers chat, Company Brain, agents, workflows, document generation, and data analysis.
Creating an API key:
- ⚙ SYSTEM → Connections → Public API
- Enter a key name → CREATE KEY
- Copy the key immediately — it is shown only once
API keys use the hbr_ prefix. Each key has a monthly request quota (default 10,000 requests). Usage and quota are visible in the KEYS tab.
Authentication: all requests must include X-API-Key: hbr_your_key as a header.
Full endpoint reference:
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/chat | Send a message, get a response from EMMA |
| GET | /api/v1/usage | Check token usage and quota for the current key |
| GET | /api/v1/brain/stats | Entity and relation counts from the Company Brain |
| POST | /api/v1/brain/ask | Query the Company Brain with a natural language question |
| POST | /api/v1/brain/ingest | Ingest text — EMMA extracts entities and relations in the background |
| GET | /api/v1/agents | List all available agents (name, persona, model) |
| POST | /api/v1/agents/{agent_id}/chat | Chat with a specific named agent by ID |
| POST | /api/v1/workflows/{wf_id}/run | Run a multi-step workflow with an initial input |
| POST | /api/v1/doc/generate | Fill a document template from plain-English context |
| POST | /api/v1/analyse | Analyse CSV data with a natural language question |
Examples:
# Chat with EMMA
POST /api/v1/chat
{"message": "Summarise the key risks in my latest contract.", "model": "llama3.1:latest"}
# Query the Company Brain
POST /api/v1/brain/ask
{"q": "Which clients are at risk of churning?"}
# Ingest text into the Brain
POST /api/v1/brain/ingest
{"text": "Acme Corp signed a 2-year contract on 1 June 2026. Primary contact is Jane Smith.", "source": "crm"}
# Chat with a specific agent
POST /api/v1/agents/LEGAL/chat
{"message": "Draft a letter before action for an unpaid invoice of £4,500."}
# Run a workflow
POST /api/v1/workflows/3/run
{"input": "New client onboarding — Acme Corp, retail sector, 50 employees."}
# Analyse CSV data
POST /api/v1/analyse
{"data": "Month,Revenue\nJan,12000\nFeb,15000\nMar,18000", "question": "What is the growth rate?"}
Webhooks: register a URL to receive signed events. HARBOUR AI sends HMAC-SHA256 signed POST requests to your endpoint when events fire (chat.completed, brain.asked, workflow.completed, doc.generated). The signing secret is shown once on webhook creation — store it to verify payloads using the X-HARBOUR-Signature header.
Rate limits and billing: Developer tier — £49/month, 10,000 requests/month. Each request decrements the counter by 1 regardless of tokens used. When the monthly quota is reached, requests return 401 until the next billing cycle.
White-Label Engine
License HARBOUR AI to other software companies. They ship "AI by HARBOUR" to their users under their brand. You receive a revenue share per active seat.
Creating a partner: POST /white-label/partners with partner name, contact email, seat price (£/month), and revenue share (0.0–1.0).
GET /white-label/revenue returns gross MRR, your share, and a per-partner breakdown. GET /white-label/partners/{id}/seats shows active seats vs. allocated seats.
(This is the reselling engine. To rebrand your own install — app name, logo, colours, agent names — use ⚙ SYSTEM → Account → Admin → Branding.)
EMMA Hiring Assistant
Post a role and EMMA screens every CV automatically — scoring candidates, ranking them, generating interview questions, and sending acknowledgement emails. Everything logged to the Company Brain.
Creating a role: POST /hiring/roles with job title, description, and requirements.
Uploading CVs: POST /hiring/roles/{role_id}/cv with the candidate's name, email, and CV file (PDF, DOCX, or TXT). EMMA extracts the text, scores it against the job description (0–100), and ranks: Strong Yes / Yes / Maybe / No.
Interview questions: POST /hiring/cv/{cv_id}/interview-questions returns questions tailored to that CV and the job requirements. POST /hiring/cv/{cv_id}/acknowledge sends the acknowledgement email.
Company Health Dashboard
EMMA synthesises everything she monitors — email sentiment, cash flow, compliance flags, at-risk clients, regulatory changes, competitor moves — into a single weekly score and board-ready report.
Running a health check: POST /health/run-now. The most recent result is always at GET /health/latest.
EMMA scores five domains: Finance, Compliance, Operations, Clients, Knowledge — each out of 100. An overall score and executive summary are produced. Alerts and recommendations are listed below.
Configure weekly auto-run and the optional email digest with POST /health/config.
AI Business Simulation
Model the financial and operational impact of business decisions before you make them — using your actual Company Brain data.
Running a simulation: POST /simulation/run with a scenario title and description (e.g. "What if we lose our biggest client?") and a timeframe (3, 6, 12, 24, or 36 months).
EMMA models: revenue and cost change percentages, cash position impact, operational headcount effect, key risks with likelihood ratings, and opportunities. A confidence score (0–100) reflects how much relevant data EMMA found in your Brain.
Past scenarios are saved (GET /simulation/scenarios) and can be compared side-by-side with POST /simulation/compare.
Kiosk Mode
Lock the interface to a role-specific panel set. A nurse sees only clinical tools. A receptionist sees only PHONE and RECEPTIONIST. IT managers configure this per role without the user being aware of what's hidden.
Creating a role: POST /kiosk/roles with a role name, a description, and the list of panels that role may see — GET /kiosk/panels returns everything that can be allowed.
Assigning a role to a user: POST /kiosk/assign with the user, the role, and kiosk mode enabled. GET /kiosk/assignments lists who is locked to what.
Built-in roles (staff, manager, compliance, finance, admin) are available by default. Custom roles are additive.
EMMA as AI Director
Configure EMMA as a named AI director of your company. She attends every meeting via transcript, reviews every contract, monitors every regulatory deadline, and produces a monthly board pack automatically.
Setup: POST /director/config — director name (default: EMMA), title (e.g. AI Executive Director), company name, board email, the delivery day of the month, and monthly generation enabled.
Generating a board pack: POST /director/generate-now produces one immediately. EMMA synthesises:
- Executive Summary — state of the business in plain English
- P&L Commentary — financial narrative from accounting data
- Risk Register — risks with likelihood, impact, owner, mitigation, and status
- Action Tracker — open actions with owner, due date, and priority
- KPIs — key metrics from Brain and accounting data
- Forward Look — what to expect in the next 30–90 days
Board packs export as professionally formatted DOCX (GET /director/board-packs/{id}/export) and can be emailed to the board automatically. All packs are listed at GET /director/board-packs.
IR35 Determination Assistant
Ask EMMA — "run an IR35 assessment for this contract" — or call GET /ir35/questions then POST /ir35/assess. HARBOUR guides you through 15 HMRC-aligned questions across six assessment areas — Substitution, Control, Mutuality of Obligation, Financial Risk, Integration, and Business on Own Account. EMMA analyses the answers and returns a determination (Inside / Outside / Borderline) with a confidence rating, key factors found on both sides, and a recommended action plan. All assessments are saved with full reasoning so they can be reviewed, printed, or shared with an accountant or legal adviser.
MTD Income Tax Self-Assessment (MTD ITSA)
Ask EMMA — "calculate my ITSA for this quarter" — or call POST /mtd-itsa/calculate. Enter your self-employment income and expenses for the quarter. HARBOUR calculates your taxable profit and produces a full tax estimate based on 2025–26 rates: Income Tax (20% basic / 40% higher / 45% additional), Class 4 NI (9% / 2%), and Class 2 NI (£3.45/week). The result includes income tax due, NI due, total tax, effective rate, and estimated take-home pay. Submissions are saved to the quarterly log. Use GET /mtd-itsa/thresholds to retrieve the current tax year thresholds.
DSAR Processor
Ask EMMA — "log a subject access request from …" — or call POST /dsar. Log an incoming Data Subject Access Request with the subject's name and email and the date received. HARBOUR automatically calculates the 30-day statutory deadline, searches the Company Brain, knowledge base, and inbox for all data held on that individual, and generates a compliant response letter. Status tracks the request through: open → in_progress → complete / rejected / extended. All requests and response letters are stored and can be exported.
Contract Renewal Watchlist
POST /renewals/extract with the contract text, or POST /renewals to add one by hand. EMMA extracts: contract name, counterparty, start/end dates, renewal date, notice period, auto-renewal flag, and annual value. Contracts approaching their notice window are flagged: Critical (0–7 days), Warning (0–30 days). The upcoming renewals endpoint returns a sorted list so nothing slips through. Contracts can also be added manually if the document is not available in digital form.
HARBOUR Redact
POST /redact with any text (POST /redact/batch for up to 50 at once). HARBOUR removes personal data in two passes: a fast regex sweep catches NI numbers, NHS numbers, UK phone numbers, email addresses, UK postcodes, and sort codes; a second LLM pass identifies and replaces: [NAME], [EMAIL], [PHONE], [ADDRESS], [NHS_NUMBER], [NI_NUMBER], [BANK_DETAILS], [CARD_NUMBER], [DATE_OF_BIRTH], [ID_NUMBER], [IP_ADDRESS], [PII]. A findings summary lists every entity type found. Batch mode accepts up to 50 strings. All redactions are logged.
Ofsted Inspection Prep
GET /ofsted/questions then POST /ofsted/assess. HARBOUR prepares your school or setting for Ofsted inspection using the four domains of the Education Inspection Framework: Quality of Education, Behaviour and Attitudes, Personal Development, and Leadership and Management. Answer seven targeted questions per domain and EMMA returns a structured assessment with a readiness score out of 10, specific evidence gaps to address, and recommended actions for each area. Sessions are saved for comparison and review.
GP Referral Letter Generator
Ask EMMA — "draft a GP referral to cardiology, two week wait, …" — or call POST /gp-referral/draft. Select the specialty (27 supported, GET /gp-referral/specialties) and urgency level (Routine / Urgent / Two Week Wait / Emergency), enter the patient's age, sex, and clinical summary. HARBOUR generates a DSPT-compliant referral letter in standard NHS format. Patient names are never stored in the database in compliance with clinical data minimisation principles — only specialty, urgency, and aggregate demographics are retained for audit purposes.
Care Plan Generator
Ask EMMA — "draft a care plan for resident …" — or call POST /care-plan/generate. Give the resident or service user ID, select the care setting (care home, nursing home, domiciliary, supported living, day centre, hospital), and provide assessment notes. EMMA generates a person-centred care plan across all five CQC domains: Physical, Emotional, Social, Cognitive, and Spiritual. Plans are versioned — use the Review endpoint to produce an updated plan linked to the original, building a full care history. All plans are stored and retrievable by resident ID.
Charity Sector Pack
Four tools, each its own endpoint:
- Annual Return — generates a full Trustees' Annual Report narrative compliant with SORP FRS 102, structured across governance, objectives, achievements, financial review, and future plans.
- Gift Aid — calculates reclaimable Gift Aid at 25p per £1 for each eligible donation and produces an R68-style claim summary ready for HMRC submission.
- Impact Report — produces a donor-friendly public impact report from activities, outputs, outcomes, and beneficiary numbers.
- Board Pack — generates a full trustee meeting pack: agenda, action tracker, financial narrative, risk register with likelihood/impact ratings, and items for decision.
All documents are saved and can be downloaded.
HARBOUR Voice Assistant
POST /voice/transcribe (config at GET/POST /voice/config). HARBOUR Voice uses local Whisper for speech-to-text — no audio is sent externally. Upload a WAV, MP3, M4A, OGG, or WEBM recording (up to 25 MB) to get a transcript. Use POST /voice/respond to generate a concise TTS-ready reply from any transcribed text. Configure wake word (hey emma, ok emma, emma, or harbour), TTS voice, speed, and language in the Voice Config panel. All sessions are logged with transcript and response.
Install Whisper: pip install openai-whisper (or faster-whisper for faster, lower-memory transcription).
HARBOUR Translate
Ask EMMA — "translate this into Welsh: …" — or call POST /translate (/translate/document, /translate/batch). Translate text into any of 37 supported languages — including Welsh, Irish Gaelic, and Scottish Gaelic — using the local LLM. No data is sent to Google Translate, DeepL, or any external service.
| Mode | Limit | Use case |
|---|---|---|
| Single | 10,000 chars | Documents, emails, messages |
| Document | 100,000 chars | Long documents, reports — auto-chunked |
| Batch | 50 strings | UI strings, labels, form fields |
Choose formality level (Formal / Standard / Informal) and whether to preserve formatting. Translation history is saved.
EMMA Code Reviewer
Ask EMMA — "review this code" — or call POST /code-review. Paste code and select the language (23 supported including Python, TypeScript, Go, Rust, SQL, Dockerfile). EMMA performs a full structured review across seven categories: Security, Bugs, Performance, Code Quality, Style, Documentation, and Tests. Each issue is rated CRITICAL / HIGH / MEDIUM / LOW / INFO with line numbers and specific fix recommendations. The review includes an overall score out of 10, a three-sentence summary, and a prioritised top-3 fix list. Use the Standards Review mode to check code against your own coding standards document. All reviews are saved.
HARBOUR Forms
POST /forms builds a no-code form with 12 field types: text, textarea, email, phone, number, date, select, multi-select, checkbox, radio, file upload, and rating. Each form gets a public submit URL and an embeddable HTML/JS widget — paste the embed code into any website. When a submission arrives, EMMA automatically processes it according to your processing instructions (classify, extract, flag, recommend). Webhooks fire on every submission with HMAC-SHA256 signing (X-HARBOUR-Signature header). Submission history is viewable per form.
FCA Consumer Duty Suite
Generate Consumer Duty documents from the /fca/* endpoints: suitability letters, outcome area assessments (Products & Services, Price & Value, Consumer Understanding, Consumer Support), PROD sourcebook assessments, vulnerability assessments using 11 FCA-recognised indicators, and MiFID II portfolio change reports. All documents saved to history with model and timestamp.
Document Comparison & Redlining
Ask EMMA — "compare these two contracts" / "review this document for risk" — or call POST /doc-compare/compare and POST /doc-compare/review. Two modes: Compare (paste two versions of a document and get a structured redline analysis identifying what changed and why it matters — for 15 doc types including NDAs, employment contracts, leases, service agreements, DPAs) and Review (paste a single document for risk analysis and flagging). Change severity: CRITICAL / HIGH / MEDIUM. Max input: 40,000 chars per document.
Employment Law Suite
The /employment/* endpoints. Tools: redundancy pay calculator (ERA 1996 s.162, 2025-26 £700 weekly cap, age-banded multipliers, first £30,000 tax-free note), TUPE notification letters (Reg 11/13, both employer and employee versions), disciplinary invite/outcome letters, investigation report, grievance acknowledgement, settlement agreement review, PIP, and redundancy letter. All generated to ACAS Code of Practice 2015 standard.
Companies House Integration
Ask EMMA — "look up Acme Ltd on Companies House" — or call the endpoints directly. Search and analyse any UK company. Set your Companies House API key once with POST /companies-house/config. Endpoints: company search (by name/number), full company profile with LLM analysis, directors, PSCs (persons with significant control), filing history, charges register, and Import to Brain — adds the company and its active directors as Company Brain entities for relationship mapping. All lookups saved to history.
AI Daily Briefing
☰ WORKSPACE → Research → Daily Briefing shows today's briefing, and writes one if there isn't one yet. It covers your calendar, the emails that need attention and one focus for the day; with no calendar or mailbox connected it says so, and it never makes appointments up. Switch it on to arrive each morning in the EMMA panel (see Morning Briefing).
A fuller briefing that draws on DSARs, contract renewals, invoices, client sentiment and the Company Brain, and emails the result, is available to integrators through the /briefing/config and /briefing/generate API; it has no screen of its own yet.
Planning & Architecture Pack
The /planning/* endpoints. Generate planning documents: Design and Access Statement (DMPO 2015, NPPF 2023), Supporting Statement, Heritage Impact Assessment (Historic England GPA Note 2, NPPF paras 205-213), Sequential Test (NPPF Ch.7 — both need assessment and impact assessment), and Agricultural Prior Approval notification (GPDO 2015 Part 6). All documents saved with site address and LPA for reference.
Legal Aid Billing Assistant
Ask EMMA — "write the billing narrative for this matter" — or call the /legal-aid/* endpoints. Tools: Billing Narrative generator (from case notes, for civil and criminal LAA matters — 11 civil types, 5 criminal types, 6 fee schemes), Time Recording Audit (flag problematic entries before submitting, get corrected versions), and Exceptional Case / Escape Fee assessment (eligibility check + covering letter draft — escape fee = claimed > fixed fee threshold × 3, ECF under s.10 LASPO 2012).
ISO 27001 Documentation Generator
Ask EMMA — "draft our information security policy" / "run an ISO 27001 risk assessment" — or call the /iso27001/* endpoints. Generate ISO/IEC 27001:2022 documentation: ISMS Scope (Clause 4.3), Information Security Policy (Clause 5.2), Risk Assessment with 15+ risks in register format, Statement of Applicability covering all 93 Annex A controls across 4 themes, Incident Response Procedure (with ICO 72-hour GDPR notification threshold), and Business Continuity Plan (Clauses 5.29/5.30). All documents versioned and saved.
Modern Slavery Act Statement Generator
Ask EMMA — "draft our modern slavery statement" — or call the /modern-slavery/* endpoints. Generate Section 54 MSA 2015 Transparency Statements — HARBOUR flags if your organisation is legally required (turnover ≥ £36M) but generates regardless (you may be preparing in advance). Three tools: full Section 54 statement (6 required disclosure areas), Supply Chain Risk Map (tier 1–2+ assessment, risk framework, top-5 priority actions, 10-question supplier questionnaire template), and Supplier Audit Framework (desk-based review, questionnaire scoring, on-site criteria, remediation vs disengagement decision matrix).
SEND Assessment Support
The /send/* endpoints. Four tools for SENCO and education professionals: EHCP Draft (full Sections A-K structure, Children and Families Act 2014, SEND Code of Practice 2015), SEN Support Plan (Assess/Plan/Do/Review graduated approach, SMART outcomes, intervention log, review framework), Annual Review Report (CFA 2014 compliance, transition considerations at key year groups), and Transition Review Plan (SEND CoP Chapters 8 and 9 — preparing for adulthood, pathway planning, agency handover). Primary need validated against 4 SEND CoP categories.
Charts & Data Visualisation
Five live chart datasets, served from your own HARBOUR AI data (GET /charts/available lists them): Session Activity (bar chart, 30-day session history), Feature Usage (bar chart, ranked by record count across all subsystems), Invoice Summary (doughnut by count + bar by value), Client Sentiment Trends (line chart, 30-day daily average), and Cashflow Forecast (90-day projected balance, inflows, outflows). All charts are user-scoped — only your data appears.
In the main chat interface, if EMMA or a data export returns JSON in chart format ({"type":"chart","chartType":"bar","labels":[...],"datasets":[...]}), the Electron app automatically renders it as an interactive Chart.js canvas instead of a code block.
HARBOUR Connect — LAN Discovery
POST /harbour-connect/config. Enable HARBOUR Connect to advertise this instance on your local network using mDNS/Bonjour (_harbour-ai._tcp.local.). Other devices on the same network can discover it automatically — no IP address required. Set a friendly instance name, port, and whether to announce version metadata. Use Discover Peers to scan the LAN and list all HARBOUR AI instances found (returns IP, port, version, hostname). Discovered peers are logged to history.
HARBOUR Cloud — Server Deployment
HARBOUR AI includes a production-ready Docker configuration for self-hosted server deployment: all backend routers, the compiled frontend, health checks (auto-restart on failure), an nginx reverse proxy with TLS, and a persistent /data volume for the database, uploaded files, RAG index, and Whisper models. Ollama runs as a sidecar service.
Server deployment is provided to licence holders. Email Gregorymoores@proton.me for the deployment bundle (docker-compose.yml, docker-compose.prod.yml, nginx/harbour.conf, DOCKER.md, and a licence-keyed .env template) plus setup guidance.
Self-Test — Prove It Works on This Machine
⚙ SYSTEM → Diagnostics → Self-test. It runs as soon as you open it.
Every check exercises the feature end to end and asserts on the result — it indexes a real document and then retrieves a sentinel only that document contains, asks the model a real question and reads the reply, encrypts a secret and decrypts it back. A check that cannot fail when the feature is broken is not a check, so none of these are pings.
| Group | What is proved |
|---|---|
| Inference | The local AI engine is reachable · the full context window is actually being used · the model answers · oversized prompts are trimmed rather than silently cut |
| Documents & Knowledge | A document can be indexed and found again · every part of a document is searchable · scanned PDFs can be read |
| Security & Privacy | Nothing has left this machine · secrets encrypt and decrypt · personal data is detected and redacted |
| Voice | Spoken replies · speech recognition |
| Automation | Scheduled tasks run · Cloud Drive Sync can reach the knowledge base |
| System | Your data is being saved · disk space |
Each row is ✓ pass, ! note, ✕ fail or – skipped (skip means your licence tier doesn't cover it, or an optional dependency is absent by design). Failures come with a suggested fix, and every row has its own re-run link so you can retest one thing after fixing it.
⬇ SUPPORT BUNDLE collects the logs, versions, this grid, and any failed requests the browser saw into a single JSON file, with email addresses, tokens and file paths stripped. It is saved to your machine — nothing is uploaded. Read it before you send it to us.
The whole thing runs locally and makes no network call. That is deliberate: it is the privacy-preserving alternative to telemetry — you run it, you read the result.
The Health Strip and the Problems Tray
Two things watch the app while you use it.
Health strip — a bar across the top of the window, only ever visible when something needs attention. Amber (⚡ HEADS UP) for a note, red (⚠ SYSTEM CHECK) for a real problem, each item with the fix beside it. Dismiss it with ✕; it re-checks every 30 seconds.
Problems tray — a red ⚠ n problems pill in the bottom-left corner, and only when there are any. Every backend request that fails is recorded there with the time, the endpoint, the status and the detail. It is populated by an interceptor around every request, so a failure cannot be hidden by a swallowed error somewhere in the code. COPY puts the list on your clipboard for a support email; CLEAR empties it.
If a button ever appears to do nothing, open the tray — the reason is in there.
The Egress Meter — "0 bytes sent externally"
Bottom-left of the cockpit is a live counter of everything this session has sent to any host that is not local. When it reads 🔒 0 B sent externally, that is measured, not asserted.
Click it for the detail: total bytes, a per-host breakdown, and a kill-switch — "refuse all external requests" — that makes HARBOUR reject any outbound call to a non-local host outright. Your local model, RAG and anything on your own LAN never count towards the meter.
This is the number that matters when someone asks you to prove the privacy claim, and it is the reason three call-homes buried inside bundled libraries were found and closed in v1.3.5–v1.3.7 (a RAG embedder contacting huggingface.co on every start, telemetry inside the vector database, and the speech model phoning home on every spoken word). Code review had not found any of them. The meter did.
For a signed version of the same claim, see Data Residency Attestation below.
Data Residency Attestation
⚙ SYSTEM → Governance → Data residency attestation downloads a signed JSON document recording what this install has sent externally, signed with your install's own Trust Root key.
Hand it to a client, an auditor or a DPO: it is verifiable without HARBOUR (same verification path as the signed receipts — see Trust Center), and it says something a policy document cannot: not "we promise nothing leaves", but "here is the measured egress, signed".
Everyday Tools
☰ WORKSPACE → Create → Everyday Tools. Eight small tools that would otherwise be a prompt you keep rewriting. Fill the form, click ⚡ GENERATE, then 📋 COPY or ⬇ EXPORT. The Slide Generator shows its outline (a heading, bullets and speaker notes for each slide) and a ⬇ POWERPOINT button that downloads it as a .pptx deck, with the speaker notes in each slide's notes pane.
| Tool | Input |
|---|---|
| 📊 Slide Generator | A brief, an audience, a target slide count |
| 📈 Spreadsheet AI | What you need in plain English, the dialect (Excel / Sheets), and your columns or existing formula |
| 🔗 Data Lineage | A pipeline or system description, plus the impact you care about |
| 🏢 Vendor Risk | Vendor, the service and data involved, anything you already know |
| 📋 Board Pack / KPI | The period, your metrics, and narrative notes |
| 🏷 Auto-Classify | Text plus your own categories (e.g. invoice, contract, complaint, other) |
| ✍️ Handwriting OCR | An image of handwriting |
| 📷 Whiteboard → Notes | A photo of a whiteboard |
The last two take an image and run through the vision model. All eight are also available to EMMA as platform tools — you can just ask.
Invoice Processing
☰ WORKSPACE → Business → Invoices. Upload a supplier invoice (PDF, image, or DOCX) and EMMA extracts it into fields: supplier, invoice number, invoice and due dates, total, VAT, payment reference, and the line items.
Open any invoice to review what was extracted and set its status: unpaid, paid, disputed or cancelled (the invoice chaser marks unpaid invoices overdue once their due date passes). Statuses feed the invoice chaser and the cashflow forecast.
AI Phone Receptionist
☰ WORKSPACE → Business → Phone Receptionist. EMMA answers your business phone line through Twilio, takes the call, and leaves you a transcript and a summary.
Setup:
- Fill in business name, receptionist name, your Twilio phone number, and the context EMMA should work to (e.g. "Available Mon–Fri 9am–5pm. Take messages for the sales team.")
- 💾 SAVE CONFIGURATION
- In Twilio, point that number's voice webhook at the URL shown in the panel:
https://your-harbour-instance/phone/incoming
Recent calls are listed with number, status and time. Click one for the duration, EMMA's summary, and the full transcript.
Meeting Capture
☰ WORKSPACE → Meetings → Meeting Capture. This records the meeting, not just your microphone — pick a system loopback device and it captures both sides of a video call.
- ↻ LOAD DEVICES — audio inputs are listed with channels and sample rate; loopback devices are tagged LOOPBACK and are the ones you want
- Click a device to start; the panel shows ● RECORDING IN PROGRESS
- ⏹ STOP CAPTURE ends it
Audio is transcribed locally by faster-whisper as it arrives. Each session stores the transcript, an utterance count, and auto-generated minutes: title, key points, decisions, and action items with owners. Stopping a capture also feeds Meeting Actions (see Post-Meeting Auto-Actions).
Distinct from Meeting Assistant (record-then-summarise from the mic) and Live Meeting (real-time streaming minutes).
Cloud Drive Sync
⚙ SYSTEM → Connections → Cloud Drive Sync. Connect OneDrive, SharePoint or Google Drive and have documents pulled into the Company Knowledge Base so agents can cite them.
Each provider tile shows connected / not connected. Once connected, a sync run indexes new and changed files into the KB, and the sync log records what was pulled and when.
⚠️ Historical note worth knowing if you used an older build: until v1.3.5 this feature reported success while indexing nothing — the code path it called did not exist and the failure was swallowed. It works now, and the self-test has a dedicated check that proves the wiring end to end rather than trusting the 200 response.
Model Fine-Tuning
⚙ SYSTEM → Models → Fine-Tuning. Build a customised model from any installed Ollama model — no GPU, no training run. It writes an Ollama Modelfile.
Set the base model (e.g. llama3.1:latest), an output name (e.g. harbour-custom:latest), the system prompt that defines the behaviour, a temperature and a context window, then ⚡ CREATE CUSTOM MODEL. The new model appears in your model lists like any other, and can be assigned per agent.
Jobs are listed with their status; a completed job can be deleted, which removes the model.
Intelligence Boost
⚙ SYSTEM → Models → Boost / Self-Improve. Three tools for getting better answers out of the same model.
SELF-REFLECT — draft → self-critique → improved answer (Reflexion). Give it a task; leave the draft blank and it writes one first, then critiques and rewrites it.
EVAL HARNESS — store a prompt with a rubric of the qualities you expect, then run it: a second pass judges the output against the rubric and records the score. Use it to check whether a model change or a system-prompt edit actually helped, rather than guessing.
SEMANTIC CACHE — repeated and near-identical prompts return a stored answer instantly. The tab shows entries, total hits and estimated hit rate, and lets you clear the cache.
Self-Evolving (Experimental)
⚙ SYSTEM → Models → Self-Evolve. HARBOUR watches how you work and proposes new agents and workflows for the tasks you keep repeating.
Turn it on (it reads your chat history to find repeated tasks — off by default), then 🔍 SCAN FOR REPEATED TASKS. Each suggestion shows what it spotted, how many times it saw it, and what kind of thing it would create.
⚙ GENERATE & TEST builds the candidate and evaluates it, showing a score. ✓ ADOPT creates it for real. DISMISS drops it.
It never changes itself. Nothing is created without you approving it.
Agent SDK & Community Marketplace
☰ WORKSPACE → Agents & Automation → Agent SDK. Three tabs:
- MARKETPLACE — community-submitted agents, each with an author, category and description. ⬇ INSTALL adds one to your agent list.
- SUBMIT AGENT — publish one of your own: name, URL slug, description, author, category. Submissions are reviewed before publishing.
- MY SUBMISSIONS — the status of everything you have submitted.
Distinct from the built-in Marketplace panel, which installs the agents that ship with HARBOUR.
Whistleblowing
⚙ SYSTEM → Governance → Whistleblowing. A confidential disclosure channel inside your own install — nothing is sent anywhere.
RAISE A CONCERN — subject, the disclosure itself, and a tick-box to submit anonymously (your identity is withheld from the case record). On submit you get a case reference, EMMA's triage (category and severity), and an access code. Save the access code: it is how an anonymous reporter tracks their own case.
CASE HANDLING — for administrators only (the tab is hidden from everyone else, and the server refuses them). Before v1.3.27 any signed-in user could open it. For whoever manages disclosures: every report with its reference, category, severity and subject, and a status you move through under review → investigating → resolved / dismissed.
Data Retention Policies
⚙ SYSTEM → Governance → Data Retention (admin). Set how long each data type is kept; a cleanup job runs automatically at 02:00 daily.
Each policy shows the data type, the table behind it, a retention period in days (1–3650), and an ON/OFF toggle. Change the number and it saves when you click away. ▶ RUN CLEANUP NOW runs the sweep immediately, and the cleanup log below records what was deleted and when.
This is the practical end of GDPR data minimisation: set it once, and old data stops accumulating on its own.
Privacy & GDPR
All data stored locally in ~/.harbour-ai/ (Linux) or C:\Users\<name>\.harbour-ai\ (Windows). No telemetry, no cloud. Passwords hashed PBKDF2-SHA256 (260k iterations). JWT sessions, 7-day expiry. Delete everything: remove the ~/.harbour-ai/ folder.
Don't take that on trust — measure it. The egress meter in the bottom-left corner counts every byte sent to any non-local host in this session, the kill-switch inside it refuses outbound requests entirely, and Data residency attestation gives you a signed record of the same thing. The self-test's "Nothing has left this machine" check asserts on the meter.
The things that do legitimately reach the internet, and only when you turn them on: web search, cloud AI providers (Claude / OpenAI / DALL·E), Companies House lookups, HMRC MTD, Twilio, WhatsApp, Slack/Teams, cloud drive sync, and update checks. Everything else — the model, RAG, embeddings, speech-to-text, speech, OCR, vision — runs on your machine.
Full statement: harbour-ai.co.uk/gdpr
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
| Enter | Send message |
| Shift+Enter | New line |
| Ctrl+K | Command palette — search every panel, tool and action |
| Ctrl+/ | Focus the message input |
| Ctrl+1–4 | Toggle BELLA / SAPPHIRE / JADE / ELLIE |
| Ctrl+E | Toggle EMMA |
| Ctrl+D | Toggle debate mode |
| Ctrl+Shift+H | EMMA Quick Ask overlay |
| ↑ ↓ ↵ esc | Navigate / open / close inside the command palette |
⚠️ If you are on v1.3.8 or earlier: when the keyboard focus was not in the message box, Ctrl+K cleared the current session's chat history as well as opening the palette. Fixed in v1.3.9 — update, or until you do, open the palette with the cursor in the message box. Clearing a chat is the 🗑️ button beside the message box, and always was.
Troubleshooting
Start here: ⚙ SYSTEM → Diagnostics → Self-test. It tells you which feature is broken and usually how to fix it, and the ⬇ SUPPORT BUNDLE button packages everything we would ask you for.
| Problem | Fix |
|---|---|
| Something "does nothing" | Open the ⚠ problems tray, bottom-left — the failed request and its reason are in there |
| Windows Firewall prompt | Click Allow |
| Agents not responding | ollama serve |
| Model missing | ollama pull llama3.1 |
| AppImage won't launch | sudo apt install libfuse2 |
| Blank white window on a VM, VDI or RDP session | No GPU available — start it with --disable-gpu |
| Slow responses | Close other apps, add a GPU |
| Backend log (Linux) | ~/.harbour-ai/backend-startup.log |
| Log location (Windows) | C:\Users\<name>\.harbour-ai\harbour-ai.log |
| Extension not connecting | Ensure HARBOUR AI is running on localhost:8000 |
| Ctrl+K wiped my chat | v1.3.8 and earlier — fixed in v1.3.9, see Keyboard Shortcuts |
| Shift+Enter does nothing | v1.3.10 and earlier — the message box is multi-line from v1.3.11 |
| Chat jumps back to the bottom while I'm scrolling up | v1.3.21 and earlier — fixed in v1.3.22, which leaves you where you scrolled and shows a ↓ Latest button |
| SAML sign-in refused after updating | From v1.3.23 an identity-provider certificate is required. Paste it into ⚙ ADMIN → SSO; the error message names anything else that failed (expired, wrong audience, already used) |
| "Tesseract is not installed" on Windows, but you installed it | v1.3.23 and earlier only look on your PATH, and the Windows installer doesn't add itself there. Add C:\Program Files\Tesseract-OCR to PATH and restart HARBOUR, or update: from v1.3.24 it is found automatically |
| Agent says it isn't connected to the internet, with WEB on | v1.3.21 and earlier misreported a failed search as "offline", and EMMA's WEB_SEARCH switch did nothing. From v1.3.22 the reply says which engine refused. Try again later, or have an admin add a Brave Search key (Admin → WEB-SEARCH) |
Trust Center & Signed Receipts
⚙ SYSTEM → Governance → Trust Layer. Every install has its own cryptographic identity (an Ed25519 "Trust Root" key generated on first run), and every AI generation automatically gets a signed receipt — proof of which install produced which output, with which model, at what time. Receipts contain SHA-256 hashes only; your prompts and outputs never enter a receipt.
- RECEIPTS tab — browse receipts; click one to verify its signature on the spot (✓ valid / ✗ altered) and export it as JSON. COPY PUBLIC KEY shares your install's public key so anyone can verify your receipts.
- LEDGER tab (admin) — verify the tamper-evident audit ledger, sign a checkpoint, download a signed export.
- Independent verification — a recipient does NOT need HARBOUR: paste a receipt at harbour-ai.co.uk/verify (runs entirely in their browser, nothing uploaded) or run
scripts/harbour_verify.pyoffline (needs only Python + thecryptographypackage).
A valid receipt proves provenance and integrity — that this exact output came from this install with this model at this time, unaltered. It does not certify the output is factually correct.
MSP Console — Fleet, RBAC & Billing
⚙ SYSTEM → Account → MSP Tenants (admin) is a full MSP console with four tabs:
- TENANTS — create/manage tenants as before, plus per-tenant CONFIG & GUARDRAILS in the tenant detail view: allowed models, blocked agents, and a monthly token budget. Blocked agents and model allowlists are enforced at chat time.
- FLEET — every device that checks in is listed with platform, version, online status, and last-seen time. Issue 🔒 LOCK / 🔓 UNLOCK / 💥 WIPE commands — each command is cryptographically signed by this console's Trust Root, and the device verifies the signature before executing, so a compromised network can never inject a wipe. All commands and acknowledgements are written to the audit ledger.
- RBAC — a per-agent / per-tool / per-module permission matrix. Default is ALLOW (rules are exceptions). Precedence: user deny > user allow > role deny > role allow. Example: deny role
useraccess to agentJADE, or deny moduleoperatorwith resource*. - BILLING — per-tenant rollup for the last 30 days: users, active users, messages, tokens, and estimated cost. The numbers MSPs need to invoice clients.
Certification Evidence Packs
Click ⚙ SYSTEM → Vendor Certs. Generates audit-ready evidence for the certifications buyers and procurement demand:
- Cyber Essentials / CE+ — pick one of the five NCSC control areas (firewalls, secure configuration, security updates, user access control, malware protection), describe your current practice, and HARBOUR drafts the evidence section: requirement, how you meet it, the artefacts an assessor will request, gaps with remediation, and the self-assessment answers. Toggle CE PLUS for the technical audit level.
- SOC 2 — pick a Trust Services Criteria (security, availability, confidentiality, processing integrity, privacy), describe your service and practice, and get control narratives, an evidence register with owners, and gap analysis.
- ⬇ DOWNLOAD SIGNED BUNDLE — compiles all generated sections for a certification into one Trust-Root-signed bundle a recipient can verify.
Generated sections always mark unknowns as [TO CONFIRM] — review before submission.
Workflow Recorder
☰ WORKSPACE → Agents & Automation → Workflow Recorder, name the workflow, hit ⏺ START — the menu entry shows a green dot while recording. Now just do the task normally: every prompt you send to any agent is captured as a candidate step. Hit ⏹ STOP, then ⚙ CONVERT — the local model generalises your prompts into a reusable workflow (run-specific details become {{input}}, chained steps use {{previous_output}}) saved straight into the ☰ WORKSPACE → Workflow Builder workflow engine, where it can be run, scheduled, or triggered like any other workflow.
Conveyancing Pack
☰ WORKSPACE → Sector Packs → CONVEYANCING. Four tools for residential conveyancers: Title Review (paste official copy entries → covenants, easements, charges, requisitions, entry-by-entry), Searches Summary (LLC1/CON29/drainage results → plain-English client report with red flags), Pre-Contract Enquiries (drafted from your title/search findings — no generic padding), Completion Checklist (exchange→completion with statutory deadlines: SDLT 14 days, AP1 within OS1 priority).
Insurance Pack
☰ WORKSPACE → Sector Packs → INSURANCE. For brokers and intermediaries: Policy Comparison (two wordings → cover differences, exclusions, onerous conditions, verdict with clause references), Demands & Needs (ICOBS 5.2-compliant statements with a Consumer Duty fair-value note), Renewal Review (renewal vs expiring terms — silent cover reductions flagged, re-marketing advice), Claim Letters (notifications and disputes, citing the policy wording and ICOBS 8.1).
Recruitment Pack
☰ WORKSPACE → Sector Packs → RECRUITMENT. Agency-side tools (the employer-side EMMA Hiring Assistant is separate): Sourcing Pack (boolean search strings for LinkedIn/job boards/X-ray, alternative titles, outreach openers), Candidate Submission (client-ready write-ups, evidenced against requirements, honest about gaps), Right-to-Work Check (which check applies, documents, statutory excuse recording, follow-up dates — gov.uk flagged as the live source), Terms / Fee Letter (terms of business with Conduct Regulations 2003 compliance statements, or placement fee letters).
Property & Lettings Pack
☰ WORKSPACE → Sector Packs → PROPERTY / LETTINGS. For landlords and letting agents: Tenancy Agreement Review (unfair terms, Tenant Fees Act breaches, deposit cap, s.11 repairs, Renters' Rights Act readiness), Landlord Compliance Audit (gas, EICR, EPC, alarms, deposit, How to Rent, licensing, legionella — with deadlines and penalties), Rent Review (lawful mechanism, tribunal-defensible assessment, tenant letter), Formal Notices (correct notice + grounds under current law, validity-prerequisite checklist, service instructions). Notice drafting flags transition-period law as [CHECK CURRENT LAW] — always review before service.
Local E-Signature & Content Credentials
⚙ SYSTEM → Trust Layer → E-SIGN. Sign a document, a block of text, or issue a provenance credential — all with your install's Trust Root, all verifiable by anyone without HARBOUR.
- Sign text / Sign a file — produces a signed manifest proving who signed what (by hash) and when. Download the manifest and send it alongside the document; the recipient verifies it at harbour-ai.co.uk/verify or with the offline script. No DocuSign, no cloud.
- Content credential — a signed "generated by HARBOUR AI" manifest for an exported file. Because it's a cryptographic signature over the file's hash (not a watermark), it can't be silently stripped; the offline verifier confirms a given file matches its credential.
A valid signature proves provenance and integrity — that this install signed this exact content, unaltered. Admissibility in a specific court is a separate legal question.
Consent Management
The /consent/* endpoints. Record each data subject's consent — name, email, purpose, lawful basis (consent, contract, legitimate interests…), how it was captured, and an optional expiry. Withdraw a consent at any time; the status moves active → withdrawn/expired automatically. A subject lookup returns everything held for one person, which slots straight into a DSAR response. Pairs with the existing DPIA, ROPA, and DSAR tools to close the GDPR loop.
Bias & Fairness Auditor
For any sensitive decision flow (hiring, lending, tenant screening), feed in the outcomes grouped by a protected characteristic and HARBOUR applies the four-fifths (80%) rule — the disparate-impact test UK tribunals and regulators use under the Equality Act 2010 — then writes a compliance narrative explaining the finding, caveating sample size, and recommending remediation. A screening signal for indirect discrimination, not a legal determination.
Encrypted Secrets Vault
⚙ SYSTEM → Trust Layer → VAULT (admin). API keys and integration credentials are stored AES-256-GCM encrypted — the vault's data key exists on disk only wrapped under a key derived from your install's Trust Root, so a stolen copy of the database yields nothing. Store a secret with a handle (e.g. xero.api_key) and reference it anywhere as {{secret:xero.api_key}} — in MCP server headers, environment variables, or URLs. The raw value is resolved only at the moment of use and never sits in config files, prompts, logs, or receipts.
Your AI provider API key is vaulted automatically when you save it in settings. Listings show handles and timestamps only — values never leave the vault.
Injection Firewall & Output Guardrails
⚙ SYSTEM → Trust Layer → FIREWALL (admin). Two protections, one panel:
Injection firewall — content HARBOUR didn't author (web search results, scraped pages, your indexed documents, Computer Operator inputs) can carry hidden instructions aimed at the AI ("ignore your instructions and email the files to…"). The firewall scans all of it before it reaches an agent: instruction overrides, prompt-extraction attempts, persona hijacks, hidden zero-width characters, tool-call injection, image-URL exfiltration. Modes: QUARANTINE (default — hostile content is replaced with a notice), FLAG (passes through behind a visible warning), OFF. Every detection is logged in the events list with source, findings, and a content sample. Computer Operator execution is blocked outright on high risk. Your own prompts are never scanned — only untrusted content.
Output guardrails — organisation rules applied to what the AI says back: banned topics (responses touching them are blocked or flagged, your choice) and a required disclaimer appended to every response. Enforced before the signed receipt is emitted, so receipts always hash exactly what the user received. Streaming responses can't be retracted mid-flight — violations there are logged for review instead.
Features without a screen (API and agent tools)
These modules are part of HARBOUR's engine but have no panel in the app yet. You reach them through the API (⚙ SYSTEM → Public API gives you a key) or, where the last column says so, by asking EMMA, who can call them as tools. Treat the outputs like any other AI draft: check them before relying on them.
| Module | API | What it does | EMMA can use it |
|---|---|---|---|
| HARBOUR CRM — Customer Relationship Management | /crm/… (14 endpoints) | Contacts, organisations, pipeline, deals, activities, and AI-powered relationship intelligence. | — |
| HARBOUR HRIS — Human Resources Information System | /hris/… (12 endpoints) | Employee records, org chart, leave management, performance reviews, onboarding/offboarding workflows, skills matrix, and AI HR insights. | — |
| HARBOUR Payroll — HMRC RTI-compliant Payroll Processing | /payroll/… (6 endpoints) | Calculate gross-to-net pay, NICs, income tax (PAYE), pension contributions, student loan deductions, and generate payslips. RTI FPS/EPS submission prep. | — |
| HARBOUR Projects — Project Management | /pm/projects/… (12 endpoints) | Projects, tasks, time logging and a risk register, with a dashboard across all your projects (overdue tasks, high risks, budget against spend). EMMA's model scores a project's health 0–100 with a Red/Amber/Green rating, and drafts a status report from its tasks and risks. Milestones can't be added yet. | — |
| HARBOUR LMS — Learning Management System | /lms/… (13 endpoints) | Courses, modules, lessons, quizzes, completion tracking, certificates, and AI-generated course content. | — |
| Open Banking — OBIE / UK Open Banking Standard | /open-banking/… (17 endpoints) | Import bank transactions; HARBOUR categorises them, forecasts cash flow and checks covenants. Live connections to banks are not available: they need FCA authorisation as an account information service provider, which HARBOUR does not hold. | — |
| NHS API Integration — FHIR R4 / NHS Digital APIs | /nhs/… (17 endpoints) | Keep patient, referral, prescription and observation records locally in FHIR R4 shape, with NHS number validation and an AI summary. It does not connect to NHS systems: PDS, EPS, e-Referral and GP Connect need NHS England onboarding, which is not in place. | — |
| GDPR Article 30 Records of Processing Activities (RoPA) | /ropa/… (9 endpoints) | Complete register of data processing activities, controllers, processors, data subjects, retention periods, lawful basis, and transfer safeguards. | — |
| GDPR Breach Response Automation | /breach/… (9 endpoints) | 72-hour ICO notification workflow, severity assessment, affected subject count, DPA notification drafting, internal incident log, post-breach remediation plan. | yes |
| Penetration Test Report Analyser & Vulnerability Tracker | /pentest/… (8 endpoints) | Upload raw pen test reports (text). EMMA extracts findings, maps to CVSS, triages by severity, assigns owners, tracks remediation status, and generates… | yes |
| Clinical Decision Support | /clinical/… (8 endpoints) | NICE Guidelines-aligned clinical decision tools for UK healthcare. | — |
| Natural Language Analytics / Business Intelligence | /analytics/… (7 endpoints) | Ask EMMA questions in plain English against your uploaded data (CSV, JSON). EMMA writes and executes the analysis, returns charts and insights. | — |
| Advanced RAG Connectors | /rag/… (10 endpoints) | Connect to SharePoint, Google Drive, Confluence, Notion, Dropbox, and OneDrive. Index documents into Company Brain, schedule re-indexing, track source provenance. | — |
| Regulatory Change Monitor | /regwatch/… (6 endpoints) | Watches UK regulators' publications and summarises changes. Goes online to fetch them. | yes |
| AI Video Interview Platform | /ai-interview/… (18 endpoints) | Async video-based interview workflows: create interview templates, generate role-specific questions, manage candidate submissions, AI-evaluate responses, produce scoring rubrics… | — |
| HARBOUR Audit — Accounts Production & Financial Reporting | /audit/… (9 endpoints) | FRS 102 / FRS 105 compliant accounts production, trial balance import, statutory accounts drafting, audit trail generation, Companies House iXBRL tagging… | — |
| M&A Due Diligence Pack | /ma/… (8 endpoints) | Structured due diligence checklists, document request lists, risk scoring, red flag detection, and full due diligence report generation for acquisitions… | — |
| AI Business Valuation Engine | /valuation/… (5 endpoints) | Multi-method UK business valuation: DCF, EBITDA multiples, asset-based, comparable transactions, revenue multiples. | yes |
| HARBOUR Intelligence — Competitive Market Intelligence | /intelligence/… (11 endpoints) | Tracks competitors and market signals. Goes online to fetch the pages it watches. | — |
Modules that connect to an outside service (Open Banking, NHS Digital, a cloud drive) need your own registration and credentials with that service, and send data to it when you use them; that traffic shows on the egress badge. Anything that drafts for a regulator, a client or a patient produces a draft only: HARBOUR never submits to HMRC, a bank or the NHS on its own.
Harbour Collective (Preview)
⚙ SYSTEM → Trust Layer → COLLECTIVE. Groundwork for opt-in federated improvement: if it activates in a future release, participating installs would contribute only differentially-private model weight deltas — never chats, documents, ratings, or identities — and a shared improved model comes back. It is not live: nothing whatsoever is transmitted today regardless of the toggle, which exists so you can register intent early. Consent is off by default and revocable.
Backups and Restore
⚙ SYSTEM → Diagnostics → Backups & restore (administrators), or the 💾 BACKUPS button.
What a backup holds. Everything needed to rebuild HARBOUR: accounts, conversations, memories, agents and settings, your documents and the Knowledge Base, the search index, the licence, and the keys that unlock saved logins and API keys. Not included: logs, the app's own cache, and older backups. Downloaded voice and search models are left out unless you tick Include downloaded voice and search models. The AI language models belong to Ollama and are never included.
When. Every night at 03:30. If the computer was off then, HARBOUR takes one about ten minutes after it next starts. BACK UP NOW takes one immediately. The newest ten are kept (change it under Options). Backups are saved in backups inside your data folder, ~/.harbour-ai/backups on Linux and macOS or %USERPROFILE%\.harbour-ai\backups on Windows.
Encryption. Set a passphrase (at least 10 characters) and every backup is encrypted with it, so a backup on a lost USB drive can't be read. Write the passphrase down and keep it away from the computer. Without it an encrypted backup cannot be restored, by anyone. Changing the passphrase affects new backups; older ones still need the one they were made with. Encrypted backups end in .hbk, unencrypted ones in .zip.
A second copy. Enter a folder on a USB drive, a second disk or a network share, and every backup is also copied there and read back to make sure the copy is good. If the drive isn't plugged in, the backup still happens on this computer and the panel says the copy FAILED and why. For a copy away from the building, use two drives and swap them.
Restoring on this computer. Pick a backup in the list and press Restore. For an encrypted backup, enter its passphrase first. To restore a file from elsewhere, use Restore from a file. HARBOUR checks the whole backup first, every file against its checksum and the database against SQLite's integrity check, and refuses a wrong passphrase, a damaged file or one that didn't finish copying, without changing anything. Then restart HARBOUR to finish (the panel has a RESTART NOW button in the desktop app). Whatever the restore replaced is moved to a pre-restore-<date> folder in your data folder, never deleted, so a restore can itself be undone.
Restoring onto a new or replacement computer. No internet is needed.
- Install HARBOUR. Don't enter a licence key.
- On the first screen choose Moving to a new computer? Restore from a backup (in a browser, on the sign-in screen of a new installation: MOVING TO A NEW MACHINE? RESTORE FROM A BACKUP). Pick the backup file and enter its passphrase.
- HARBOUR restarts. Sign in with your usual account. Your licence, documents and settings are back.
- If this computer doesn't have the AI models yet, install them with Ollama or copy them across (see the Partner Handbook).
This option is only offered while the installation has no accounts, so it can't be used to overwrite a HARBOUR that is already in use.
Software updates
⚙ SYSTEM → Diagnostics → Software updates (administrators) shows your version and where the desktop app gets new ones:
- Automatically, from HARBOUR's releases (the default): needs internet; a new version downloads in the background and installs when HARBOUR next restarts.
- From an update folder on this network: for offices without internet, or IT partners who approve each version first. Enter the folder's web address.
- Never: run new installers yourself. Your data is kept. Security fixes reach this computer only when someone installs them.
The choice takes effect the next time HARBOUR starts. A server or Docker installation is updated by loading the new image instead.
If you are locked out
Read this before you need it. HARBOUR has no cloud account and no password-reset email service of its own, because it has no server that holds your identity. Recovery is therefore local — and it works with no internet at all.
Ordinary users: ask your administrator. ⚙ SYSTEM → Admin → Users → Reset password.
If the administrator is the one locked out, on the machine HARBOUR runs on:
- On the sign-in screen choose Forgotten the administrator password? → CREATE A RECOVERY CODE.
- HARBOUR writes a file called
recovery-token.txtinto your HARBOUR data folder:~/.harbour-ai/on Linux and macOS,%USERPROFILE%\.harbour-ai\on Windows. - Open that file, paste the code it contains, and set a new administrator password. If there is more than one administrator, choose which one.
The code lasts 15 minutes, works once, and is never sent anywhere. It is readable only by your user account. Being able to read that folder is the proof that you own the installation — anyone who can read it could already open the database directly.
Recovery only works from the machine HARBOUR is running on. A request from anywhere else is refused, even on a networked deployment.
Email Verification
If your instance has an SMTP server configured (⚙ SYSTEM → Integrations → ✉ OUTLOOK/EMAIL), new accounts are sent a confirmation link and the address is marked verified when it is followed.
If you have not configured email — which is normal for a desktop install — nothing changes. Accounts are created as before. HARBOUR will never block sign-up or sign-in on an email it has no way to send.
By default an unverified account can still sign in; an administrator can require confirmation first. Addresses on internal domains such as .local and .internal are accepted, because on-premise networks use them.
Contact
- Website: harbour-ai.co.uk
- GitHub: github.com/LOOSEKEY/harbour-ai-releases
- Email: Gregorymoores@proton.me