Contextator
ENTR

Getting started

Dashboard Tour

A guided tour of the Contextator dashboard — signing in, the account menu, top bar, project list and detail, keyboard shortcuts, footer and the Users page.

Updated:

The dashboard at http://localhost:3444/ is where everything is managed. It is a plain web page — no build step, and it polls so you can watch indexing happen. It asks you to sign in first, and what you see afterwards depends on your account.


Signing in

Opening / sends you to /login unless you already have a session in that browser. Sign in with the account the operator gave you; on a brand-new instance there is no account yet and you are sent to /setup instead, to create the first one with the code from the server log. Both are covered in Accounts and Permissions.

If your password is a temporary one, the dashboard sends you to /change-password and nothing else works until you replace it.

What you see once you are in follows your role: a root or admin account sees every project and the Users page, a member account sees only the projects it was added to, and buttons it may not press are not drawn at all.

Account menu

Top right, showing your name and a pill with your role:

Item What it does
Change password Asks for your current password, then the new one twice. Saving it signs out your other sessions
Users The account list — root and admin only. See The Users page
Sign out Ends this session on the server, not just in this browser

Top bar

The status pills tell you whether the server is healthy before you look at anything else:

Pill Meaning
Database up / down The embedded PostgreSQL is reachable
Model ready / loading The embedding model is loaded. On a first start this says loading while it downloads — indexing and search do not work until it is ready
local · Xenova/paraphrase-… · 384d The embedding provider, model and vector dimensions currently in use
n open sessions MCP clients connected right now
v0.2.0 The running version

Project list (left)

Every project with its live status: idle, indexing, queued or error. Each row shows the number of sources, the document and chunk counts and when it was last indexed. While a project indexes, the row grows a progress bar with the current phase, files done and chunks embedded. A queued project tells you which project it is waiting for.

  • Filter projects — type to narrow the list.
  • New project (or press n) — opens the creation dialog.

Project detail (right)

The project name, its status, and the MCP URL with a copy button — this is the string you paste into your agent’s configuration. Next to it, the names of the project’s sources.

Three actions:

Button What it does
Re-index Queues an incremental run: sync every source, re-embed only what changed
Force re-index Drops every chunk of the project and rebuilds from scratch
Delete Removes the project, its documents, chunks and files. Click twice to confirm

While a run is in progress a callout shows the phase, the progress bar, how many files were unchanged and how many chunks were embedded. If the last run failed, a red callout shows the error verbatim.

Statistics

Documents (and across how many sources), chunks, when it was last indexed (with what that run changed), and the embedding model. If the project was indexed with a different model than the server now runs, a warning appears here and search is refused until you re-index.

Document sources

One row per source: its mount name, where it comes from, its content type, document count, when it last synced, and its own status. Each row carries:

Action Available for What it does
Test git, Notion Checks the connection without indexing anything
Sync all Queues an index run (every source syncs at the start of one)
Edit / Files all Opens the source dialog; for uploads, lists and manages the stored files
Delete all Removes the source, its documents and its files. Click twice to confirm

Add source opens a dialog with one tab per kind — Local directory, Git repository, Upload files, Obsidian vault, Notion. See Document Sources.

Members

Who reaches this project, beyond the root and admin accounts that reach every project and are therefore not listed. Each row is a member account with a dropdown holding its project role — viewer reads, editor changes sources, uploads files and re-indexes — and a Remove button. Add member offers the active member accounts that are not on the project yet; if there are none it points you at the Users page. Only root and admin can change any of it; everyone else sees the list read-only. A note at the foot of the panel repeats that membership governs the dashboard, not the MCP endpoint. See Accounts and Permissions.

MCP access

A pill says which of the three modes this project’s endpoint is in — open, readable by anyone who can reach the URL; token required, the default for a newly created project; or account required, where only an account that is a member of the project is answered, over OAuth 2.1 and re-checked on every request. The panel flips between them; New token mints one and shows its secret once, and Revoke cuts its client off mid-session. Each row shows a token’s name, its leading characters, and when it was last used. Buttons you are not allowed to press are not drawn: flipping the mode needs manager rights over the project, minting and revoking an editor’s. See Projects.

Connect an agent

Copy-paste snippets for Claude Code, Cursor, Claude Desktop and legacy SSE clients, filled in with this project’s real URL — and with the Authorization header already in place when the project requires a token. See Connecting AI Clients.

Tools exposed to the agent

A reminder of the three tools every project publishes: search_docs, list_topics, read_document. See MCP Tools.

Index runs

The recent run history, newest first: when, incremental or force, what changed (12 unchanged · 3 updated · 1 removed), and how long it took. Failed runs show their error. This survives restarts, unlike the live progress view.


Keyboard and small conveniences

  • n opens New project (when no dialog is open).
  • Esc closes a dialog.
  • The selected project is in the URL hash (#/my-project), so you can bookmark or share a link to it.
  • Destructive buttons require a second click, and the confirmation expires after a few seconds.
  • Copy buttons fall back to a manual selection if the browser blocks the clipboard on a plain-HTTP LAN address.

Every page of the dashboard ends with the same two-part footer. On the left, the copyright line with the running version: Copyright © 2026 Contextator v0.2.0 is a Tunedness production. On the right, five pages that open as ordinary URLs and need no account:

Page What it is
/about What Contextator is, how it works, and who builds it
/privacy What your installation stores, and the outbound calls the software can make
/cookies The one cookie there is — the session that keeps you signed in — and what it is not
/terms Warranty disclaimer and what running an instance makes you responsible for
/license The AGPL in short, the full text at /license.txt, and the third-party components

They are public on purpose: a legal notice only the operator can read is not a notice. They expose no project data and reach neither the database nor the API.

The Users page

Account menu → Users (#/~users), for root and admin accounts only. One row per account: its username and display name, its role, whether it is active, disabled or has a password change pending, how many projects it reaches, and when it last signed in.

Button What it does
New user Opens the creation dialog
Edit Display name, e-mail, role, and the active switch
Reset password Hands out a new temporary password, shown once, and signs that account out everywhere
Disable / Enable A disabled account cannot sign in, and its open sessions end at once
Delete Removes the account, its sessions and its memberships. Click twice to confirm

New user asks for a username (lowercase, permanent), an optional display name and e-mail, a role — member or admin, with root offered only to a root account — and a password. Leave the password empty, or press Generate, and the server makes one. Either way it is shown once, in a dialog with a copy button, and Must change password at first sign-in is ticked by default.

There is no separate button for ending someone’s sessions: Reset password, Disable and Delete each do it as part of what they are.

A button you may not press is greyed out and says why when you hover it — the last active root account, your own row, or a root account when you are an admin. The full set of rules is on Accounts and Permissions.

Arrow keys to move, Enter to open.