Administration

System Settings

Application preferences, mail credentials, API keys, user accounts and the health of the database and file store — everything that configures this CapitalOS instance.

Application Preferences
Path where generated reports and files are saved.
Frontend Libraries

Every script, stylesheet and font the pages use is served from this app, not a CDN. Each file is checked against the copy that was vendored. "Check for updates" asks the npm registry for the latest versions.

Library Version License Files Integrity Latest
Loading…
Outbound & Inbound
SMTP Email Credentials

Each account is its own mailbox on the Mail page, and mail goes out from the account it belongs to. The default account is the one Mail opens on, and sends anything not tied to an account.

Account Name Username / Email Servers Mailbox Actions
Add Email Account
SMTP Outbound
Saved passwords never leave the server — leave this as is to keep the current one.
IMAP Inbound
Mailbox
Checks for new mail while the Mail page is closed. The inbox open on the Mail page checks every minute either way.
Promotions, Social and Updates mail stays out of CapitalOS.
Email Signatures

Each email account keeps its own signatures and uses one at a time. The active one is appended to everything sent from that account — single sends and Outreach Center campaigns. Mail goes out from the account marked Sending.

Mailbox Preferences

Controls how many messages load per page on the Email Management screen.

Saved to this browser. Applies to infinite-scroll batches in Email Management.
Calls & transcripts
Recordings Overview

How calls are recorded, transcribed and stored. Changes here are saved with Save All Changes and apply from the next recording or job; nothing already transcribed changes.

Transcription
More finishes sooner but leaves less of the computer for everything else while a call transcribes.
Pre-selected when you import or save a recording; it tells speaker detection how many voices to look for.
Speaker detection
For single-microphone recordings. Computer calls already keep you and the other side apart.
Call Recorder

The recorder in the top bar starts with these. Picking something else there is remembered in that browser until these defaults are saved again.

Usual kind of call
Used for computer calls only.
The recorder stops and saves at this length. A recording already running keeps the limit it started with.
Below this, recording will not start and uploads are refused.
Storage & Retention
The compressed copy every recording keeps. Applies to new recordings.
Lets a re-transcription use the best audio (and the separate tracks of a computer call). After this only the compressed copy stays. A recording's own “Keep the original” box overrides this.
Per audio file. Large files upload in pieces, so this is about disk space, not the connection.
FLAC files
Convert to MP3
FLAC files uploaded as attachments are converted before they are stored. Imported calls are transcribed from the FLAC first, then their kept original becomes an MP3. The FLAC is not kept, unless the MP3 would be bigger. Email attachments are never changed.
Mono recordings use half, since one voice needs less. 128k suits anything; 96k is plenty for calls.
Loading…
Processing Queue

Transcriptions and speaker detection, newest first. One runs at a time, in the background.

Recording Work Status Model Queued
Loading…
Dashboard
Firm Intelligence
Open dashboard

The thresholds the dashboard raises its actions, risks and opportunities with, and the AI brief's grounding. How long the snapshot and briefs stay cached is on the Cache tab. None of this calls the model. Saved with Save All Changes; the next dashboard load uses the new values.

Calendar
Views & Layout
Open calendar

How the calendar opens and looks. Saved with Save All Changes; open calendars pick it up on their next reload. Times show in each viewer's own time zone; reminders and planning use (General / App).

Shown beside the hours in Day and Week view.
Weekends
Finished tasks
Working Hours & New Events

Hours outside these are shaded, Plan my week only books inside them, and "packed day" warnings count meetings within them.

Working days
For new events, and events with no reminders set. Reminders arrive in the notification bell.
Calendars

What shows on the calendar and in which colour. Hiding one here is the default; the switches in the calendar's sidebar override it in that browser.

Plan My Week & Heads-up

Plan my week finds free working time for open tasks and suggests focus blocks you keep or dismiss. Heads-up flags double bookings, packed days, deadline pile-ups, tasks due before what they wait on, and deal closes with open work. Neither uses AI. Meeting prep briefs do: switch them under Calendar assistant on the AI tab. Reconnect reminders, Plan reconnects and the relationship block in meeting prep are set on the Network tab.

Longer tasks are split, up to 3 blocks.
Gaps shorter than this are left alone.
Older ones are usually stale; they're counted, not planned.
Open tasks due on the same day.
Network
Relationship Intelligence
Open Network

Network works out who you know and how well from activity already in CapitalOS, and rebuilds on a schedule. Everything it uses is set here and saved with Save All Changes; a change that affects the scores starts a rebuild. AI reads on relationships are switched under Network analysis on the AI tab.

Loading…
Cloudflare Workers AI
AI Overview

Every AI feature calls your Cloudflare Worker. Cloudflare's free plan gives 10,000 neurons a day, reset at 00:00 UTC. Changes here are saved with Save All Changes and apply from the next AI call.

Today
Last 14 days (estimated neurons)
Features

Switch a feature off and its buttons are dimmed across the app. Economy uses the small, fast models (Llama 3.2 3B first) at roughly a sixth of the cost, with plainer writing.

Feature On Quality Today
Loading…
AI Chat
More lets follow-ups refer further back, but each one adds to the cost of every message.
A ceiling, not a target. Output costs about eight times more than input on Llama 3.3 70B.
Follow-up questions
"And who are their lenders?" names nothing, so the records from the previous question come along.
Daily Budget

Figures are estimates from this app's own calls, priced at Cloudflare's published rates. Anything else on the same Cloudflare account spends from the same allowance.

10,000 on the free plan. Raise it if you move to Workers Paid.
Off lets Cloudflare decide; on the free plan it refuses calls once the allowance is gone.
Worker Connection

The checks use what is on this form, saved or not. The connection check is free.

Credentials
Third-Party API Keys
AI features run on your Cloudflare Worker: its address, secret and budget are on the AI tab.
Access
User Accounts

Manage who can access CapitalOS. Self-service sign-up is closed, so accounts are added here. Deactivating an account, resetting its password or signing it out takes effect on its next request.

Username Email Last Active Status Role Actions
Loading users…
Health
Database Overview
Database file path —
Backups directory —
Last modified —
Table Rows
Backups

Snapshot the live database into a downloadable zip file.

Filename Created Size Type Actions
Loading backups…
Footprint
Storage Overview
File Paths
Portability
Path Health

Files are stored by a key relative to the attachments folder, and dataroom links as dataroom://<root>/<path>, so the backend, its files and the datarooms can be moved or renamed without breaking links. This checks every stored reference; Repair rewrites any machine-specific path it can find the file for (a database backup is taken first; no file is moved or deleted).

Not checked yet
By kind
KindRowsOK RepairableMissing Unknown root
Run a check.
Issues
StatusKindFileStored asDetail
Run a check.
Linked in place
Datarooms

A dataroom is a folder whose files records link to where they are (nothing is copied). Connect one here or from any deal's file picker, and say which deal or company it belongs to; that deal's picker then opens it first. If a folder moves, Edit it and browse to the new place: every link follows. Folders can only be connected inside ….

NameFolderBelongs to LinksStatus
Loading…
Breakdown by Folder
Folder Files Size
Loading…
Attachments by Category
Category Files Size
Loading…
Performance
Response Cache

Expensive responses (the dashboard snapshot, storage totals, database stats, exchange rates, news, Network pulse and AI suggestions) are kept in a separate cache file. Flushing is always safe: anything removed is simply recomputed on its next request.

By namespace
Namespace Entries Size Expired Lifetime hits Actions
Loading…
In-process caches
Name Entries Capacity TTL
Tag Entries Size Actions

Cache Settings
Switch & Limits

Saved with Save All Changes and applied at once, no restart. Switching the cache off empties it; every response is then computed on each request.

The server's environment sets CACHE_ENABLED=0, so the cache stays off whatever is chosen here.
How Long Each Response Is Kept

Upper limits: most entries are cleared sooner, as soon as the data behind them changes. 0 seconds means never cached. Changing a lifetime clears what is stored under the old one, except AI-written text, which costs AI budget to write again: it keeps its old expiry.

Response Keep for Default Entries now
Housekeeping
Data Retention

History and generated data that accumulates with no other way to remove it. Every clean-up is previewed first, needs you to type the exact count to confirm, and writes a downloadable record of every row it removes. Protected rows (baselines, pending items, the newest backups) are never offered.

Dataset Rows / files Size Oldest Never deleted Actions
Loading…
Clean Up

Choose what to remove, then preview it. Nothing is deleted from this form.

Hold Ctrl / Cmd to select several.
Narrow it first: pick a scope, an age, “Always keep the newest”, or a filter. Clearing a whole dataset in one go isn’t allowed.
Preview — nothing deleted yet
Preview

Sample (oldest first)

Clean-up History

Every clean-up attempt, including aborted ones. The record file lists every removed row and is the way to restore one by hand.

When Dataset Scope Matched Deleted Status Record
Loading…