User guide

Enhanciar

What the product does, how to set it up, and what every screen is for.

What Enhanciar is

Enhanciar is a brain for your company. It reads the places where your team's knowledge already lives — your code, Slack threads, Notion pages, tickets, docs, email — and turns them into one searchable, cited wiki with a knowledge graph behind it. Then you ask it questions in plain language and get answers with sources attached.

It runs on your own AI key. You paste a key from Google, OpenAI, Anthropic, or a compatible provider; every model call is made with that key, so you control the spend and Enhanciar never bills you for tokens or trains on your data.

Once your sources are connected, the brain keeps itself current: new activity triggers small incremental syncs on its own. You can query it from the app, from Slack by mentioning the bot, or straight from your editor (Cursor, Claude Code) over MCP.

Quick start

  1. Sign up and step through onboarding. Every step can be skipped and done later.
  2. Add your AI key. Go to Settings → Models & API keys and paste a key from Google AI Studio, OpenAI, Anthropic, or a compatible provider. Keys are stored encrypted and only ever sent to the provider you chose. Most features need a key before they can run.
  3. Connect a source. Open the Connectors tab and connect GitHub, Slack, Notion, or any other source. OAuth sources take a couple of clicks; token sources have a step-by-step guide in the panel.
  4. Run an ingest. Open the Ingest tab, pick the source, and press Start ingest. It runs in the background — you can leave the page and watch progress in the Activity view.
  5. Ask a question. Open Chat and ask anything about what you just ingested. Answers come with citations back to the source.

Bring your own key

Enhanciar does not resell AI tokens. Every summarisation, wiki page, chat answer, and code review is generated with an API key that belongs to you. That means:

If you have no key saved, ingest fails with a message pointing you to Settings, and the Slack bot will tell you the workspace has no LLM key on file. Add a key first; the free tier of Google AI Studio is enough to start.

Connectors

Each source has a row in the Connectors tab. A green Connected dot means credentials are saved and working for the current workspace. Click any row to open its detail panel, see a sample of what Enhanciar can read, and connect or disconnect. Disconnecting clears the saved credentials and removes the ingested pages.

GitHub

Pulls your repositories — code becomes a cited wiki plus a knowledge graph, and Issues & Pull Requests (with their comments) become searchable pages. Connect by installing the Enhanciar GitHub App on your org or account; issues and PRs come through the same install, no extra secrets. The GitHub tab lets you rebuild the wiki per repo and pull issues per repo (pulling issues needs no LLM key; rebuilding the wiki uses yours).

Slack

Pulls channel threads — a thread and its replies become one document. It deliberately skips DMs and group DMs. Connect via OAuth: hit Connect, pick your workspace, Allow. Gotcha: the bot only reads channels it is in — run /invite @Enhanciar in each channel you want ingested. The first ingest reads back over a window you choose (7 days to a year, default 30 days); very busy channels may be read partially and caught up on later syncs.

Notion

Pulls pages (as markdown) and databases (as tables). Connect by pasting an internal integration token (ntn_…) — the panel walks you through creating one. Gotcha: Notion only shows the integration pages you explicitly share with it. For each top-level page: open it → ••• → Connections → Enhanciar. If the panel says "Connected, but we found nothing to ingest," this is why.

Google Drive, Gmail, Calendar

One Google sign-in covers all three. Drive pulls Docs, Sheets, Slides, PDFs, and text files (read-only; files over 10 MB and shared drives are skipped), and you can browse and pick exactly which files to ingest. Gmail pulls the last 30 days of threads (plain text only; spam, trash, and attachments are skipped). Calendar pulls primary-calendar events 30 days back and 30 days forward. Gotcha: if you connected Google before Calendar existed, your saved token lacks the Calendar scope — reconnect Google once to fix it.

Jira

Pulls Jira Cloud issues of every type, with comments folded into the issue. Connect with your Atlassian site URL, email, and an API token (Atlassian requires tokens to have an expiry date — pick one when you create it).

Confluence

Pulls pages from every space your credentials can see. Uses the same kind of Atlassian email + API token as Jira, entered separately, so you can connect one without the other.

Linear

Pulls issues in every state, with full comment threads. Connect with a personal API key from Linear's settings.

Zendesk

Pulls support tickets of every status, including public and internal comments. Connect with your subdomain, email, and an API token. Gotcha: token access must first be enabled in Zendesk Admin Center → Apps and integrations → APIs → Zendesk API.

Files & Notes

Nothing to connect. Upload PDFs, Word docs, markdown, text, or HTML in the Ingest tab's Feed files view, paste a note, or drop in a URL — Enhanciar fetches the page and can follow a handful of links on the same site.

Databases

Connects to Postgres or MySQL and reads structure only — tables, columns, keys, indexes, comments, and approximate row counts. It never reads your rows. Paste a connection string in the panel. If a database is referenced in code you already ingested, Enhanciar suggests it with a one-click connect (or asks only for the password it correctly could not find in your repo). What it learns feeds the Tables, DB Graph, and ERD tabs.

WhatsApp

Listed as coming soon in the Connectors catalog. A dedicated WhatsApp tab exists for linking by QR code and picking specific chats to sync; expect it to be gated until the rollout completes.

The Slack bot

Once Slack is connected, your team can ask the brain without leaving Slack:

  1. Invite the bot to a channel: /invite @Enhanciar.
  2. Mention it with a question: @Enhanciar how does checkout retry work?
  3. The answer arrives in-thread, with a Sources line linking back to the wiki pages it drew from. Long answers are trimmed with a link to read the rest in the app.
Which model answers a mention? Your account default model, set in Settings → Models. There is currently no Slack-specific override. The "Enrichment model" selector on the Slack ingest panel is a different setting that people often confuse with this one: it controls which model summarises threads while they are being ingested, and has no effect on how mentions are answered.

The bot only knows what has been ingested. If a channel was never ingested, it says so rather than guessing. Answers are grounded in the brain of the account that installed the Slack app, so everyone in the channel sees what that account can see.

Ingesting: the first read vs. staying current

There are two distinct things that pull data in, and they behave differently:

Ingests run in the background. The Ingest tab's Activity view shows a live event stream for the current run and a history of past jobs.

A tour of every tab

Home

Your starting point: how stocked the brain is, a three-step "get to first answer" checklist that jumps you to the right tab, recent sources, and starter questions.

Chat

Ask anything about your knowledge base. Answers stream in with citations; stale sources are flagged. You can switch the model for one session (change it in Settings to make it stick), see the model's reasoning with the "thinking" toggle on supported models, and turn a chat conclusion into a proposed ticket with Create ticket from this.

Wiki

The generated wiki itself: a page tree with sidebar filtering and full-text search, filter chips per source, and in-place editing. Pages show how recently they were verified.

Map

A galaxy view of every wiki page, clustered by topic. Click a cluster in the legend to zoom to it; click a node to read the page.

Files

A file-tree browser of an ingested repository. Pick a file to read what the brain knows about it.

Impact

Blast-radius analysis. Pick a file, function, or entity, and Enhanciar walks the knowledge graph to list affected files, affected tests, direct callers, and direct callees — useful before you change something load-bearing.

Skills

Executable playbooks mined from your knowledge base — how releases, refunds, and incidents actually happen in your team, each with the source documents it was compiled from. Suggest skills kicks off a new compile job.

Tables, DB Graph, ERD

Three views of your data model, built from connected databases and schema inferred from code. Tables is a filterable browser of tables and columns. DB Graph is a visual map of tables and their relationships. ERD is a full entity-relationship diagram — press ⌘K (Ctrl-K) to jump to a table.

Ingest

Where reading happens: start an ingest from a repo, URL, or connected source (Add source), upload documents (Feed files), and watch runs live (Activity). If the brain failed to answer recent questions, a banner lists them and points you at the source that would fill the gap.

Connectors

Every source in one place, with connection status, setup guides, and a peek at what each connection can see. Covered in detail above.

GitHub

Install or re-link the GitHub App and manage repos individually: rebuild a repo's wiki and graph, or pull its Issues and PRs.

Each installation also names which brain a push fills — the workspace that was active when you claimed the install, changeable from the Installations list. Membership is re-checked on every push, so an installation pointing at a workspace you have left stops syncing rather than continuing to write to it.

Each repo names which branch it watches. Unset means its default branch, which is what auto-sync always did; the picker lists the repo's real branches, read from GitHub. Pushes to any other branch are ignored.

What the App writes: nothing, unless AI code review is enabled — then it posts its review as comments on the pull request you asked it to review, which is why GitHub's install screen shows Pull requests: read and write. It never pushes commits, writes to a branch, or modifies code.

WhatsApp

Link WhatsApp by QR code, pick specific chats, and sync them into the brain. Marked coming soon in the connector catalog.

Code Reviews

AI review for your pull requests. Pick a repo and an open PR, submit, and Enhanciar reviews it with your own LLM key — no inference charges from us.

Actions

The approval queue for work the brain proposed. Covered in detail below. This tab appears once the actions feature is enabled for your account.

Workforce

Standing agents that work on your brain. Each has a charter (what it is for) and a ledger (what it has done); you can run one on demand or ask a free-form question, e.g. "Should we merge the two auth wiki pages, and which one wins?"

Settings

Account details, Models & API keys (your BYOK keys, active model, processing mode), Connections (including MCP setup snippets), Security, and data controls.

Workspaces

Create team workspaces, invite teammates by email, manage members, and delete workspaces. See Workspaces and teams.

Cost

Your real token usage and spend — spend month-to-date, tokens used today, cache savings, and a monthly usage chart. All of it is spend on your own key; Enhanciar just shows you the meter.

Billing

Your plan, upgrades, and payment history. See Billing.

Actions: propose → approve → execute

Enhanciar can turn what it reads into work items — but it never touches an external tool on its own. The rule is simple: nothing is created until a human approves it.

  1. Propose. Proposals come from chat (Create ticket from this), from ingesting meeting transcripts and PRDs (a PRD breaks down into an epic → story tree), from Workforce agents, or from MCP. Each lands in the Actions tab as a card.
  2. Approve. On the card, edit the title and description, pick the destination (a Jira project, Linear team, GitHub repo, Slack channel, Notion parent, and so on), then hit Approve — or Dismiss. Related proposals can be approved in a batch, and a batch creates parents before children so stories land under their epic.
  3. Execute. Approval triggers execution: the item is created in the external tool and the card links to it. Failures show the error with a Retry button. Duplicate proposals are de-duplicated, so approving twice never creates two tickets.

Supported action types: create a Jira issue, Linear issue, or GitHub issue; post a Slack message; create a Google Calendar event; create a Gmail draft (a draft only — Enhanciar cannot send email); create a Notion page; add a Zendesk internal note; and re-verify a wiki page inside the brain itself.

MCP: query your brain from Cursor or Claude

Your brain is an MCP server, so tools like Cursor, Claude Code, Claude Desktop, and Continue can search and query it directly while you code.

  1. Generate an API key in Enhanciar → Settings → API keys, and pick the workspace it should read. It starts with dh_ and is shown once — copy it then.
  2. Point your client at https://enhanciar.in/enhanciar/mcp/ with the key as a bearer token. Settings → Connections has copy-paste snippets for each client. For Claude Code:
claude mcp add --transport http --scope user enhanciar \
  https://enhanciar.in/enhanciar/mcp/ \
  --header "Authorization: Bearer dh_your_key"

The key is what chooses the workspace, not the app's workspace switcher. An MCP client stores one static token and has no workspace picker of its own, so the choice is made once, when you create the key. To read a second workspace from the same editor, create a second key and add it as a second MCP server. A key with no workspace chosen — including every key created before this existed — reads your personal workspace.

A key is tied to you and that workspace, not to the workspace alone: if you leave it, or are removed from it, the key stops working on the very next request. Any member of a workspace can create a key for it — you can already read that brain in the app — and it can never reach further than you can.

The server exposes tools to search the wiki, read pages, ask grounded questions, run impact analysis, read the graph, list repos and skills, and list or propose actions. It can propose an action but can never approve or execute one — that always happens with you, in the app.

Workspaces and teams

Billing

The Billing tab shows your current plan, the plan catalog, an upgrade path, and your payment history with a downloadable tax invoice per payment.

Troubleshooting and FAQ

The bot answered "the provided context does not contain information to answer your query."

That is the honest answer when retrieval finds nothing relevant — usually it means nothing has been ingested yet, or the topic lives in a source (or Slack channel) that was never ingested. Connect the source, run an ingest, and ask again.

Slack says Connected but the Ingest page says it is not connected.

Two possible causes. First, check the active workspace: Slack connections are per workspace, and a Slack install stamped to your team workspace will not show as connected while your personal workspace is active. Second, the connection may be stale — the OAuth once succeeded but the app was since removed from Slack or its token revoked. Enhanciar now verifies against Slack live rather than trusting its old record, so a stale connection shows honestly; reconnect to fix it.

I mentioned the bot and got silence.

In order of likelihood: the bot was never invited to that channel (/invite @Enhanciar); the account has no active subscription; or there is no AI key saved (the bot replies telling you to add one in Settings → Models when this is the case).

Notion is connected but nothing was ingested.

The pages were not shared with the integration. For each page: ••• → Connections → Enhanciar, then hit Refresh in the connector panel and re-run the ingest.

Google Calendar returns an error even though Google is connected.

Your Google token predates the Calendar permission. Reconnect Google once and it will include the Calendar scope.

My busy Slack channel looks only partially imported.

The first read is capped to keep it fast and cheap (a bounded number of history pages and threads per channel). Incremental syncs pick up from exactly where the read stopped, so nothing is silently lost — it just arrives over the next syncs.

Does the database connector read my data?

No. It reads structure only — tables, columns, keys, indexes — never a row of your data. Row counts shown are approximations from the database's own statistics.

Can Enhanciar send email or create tickets on its own?

No. Everything goes through the Actions queue, and nothing reaches an external tool until you approve it. Gmail is drafts-only by design — Enhanciar's Google permission does not include sending.

Is re-running Start ingest free?

No — it re-reads and re-summarises everything on your own AI key. For day-to-day freshness, rely on the automatic incremental sync; re-run a full ingest only after adding channels or widening the backfill window.