Search & ask your docs
tela has two ways to find things: instant search for "where did I write that word", and semantic search / Ask for "what do my docs say about X".
Instant full-text search
The search palette runs ranked Postgres full-text search over every page you can access — title weighted above body, snippet-highlighted, punctuation-forgiving (it parses like a web search box, so quotes work). Fast and exact, but it matches keywords, not meaning. Reach it with g s or / — see [[Keyboard shortcuts]].
Semantic search
Semantic search finds pages by meaning, not matching words — "how do I publish a space" surfaces the right page even if it never says "publish". Pages are embedded into vectors in the background when saved, and your query is matched against them.
It isn't limited to page text — attached files are indexed too. Upload or sync a PDF or text file (.md, .txt, .csv, .json) and tela extracts its text in the background and embeds it alongside your pages, so a search can find an answer that lives inside an attachment. A file result is marked as a file and cites the attachment (name, the page it's on, a download link) rather than a page, gated by the same access rules — you only retrieve files in spaces you can read. Non-text bytes (images, scanned PDFs with no text layer, binaries) aren't indexed; they still attach and preview as before.
Ask your docs
Natural-language Q&A grounded in your own pages. You ask a question; tela retrieves the most relevant chunks — scoped to exactly the spaces you can read, never across access — feeds them to an LLM, and returns an answer with cited sources. Sources can span multiple pages and attached files, so one answer can stitch together a page and a synced PDF. The answer streams in as it's written: the cited sources appear first, then the response types out live.
The model answers only from the retrieved excerpts and says so when your docs don't cover it — no inventing facts. Thin grounding is flagged low-confidence. When sources disagree on a value, it surfaces the discrepancy and gives both sides rather than silently picking one — drawing on the conflicts tela already tracks between your pages (see [[Trust & provenance]]), so it can warn "source A says X, source B says Y — verify". Each answer can suggest follow-up questions, turning one answer into a thread to pull on.
An answer cites a window of what retrieval matched, not everything. When there was more, the Sources list says so — "showing 12 of 24 matches" — so a short citation list is never mistaken for "that's all your wiki has on this".
[!TIP] Agents reach the same retrieval over MCP via the
researchtool — it returns the assembled grounding (cited sources, flagged disagreements, a low-confidence signal) for the agent to answer from, plusconsideredandtruncatedso it knows when to re-ask with a biggerlimitinstead of concluding something is missing. See [[Agents & MCP]].
[!TIP] Public spaces count too. Any space published to the open web (see [[Publishing & public URLs]]) — including these docs — is part of search and Ask for every signed-in user, even non-members. So you can ask tela how to use tela. Private spaces stay scoped to their members, as always.
Discover & tidy up
The same semantic index also helps you connect and clean the wiki:
- Related pages — any page surfaces a "see also" list of semantically related pages, so readers find connected material even with no explicit
[[wikilinks]]. - Link suggestions — while drafting, tela proposes existing pages your new text should link to, so a new page wires itself in instead of landing as an orphan.
- Overlap detection — find near-duplicate page pairs (sharing a near-identical passage) to merge or redirect.
- Knowledge gaps — the most-asked Ask questions your pages couldn't answer, as a to-do list for what to write next.
Knowledge gaps
Every question asked of Ask is logged with how well retrieval grounded it. The ones your pages repeatedly couldn't ground are the list of pages worth writing — the loop that makes a wiki improve itself.
A gap isn't "Ask returned nothing" — that almost never happens, because search always hands back its closest matches. A gap is a question where the closest matches weren't actually relevant: the same judgement behind the "low confidence — verify this" notice on an answer. So a question that returned twelve sources and still didn't answer you counts, which is the kind that used to slip through unnoticed.
It's open to every signed-in user, scoped so you see your own questions plus questions asked inside spaces you're a member of — and nothing else. Membership, not readability: publishing a space to the web does not hand strangers its members' questions, and a question asked across all your spaces at once is visible only to you. Instance admins see the whole instance.
Agents read the same list with the knowledge_gaps MCP tool (optionally narrowed with space_id), so "find what my wiki can't answer and write those pages" is one loop an agent can run end to end.
[!NOTE] Question logging can be turned off instance-wide when self-hosting (
TELA_RAG_LOG_ASKS=0). With it off, knowledge gaps stay empty.
Indexing status
Pages are embedded (and summarized for grounding) in the background, a few seconds after each save. While that's still catching up, a small amber dot sits next to the page in the sidebar — and a rollup dot next to its space. Hover it and it says what's happening: "Indexing recent edits — clears shortly." (or "Summarizing…", or a page count on the space rollup). There is nothing to do — it clears itself once the background workers finish, typically in seconds. The dot fades back while you hover the row so the row's own actions lead, and comes forward again when you point at it. A page with nothing to index — a drawing-only page, say — never shows it.
Don't want to watch it? Settings → Search index → "Show indexing activity in the sidebar" turns the dot off. It's saved on your account, so it applies on every device you sign in from, and it changes nothing about the indexing itself — the Search index tab still reports the full status whenever you want to look.
The dot only appears for a subsystem that's actually running (an embedder for indexing; the summarizer for summaries). Admins get the full per-space picture, plus a manual re-run, under Settings → Search index and Settings → Summaries.
When AI is temporarily unavailable
When the embedder or answer model is configured but momentarily unreachable — down, restarting, or under maintenance — tela detects this automatically and shows an "AI temporarily unavailable" state on Ask instead of letting a question fail with a cryptic error. It clears on its own once the model is back; you don't need to do anything. Instant full-text search keeps working throughout. (Admins can also force this state at any time with the AI kill-switch — see [[Administration]].)