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 also does the follow-up: say what you need after an answer and it drafts the ticket, the reply, the doc or the calendar event, then waits in the Actions queue for a person to approve.
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
- Sign up and step through onboarding. Every step can be skipped and done later.
- 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.
- 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.
- 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.
- 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:
- Costs are yours and visible. Token spend shows up on your provider's bill (and in Enhanciar's Cost tab), not hidden inside a subscription.
- You pick the model. Settings → Models & API keys lets you choose an active model and save keys for OpenAI (
sk-…), Anthropic (sk-ant-…), Google AI Studio (AIza…), or a custom OpenAI-compatible endpoint (Groq, OpenRouter, Ollama, Mistral — some of these offer free tiers). - The account default model matters. The model you pick in Settings → Models is what answers Chat questions, Slack mentions, and MCP queries unless you override it for a single run or session.
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.
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:
- Invite the bot to a channel:
/invite @Enhanciar. - Mention it with a question:
@Enhanciar how does checkout retry work? - 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.
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:
- Start ingest (manual). A full read of the source. This is the only time the backfill window applies — for Slack, "How far back to import" is set directly above the button, and it matters only for this first run. Press it again only to force a full re-read: after inviting the bot to new channels, or to widen the window. Every document is re-summarised on your own AI key, so a full re-read is not free.
- Incremental sync (automatic). After the first ingest, new activity in the source triggers a sync on its own — at most once every 15 minutes, no matter how busy the channel gets — and each sync pulls only what changed since the last one. There is also an optional scheduled auto-refresh you can turn on per workspace.
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.
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. Turn it on for a repo and every new pull request gets a review posted as comments on the PR. This is the one thing that runs without an approval click.
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
Not available in production yet. 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.
- Propose. Proposals come from chat (Create ticket from this), from ingesting meeting transcripts and PRDs (a PRD breaks down into an epic → story tree), or from MCP. Each lands in the Actions tab as a card.
- 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.
- 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.
Where proposals come from:
- the web chat (ask it to file something, or Create ticket from this),
- ingested meeting notes and PRDs (action items),
- Claude or Cursor over MCP (propose only).
The Slack bot and the phone chat answer; they do not file proposals.
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.
- 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. - 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
- Everyone starts with a personal workspace. Your connections, ingested sources, and chat all live there by default.
- Team workspaces are shared brains. Create one in the Workspaces tab, then invite teammates by email. Only the workspace owner can invite or remove members, and every invite is a pending invite the teammate must accept — membership grants read access to a shared brain, so it needs consent. Invitees need a verified email.
- Access is scoped to the active workspace. Connectors, ingests, chat answers, and actions all belong to whichever workspace you have active. A source connected to a team workspace is visible to its members; your personal connections stay personal. This is also why a connector can look connected in one workspace and not another — connection status is per workspace, not per account.
- Outside the app, the API key is the switcher. Cursor, Claude and a curl script never see which workspace you have open in the browser, so a
dh_key carries that choice itself — see MCP. Leaving a workspace stops its keys working immediately.
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.
- Plans are Solo (single seat), Team (a flat fee for up to 10 members — not per-seat), and Enterprise (quoted per customer). Plans differ mainly in seats and how many GitHub installs they cover; current prices are always shown in the Billing tab. Plans are monthly; cancel anytime.
- No token caps from us. Because every model call runs on your own key, Enhanciar does not meter your tokens — the subscription covers the platform, and your provider bills the inference.
- Checkout is choose plan → review → confirm. Upgrading mid-cycle credits your unused days. Monthly plans renew automatically until cancelled (cancel any time from Billing); yearly and 6-month plans, when offered, are one payment that doesn’t auto-renew, and we email you before they end.
- Without an active plan, features that call a model (chat, ingest, the Slack bot, actions) are paused and the app routes you to Billing.
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.
See also the API reference and the retrieval benchmark.