[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1303":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":44,"readmeContent":45,"aiSummary":46,"trendingCount":15,"starSnapshotCount":15,"syncStatus":47,"lastSyncTime":48,"discoverSource":49},1303,"beever-atlas","Beever-AI\u002Fbeever-atlas","Beever-AI","Your First LLM-Wiki Conversation Knowledge Base","https:\u002F\u002Fdocs.beever.ai\u002Fatlas",null,"Python",379,42,3,0,6,15,83,18,72.7,"Apache License 2.0",false,"main",[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"adk-google","agents","discord-bot","fastapi","gemini","google-adk","knowledge-base","large-language-models","llm","mattermost","mcp","mcp-server","microsoft-teams","open-source","python","rag","react","slack-bot","wiki","2026-06-12 04:00:08","\u003Ch1 align=\"center\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"web\u002Fpublic\u002Flogo-white.svg\" \u002F>\n    \u003Cimg src=\"web\u002Fpublic\u002Flogo-primary.svg\" alt=\"\" height=\"48\" align=\"absmiddle\" \u002F>\n  \u003C\u002Fpicture>\n  &nbsp;Beever Atlas\n\u003C\u002Fh1>\n\n\u003Cdiv align=\"center\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets\u002Fbanner-dark.png\" \u002F>\n    \u003Cimg src=\"assets\u002Fbanner.png\" alt=\"Beever Atlas — LLM-first Wiki Knowledge Base\" width=\"85%\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fdiv>\n\n\u003Ch3 align=\"center\">\n  Turn your team's Slack, Discord, Teams &amp; Mattermost chats\u003Cbr>\n  into a self-maintaining wiki — automatically.\n\u003C\u002Fh3>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fdocs.beever.ai\u002Fatlas\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDOCS-docs.beever.ai\u002Fatlas-FFC107?style=for-the-badge&labelColor=4A4A4A\" alt=\"Docs\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLICENSE-Apache_2.0-7CB342?style=for-the-badge&labelColor=4A4A4A\" alt=\"License Apache 2.0\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fbeever.ai\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBUILT_BY-BEEVER.AI-15404E?style=for-the-badge&labelColor=4A4A4A\" alt=\"Built by Beever.ai\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgoogle.github.io\u002Fadk-docs\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBUILT_WITH-Google_ADK-FF6F00?style=for-the-badge&labelColor=4A4A4A\" alt=\"Built with Google ADK\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FVshBCUUX\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDISCORD-Join_Community-5865F2?style=for-the-badge&labelColor=4A4A4A&logo=discord&logoColor=white\" alt=\"Join our Discord\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fx.com\u002FBeever_AI\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FX-@Beever__AI-000000?style=for-the-badge&labelColor=4A4A4A&logo=x&logoColor=white\" alt=\"Follow us on X\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fbeever.ai\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWEBSITE-beever.ai-15404E?style=for-the-badge&labelColor=4A4A4A\" alt=\"beever.ai\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\nBeever Atlas pulls the conversations your team already has on Slack, Discord, Microsoft Teams, and Mattermost, extracts atomic facts, deduplicates them, and clusters them into topic pages with citations. A graph store links the people, decisions, and projects mentioned across channels. Ask questions in natural language and get answers cited back to the source messages — through the dashboard, or through MCP into Claude Code and Cursor.\n\nIf you want a knowledge base that grows on its own from the chats your team already has, this is it.\n\n---\n\n## ✨ Features in action\n\nSix short clips — connect a workspace, sync history, watch memory build, browse the auto-generated wiki, ask questions, plug external AI agents in via MCP.\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd width=\"33%\" align=\"center\" valign=\"top\">\n      \u003Cstrong>Multi-Platform\u003C\u002Fstrong>\u003Cbr>\u003Cbr>\n      \u003Cimg src=\"assets\u002Fclips\u002Fmulti-platform.gif\" alt=\"Multi-platform connections demo\" width=\"100%\">\u003Cbr>\n      Connect Slack, Discord, Teams, Mattermost, or file imports. One bot, every workspace.\n    \u003C\u002Ftd>\n    \u003Ctd width=\"33%\" align=\"center\" valign=\"top\">\n      \u003Cstrong>Message Sync\u003C\u002Fstrong>\u003Cbr>\u003Cbr>\n      \u003Cimg src=\"assets\u002Fclips\u002Fsync.gif\" alt=\"Channel sync demo\" width=\"100%\">\u003Cbr>\n      Pull channel history on demand or on a schedule. Resumable and rate-limit aware.\n    \u003C\u002Ftd>\n    \u003Ctd width=\"33%\" align=\"center\" valign=\"top\">\n      \u003Cstrong>Memory Ingestion\u003C\u002Fstrong>\u003Cbr>\u003Cbr>\n      \u003Cimg src=\"assets\u002Fclips\u002Fmemory.gif\" alt=\"Memory ingestion pipeline demo\" width=\"100%\">\u003Cbr>\n      6-stage ADK pipeline distils messages into atomic facts, entities, and relationships.\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd width=\"33%\" align=\"center\" valign=\"top\">\n      \u003Cstrong>LLM Wiki\u003C\u002Fstrong>\u003Cbr>\u003Cbr>\n      \u003Cimg src=\"assets\u002Fclips\u002Fwiki.gif\" alt=\"LLM wiki browsing demo\" width=\"100%\">\u003Cbr>\n      Auto-maintained wiki per channel — overview, topics, people, decisions, citations.\n    \u003C\u002Ftd>\n    \u003Ctd width=\"33%\" align=\"center\" valign=\"top\">\n      \u003Cstrong>QA Agent\u003C\u002Fstrong>\u003Cbr>\u003Cbr>\n      \u003Cimg src=\"assets\u002Fclips\u002Fqa.gif\" alt=\"QA agent answering demo\" width=\"100%\">\u003Cbr>\n      Streams cited answers over SSE. Smart router picks semantic or graph per question.\n    \u003C\u002Ftd>\n    \u003Ctd width=\"33%\" align=\"center\" valign=\"top\">\n      \u003Cstrong>MCP Server\u003C\u002Fstrong>\u003Cbr>\u003Cbr>\n      \u003Cimg src=\"assets\u002Fclips\u002Fmcp.gif\" alt=\"MCP server querying from Claude Code demo\" width=\"100%\">\u003Cbr>\n      Plug Claude Code \u002F Cursor into your knowledge base — 16 tools, per-agent auth.\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n---\n\n## 🏗️ Architecture\n\nConversations from any supported platform flow into a unified ingestion pipeline that produces two complementary memory systems — a **3-tier semantic store** (channel \u002F topic \u002F atomic fact) for fast hybrid search, and a **graph store** that extracts entities and their relationships. Those memories fuel two consumer surfaces: the **LLM Wiki** (distilled, auto-maintained) and **QA Agents** (served through the dashboard directly, or through **MCP** into Claude Code \u002F Cursor).\n\n\u003Cp align=\"center\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets\u002Farchitecture-dark.png\" \u002F>\n    \u003Cimg src=\"assets\u002Farchitecture.png\" alt=\"Beever Atlas architecture — chat platforms → memory ingestion → 3-tier semantic memory + graph memory → LLM Wiki and QA Agent → Dashboard and MCP clients\" width=\"60%\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\u003Cem>From chat platforms to MCP agents — one ingestion path, two memory systems, two delivery surfaces.\u003C\u002Fem>\u003C\u002Fp>\n\nUnder the hood, three services (backend, bot, frontend) are backed by four data stores (Weaviate, Neo4j, MongoDB, Redis). See the [architecture overview](https:\u002F\u002Fdocs.beever.ai\u002Fatlas\u002Fconcepts\u002Farchitecture) on the documentation site for the full design — component responsibilities, dual-memory internals, and the smart query router.\n\n---\n\n## 💡 Why Wiki-First RAG?\n\nMost RAG systems answer questions by retrieving raw message snippets and feeding them straight to an LLM. Beever Atlas takes a different approach: it continuously distils conversations into a structured, auto-maintained wiki — with topic pages, entity graphs, decisions, and citations — before any query is issued. When you ask a question, the retrieval layer works against clean, deduplicated knowledge rather than noisy chat history. This means answers are more consistent, citations are traceable to source messages, and the wiki itself becomes a useful artifact your team can browse independently of the Q&A interface. The dual-memory architecture (semantic + graph) lets the query router pick the right retrieval strategy per question, keeping latency low and context precise.\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"assets\u002Fwiki-preview.png\" alt=\"Beever Atlas wiki view — auto-generated overview with concept map, topics, FAQ, glossary, and resources, built from Slack messages\" width=\"85%\" \u002F>\n\u003C\u002Fdiv>\n\u003Cp align=\"center\">\u003Cem>A live auto-generated channel wiki: overview, concept map, topics, FAQ, glossary — distilled from 246 Slack messages, not hand-written.\u003C\u002Fem>\u003C\u002Fp>\n\n### The inspiration: LLMs read wikis, not chat logs\n\nThe per-channel wiki concept is directly inspired by [Andrej Karpathy's observation](https:\u002F\u002Fx.com\u002Fkarpathy\u002Fstatus\u002F2039805659525644595) that LLMs are far better at reasoning over curated, encyclopedic content (books, docs, wikis) than over raw conversational transcripts. Chat history is noisy, redundant, temporally scattered, and full of implicit context that only humans resolve. A wiki, by contrast, is the *already-distilled* form of that knowledge — deduplicated, structured, citation-bearing, and organised by topic rather than by timestamp.\n\nBeever Atlas operationalises this insight: every synced channel gets its own **auto-generated, continuously-updated wiki** — sections for topics, entities, decisions, open questions, and timelines — rebuilt incrementally as new messages arrive. The QA agent retrieves against this wiki first, falling back to raw messages only when a fact hasn't been distilled yet.\n\n### What this unlocks in practice\n\n- **Better answers, fewer hallucinations** — retrieval operates on fact-dense prose with explicit entity relationships, not on fragmented turn-by-turn chat.\n- **Traceable citations** — every wiki claim links back to the source messages that produced it, so answers are auditable all the way down to the original Slack\u002FDiscord\u002FTeams thread.\n- **A browsable artifact, not just a Q&A box** — the wiki is useful *on its own*. New teammates onboarding to a channel can read the distilled wiki instead of scrolling three months of history.\n- **Cheaper inference at query time** — the expensive distillation work happens once, at ingestion. Queries hit compact, pre-digested context instead of re-summarising raw logs on every request.\n- **Graph-aware reasoning** — the entity graph built alongside the wiki lets the query router answer relational questions (\"who worked on X with Y?\") that pure vector RAG struggles with.\n\nFor a detailed comparison with other LLM knowledge tools, see [the comparison page](https:\u002F\u002Fdocs.beever.ai\u002Fatlas\u002Fcomparison) on the documentation site.\n\n---\n\n## 🚀 Quick Start\n\nBeever Atlas ships as a Docker Compose stack (backend + bot + web + 4 datastores). You can try a seeded demo in 30 seconds with zero keys, then pick one of **three deployment options** to install it for real.\n\n### 1. Get the code\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fbeever-ai\u002Fbeever-atlas.git\ncd beever-atlas\n```\n\n### 2. Try the demo first (optional, no keys needed for seeding)\n\n```bash\nmake demo\n```\n\n`make demo` brings up the full stack pre-loaded with a public Wikipedia corpus (Ada Lovelace + Python history). Seeding uses pre-computed fixtures — no API keys required. Asking questions via `\u002Fapi\u002Fask` needs a free-tier `GOOGLE_API_KEY` because the QA agent calls Gemini. See [demo\u002FREADME.md](demo\u002FREADME.md) for curl examples.\n\nSkip this step if you're ready to install for real.\n\n### 3. Before you start: get your API keys\n\nTwo free keys are required before installing. Both offer generous free tiers — enough to sync a small team's channels for testing.\n\n| Key | Purpose | Where to get it |\n|---|---|---|\n| `GOOGLE_API_KEY` | Gemini — extraction, entity graph, answers | [aistudio.google.com\u002Fapikey](https:\u002F\u002Faistudio.google.com\u002Fapikey) |\n| `JINA_API_KEY` | Jina v4 embeddings (2048-dim) for semantic search | [jina.ai\u002Fapi-dashboard](https:\u002F\u002Fjina.ai\u002Fapi-dashboard\u002F) |\n\nOptional (skip unless you know you need them):\n\n| Key | What it enables |\n|---|---|\n| `TAVILY_API_KEY` | External web search when QA retrieval confidence is low — [tavily.com](https:\u002F\u002Ftavily.com\u002F) |\n| Slack \u002F Discord \u002F Teams bot tokens | **Configured via the web UI after setup**, not `.env` — the bot stores platform credentials encrypted in MongoDB |\n\n> **Tip:** Keep the two required keys handy before you start. Option 1 prompts for them interactively; Options 2 and 3 need them pasted into `.env`.\n\n### 4. Choose a deployment option\n\n| Option | When to use | Time to \"up\" |\n|---|---|---|\n| **1. One-line install** (recommended) | You want the fastest path to a running stack. | ~2 min first run |\n| **2. Manual Docker** | CI\u002FCD, ops environments, or when you want explicit control over every step. | ~3 min first run |\n| **3. Local development** | Active contributors who need hot-reload on backend and frontend. | varies |\n\n### Option 1 — One-line install (recommended)\n\n```bash\n.\u002Fatlas\n```\n\nThe `atlas` installer walks you through a guided 4-step checklist:\n\n1. **Required LLM keys** — prompts for `GOOGLE_API_KEY` (Gemini) and `JINA_API_KEY` (embeddings); press Enter to skip either.\n2. **Optional integrations** — Tavily web search, Ollama, MCP server for Claude Code \u002F Cursor.\n3. **Graph backend** — Neo4j (default) or skip.\n4. **Auth tokens** — keep dev defaults or rotate now.\n\nUnder the hood it verifies `docker` + `docker compose`, copies `.env.example` → `.env` (preserves your values on re-run, `chmod 600`), auto-generates `CREDENTIAL_MASTER_KEY` (64 hex) and `WEAVIATE_API_KEY` (32 hex), runs a port-conflict preflight, launches the stack via `docker compose up -d --build --force-recreate --remove-orphans`, and polls `\u002Fapi\u002Fhealth` before printing the ready card.\n\nWhen you see **\"Beever Atlas is ready\"**, open **[http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000)**.\n\nFor CI or unattended installs — skip prompts, pre-seed keys from shell env:\n\n```bash\nGOOGLE_API_KEY=... JINA_API_KEY=... .\u002Fatlas --non-interactive\n```\n\nRe-running `.\u002Fatlas` on an existing stack is idempotent.\n\n### Option 2 — Manual Docker\n\nFull control, step-by-step.\n\n```bash\ncp .env.example .env\n```\n\nOpen `.env` and fill in the two required keys:\n\n```env\nGOOGLE_API_KEY=your_gemini_key\nJINA_API_KEY=your_jina_key\n```\n\nGenerate two required secrets and paste them into `.env`:\n\n```bash\n# CREDENTIAL_MASTER_KEY — AES-256-GCM key for stored platform credentials (64 hex chars)\npython -c \"import secrets; print(secrets.token_hex(32))\"\n\n# WEAVIATE_API_KEY — auth between backend and Weaviate (required by docker-compose)\npython -c \"import secrets; print(secrets.token_hex(16))\"\n```\n\nLaunch:\n\n```bash\ndocker compose up -d --build\n```\n\nOpen **[http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000)**.\n\n**Services started:**\n\n| Service | Port | Description |\n|---|---|---|\n| Web (nginx) | `:3000` | React dashboard |\n| Backend | `:8000` | FastAPI + ADK agents |\n| Bot | `:3001` | Platform bridge (Slack \u002F Discord \u002F Teams) |\n| Weaviate | `:8080` | Semantic memory |\n| Neo4j | `:7474` \u002F `:7687` | Graph memory |\n| MongoDB | `:27017` | State + wiki cache |\n| Redis | `:6380` | Sessions (internal `:6379`) |\n\nFirst run takes 2–3 minutes while images build and databases initialize. Subsequent runs start in seconds.\n\n### Option 3 — Local development\n\nDatabases in Docker, app services native for hot-reload.\n\n**Prerequisites:** Python 3.12+ with [uv](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002F), Node.js 20+\n\n```bash\ncp .env.example .env\n# Fill in GOOGLE_API_KEY, JINA_API_KEY, CREDENTIAL_MASTER_KEY, WEAVIATE_API_KEY (same as Option 2)\n\n# Start just the databases\ndocker compose up -d weaviate neo4j mongodb redis\n\n# Backend (terminal 1)\nuv sync\nuv run uvicorn beever_atlas.server.app:app --reload --port 8000\n\n# Bot (terminal 2)\ncd bot && npm install && npm run dev\n\n# Web (terminal 3) — Vite dev server with HMR\ncd web && npm install && npm run dev\n```\n\nOpen **[http:\u002F\u002Flocalhost:5173](http:\u002F\u002Flocalhost:5173)** (the Vite dev port — **not** `:3000`).\n\nThe Vite dev server proxies `\u002Fapi\u002F*` to `http:\u002F\u002Flocalhost:8000` (configured via `VITE_API_URL`).\n\n### Before going to production\n\n`.env.example` defaults are tuned for local testing. Before any real deploy, rotate the secrets that ship with placeholder values and flip the environment flag:\n\n| What to change | Why | How |\n|---|---|---|\n| `BEEVER_API_KEYS`, `BEEVER_ADMIN_TOKEN` | Ship as `dev-key-change-me` \u002F `dev-admin-change-me` — public placeholders | `python -c \"import secrets; print(secrets.token_hex(24))\"` per token |\n| `BRIDGE_API_KEY` | Shared secret between backend and bot; blank by default, required outside local dev | Same `secrets.token_hex(24)` |\n| `VITE_BEEVER_API_KEY`, `VITE_BEEVER_ADMIN_TOKEN` | Vite bakes these into the web bundle at build time — must mirror the rotated backend values above | Copy the rotated `BEEVER_API_KEYS` \u002F `BEEVER_ADMIN_TOKEN` values |\n| `NEO4J_PASSWORD` + password half of `NEO4J_AUTH` | Dev password is public in this repo | Pick a strong password; both values must match |\n| `BEEVER_ENV=production` | Enables fail-fast startup that rejects every dev default above | Flip the value in `.env` |\n\nOption 1 (`.\u002Fatlas`) handles all of this through the **\"Rotate auth tokens\"** prompt in step 4 of the checklist — answer **Y** and the installer generates random tokens and mirrors the VITE_* values for you. If you used Option 2 or 3, you can re-run `.\u002Fatlas` on the existing `.env`, skip every other prompt with Enter, and only accept the rotation prompt.\n\n### 5. Open the dashboard\n\nNavigate to the URL for your chosen option:\n\n- **Options 1 & 2** → **[http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000)**\n- **Option 3** → **[http:\u002F\u002Flocalhost:5173](http:\u002F\u002Flocalhost:5173)**\n\nFrom there:\n\n- **Real mode** (default, `ADAPTER_MOCK=false`): connect a workspace in **Settings → Connections** — Slack \u002F Discord \u002F Teams tokens are entered through the UI, not `.env`.\n- **Mock mode** (`ADAPTER_MOCK=true`): uses fixture data — opt in for local UI iteration without platform credentials.\n\n### 6. Sync a channel\n\nFrom the dashboard: **Connections → Add Workspace → Select channels → Sync**.\n\nOr via API (auto-extracts your bearer token from `.env`):\n\n```bash\ncurl -X POST http:\u002F\u002Flocalhost:8000\u002Fapi\u002Fchannels\u002FC12345\u002Fsync \\\n  -H \"Authorization: Bearer $(grep -E '^BEEVER_API_KEYS=' .env | cut -d= -f2 | cut -d, -f1)\"\n```\n\n### MCP server (for external AI agents)\n\nBeever Atlas exposes a curated MCP (Model Context Protocol) server at `\u002Fmcp` for AI agents like Claude Code and Cursor. This allows external code assistants to query your team's knowledge base without using the dashboard.\n\nSee [docs\u002Fmcp-server.md](docs\u002Fmcp-server.md) for:\n- **Tool catalog** — 16 tools for discovery, retrieval, graph traversal, and long-running operations\n- **Auth setup** — generating and managing `BEEVER_MCP_API_KEYS`\n- **Client configuration** — ready-to-use `.mcp.json` templates for Claude Code and Cursor\n- **Rate limits** — principal-keyed limits to prevent one agent from throttling others\n\nQuick example (Claude Code):\n```json\n{\n  \"mcpServers\": {\n    \"beever-atlas\": {\n      \"url\": \"https:\u002F\u002Fatlas.example.com\u002Fmcp\",\n      \"transport\": \"streamable-http\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${BEEVER_MCP_KEY}\"\n      }\n    }\n  }\n}\n```\n\n### Common commands\n\n```bash\ndocker compose up -d                     # Start in background\ndocker compose logs -f beever-atlas      # Tail backend logs\ndocker compose down                      # Stop (keeps data)\ndocker compose down -v                   # Stop and DELETE all indexed data\nmake demo                                # Full stack + seeded demo corpus\nmake docker-up                           # Shortcut for `docker compose up -d`\n```\n\n---\n\n## 🔒 Privacy & Telemetry\n\nBeever Atlas collects no telemetry. No usage data, error reports, or analytics are sent anywhere by default. All LLM calls go through API keys you configure in your own `.env`, and all data stays in the databases you control.\n\n---\n\n## 📐 API Stability\n\nAll `\u002Fapi\u002F*` endpoints are **UNSTABLE** in 0.1.0. v0.2.0 will introduce a `\u002Fapi\u002Fv1\u002F*` prefix; clients pinning current paths will break. See [SECURITY.md](SECURITY.md).\n\n---\n\n## 💬 Community & Contact\n\n- **Discord**: [discord.gg\u002FVshBCUUX](https:\u002F\u002Fdiscord.gg\u002FVshBCUUX) — get help, share what you're building, talk to the team\n- **X \u002F Twitter**: [@Beever_AI](https:\u002F\u002Fx.com\u002FBeever_AI) — release notes, posts, announcements\n- **Website**: [beever.ai](https:\u002F\u002Fbeever.ai\u002F) — about the company and other projects\n- **GitHub Discussions**: [github.com\u002FBeever-AI\u002Fbeever-atlas\u002Fdiscussions](https:\u002F\u002Fgithub.com\u002FBeever-AI\u002Fbeever-atlas\u002Fdiscussions) — longer-form questions and ideas\n\nCommercial support, partnerships, or press: `tech@beever.ai`.\n\n---\n\n## 📜 License\n\n[Apache License 2.0](LICENSE) © 2026 Beever Atlas contributors. Third-party attributions in [NOTICE](NOTICE).\n\nSecurity policy: [SECURITY.md](SECURITY.md) | Community standards: [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)\n\n","Beever Atlas 是一个基于大语言模型的自动维护知识库系统，能够将团队在Slack、Discord、Microsoft Teams和Mattermost上的聊天记录转换成结构化的wiki页面。该项目利用Python编写，支持自然语言查询，并通过引用原始消息提供答案。它还具备跨平台连接能力，可以从多个聊天工具中提取信息并进行去重与聚类处理，形成以话题为中心的知识图谱。适用于需要从日常沟通中自动构建和维护内部知识文档的企业或组织，特别适合那些希望提高信息检索效率同时减少手动整理工作量的场景。",2,"2026-06-11 02:42:57","CREATED_QUERY"]