threepp
A cross-platform C++20 3D library with Python bindings and the high-level API of three.js.
Tacit syncs your team's GitHub, Slack and Notion into your own Neo4j and serves it to Claude and Cursor through a local MCP server. Open source; we host no team data.
Developer toolsPython · TypeScriptGitHub @PhaseYonOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Your team’s memory, wired into every AI tool. Syncs Slack, GitHub & Notion into a permission-aware knowledge graph, searchable via hybrid GraphRAG and exposed to Claude & Cursor over MCP.
Taken from the repository README
Loading the full README.
Read the full README ↗Your team's memory, wired into every AI tool.
Tacit syncs your team's GitHub, Slack and Notion into a time-aware knowledge graph that your team owns, and serves it to Claude, Cursor and Claude Code through a local MCP server. Ask "why did we do X, who decided, and where's the evidence?" and get an answer with links to the exact PRs, threads and pages.
tacit on their own machine: sync, indexing and
the MCP server all run locally. The only shared piece is your team's Neo4j (Aura Free
or your own server). We host nothing and never see your data.search never calls an LLM. Your AI client writes the
answer; Tacit returns the evidence.tacit log answers "who looked at what". Each teammate's machine Your team's Neo4j
┌──────────────────────────────────────────────┐ ┌─────────────────────────────┐
│ Claude / Cursor ──stdio──▶ tacit mcp │ │ docs + chunks (search) │
│ (search, get_doc) │ │ graph facts (optional) │
│ tacit sync ──▶ GitHub / Slack / Notion │──Bolt──▶│ scope, cursors, write lease │
│ (your own tokens, only what's in scope) │ │ access log │
└──────────────────────────────────────────────┘ └─────────────────────────────┘
uv tool install git+https://github.com/PhaseYon/tacit
tacit init # your team's Neo4j URI + password, your email
tacit auth github && tacit scope add github:acme/api
tacit sync
tacit mcp install --client claude # or cursor / claude-code
Full walkthrough, including Slack, Notion and graph facts: docs/quickstart.md.
Tacit is built for small, high-trust teams:
--private; DMs are never synced.| Command | What it does |
|---|---|
tacit init | Connect to the team graph and prepare it (safe to re-run) |
tacit auth github|slack|notion|anthropic|openai | Store a token (keychain, or a 0600 file) |
tacit scope add|ls|rm | What the graph syncs |
tacit sync [--extract] [--max-usd N] [--watch MIN] | Pull new and changed items |
tacit search "…" [--as-of DATE] [--json] | Hybrid search with citations, no LLM |
tacit get <url> | Full stored text of a cited item |
tacit log [--who] [--since] [--grep] | Who read or wrote what |
tacit forget <url> | Remove one item and its graph facts |
tacit mcp / tacit mcp install | Local MCP server / client config |
tacit doctor | Check config, secrets, database and tokens |
52 "why" questions over the fictional Larkspur Labs company (demo/), local bge-small embeddings, k = 10. Retrieval costs $0; building the graph (124 items → 746 facts, 213 entities) cost $1.37 with Claude Haiku 5.5. Repeated runs give identical retrieval numbers.
| arm | recall@10 | evidence found | MRR |
|---|---|---|---|
| vector-only RAG | 0.942 | 0.837 | 0.711 |
| hybrid (RRF) | 0.962 | 0.849 | 0.704 |
| graph facts only | 0.846 | 0.700 | 0.515 |
| hybrid + graph facts | 0.962 | 0.889 | 0.605 |
Caveats, in full in benchmark/README.md:
uv sync
docker compose --profile test up -d --wait neo4j-test # throwaway Neo4j on :7688
uv run pytest -q
uv run ruff check . && uv run ruff format --check .
docker compose up -d neo4j starts a persistent local Neo4j on :7687 for trying Tacit
solo. The previous hosted architecture (Next.js, FastAPI, Celery, Postgres RLS, OAuth
MCP) is preserved at tag v0-hosted.
Apache 2.0