rekipedia 0.17.30 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +109 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -119,6 +119,34 @@ Claude Code and Cursor will automatically discover this config. The agent can th
|
|
|
119
119
|
- `get_relationships` — dependency graph queries
|
|
120
120
|
- `get_hub_nodes` — architectural hotspots
|
|
121
121
|
- `get_impact` — change impact analysis
|
|
122
|
+
- `list_wiki_pages` — enumerate all wiki pages
|
|
123
|
+
- `get_wiki_page` — read a specific wiki page by name
|
|
124
|
+
---
|
|
125
|
+
## AI CLI tool integration
|
|
126
|
+
|
|
127
|
+
rekipedia integrates natively with the major AI coding assistants via MCP (Model Context Protocol). After scanning your codebase, run:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
reki init --with-all-ai # configure Copilot + Codex + Cursor in one step
|
|
131
|
+
# or pick individually:
|
|
132
|
+
reki init --with-copilot # GitHub Copilot (VS Code) — writes .vscode/mcp.json
|
|
133
|
+
reki init --with-codex # Codex CLI — writes .codex/instructions.md + setup hint
|
|
134
|
+
reki init --with-cursor # Cursor — writes .cursor/mcp.json + rules
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Once configured, each tool automatically gets access to these rekipedia MCP tools:
|
|
138
|
+
|
|
139
|
+
| MCP Tool | What it does |
|
|
140
|
+
|---|---|
|
|
141
|
+
| `ask` | Natural-language Q&A grounded in the scanned wiki |
|
|
142
|
+
| `search_nodes` | Fast symbol lookup by name |
|
|
143
|
+
| `get_context` | Symbols and relationships for a file |
|
|
144
|
+
| `get_relationships` | Callers and callees for a symbol |
|
|
145
|
+
| `get_hub_nodes` | Architectural chokepoints |
|
|
146
|
+
| `get_impact` | Blast-radius for a changed file |
|
|
147
|
+
| `get_knowledge_gaps` | Untested high-call-count symbols |
|
|
148
|
+
| `list_wiki_pages` | List all wiki pages |
|
|
149
|
+
| `get_wiki_page` | Read a specific wiki page by name |
|
|
122
150
|
|
|
123
151
|
---
|
|
124
152
|
|
|
@@ -151,7 +179,12 @@ export REKIPEDIA_MODEL=ollama/llama3
|
|
|
151
179
|
| `reki update . --impact-only` | Incremental update, affected pages only |
|
|
152
180
|
| `reki serve .` | Local web UI at `http://127.0.0.1:7070` |
|
|
153
181
|
| `reki embed .` | Build FAISS semantic index |
|
|
154
|
-
| `reki
|
|
182
|
+
| `reki publish . [--output-dir PATH]` | Publish wiki to a git-tracked directory for team sharing |
|
|
183
|
+
| `reki export . --format bundle` | Export a content-addressed wiki bundle for team sync |
|
|
184
|
+
| `reki merge <bundle-A> <bundle-B> [--base BASE]` | Three-way wiki merge — conflict-free team sync |
|
|
185
|
+
| `reki pull [URL]` | Fetch and merge a remote wiki bundle (HTTPS/S3/GCS) |
|
|
186
|
+
| `reki watch . --publish` | Auto-index + auto-publish wiki on every file save |
|
|
187
|
+
| `reki export . --format md\|zip\|json\|html\|bundle` | Export the wiki |
|
|
155
188
|
| `reki diff` | Show impact of uncommitted changes |
|
|
156
189
|
| `reki hotspots` | Hub & bridge node detection |
|
|
157
190
|
| `reki refactor . --dry-run` | Preview refactor suggestions |
|
|
@@ -160,14 +193,87 @@ export REKIPEDIA_MODEL=ollama/llama3
|
|
|
160
193
|
| `reki review` | LLM-powered PR review |
|
|
161
194
|
| `reki watch .` | Auto-index on file change |
|
|
162
195
|
| `reki hook install` | Install git post-commit hook |
|
|
196
|
+
| `reki init --with-all-ai` | Configure MCP for GitHub Copilot, Codex CLI, and Cursor in one step |
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## FAQ
|
|
201
|
+
|
|
202
|
+
### Q: Why is `store.db` gitignored? How do teammates use rekipedia?
|
|
203
|
+
|
|
204
|
+
`store.db` is a binary SQLite file containing machine-specific absolute paths — committing it would cause path mismatches on other machines and create noisy binary diffs. Each developer runs `reki scan .` locally to build their own store. To share the human-readable output with your team, use `reki publish .`, which copies the generated wiki pages to `docs/wiki/` so they can be committed and browsed in your repo or docs site.
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
### Q: What is `store.db` for vs the FAISS index? Why do I need both?
|
|
209
|
+
|
|
210
|
+
They serve distinct purposes and are not interchangeable. `store.db` is a structured SQLite graph: it stores symbols, relationships, file manifests, and scan run history — the kind of data you query with precise filters ("find all callers of function X"). The FAISS index (built by `reki embed .`) stores dense embedding vectors for every chunk of your codebase, enabling fuzzy semantic search ("find code that handles authentication"). `reki ask` uses both together: BM25 keyword search over SQLite and vector similarity search over FAISS, then merges the results.
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
### Q: Can I use Postgres, MySQL, or another database instead of SQLite?
|
|
215
|
+
|
|
216
|
+
Not currently. SQLite is the only supported backend for the structured symbol/relationship store, and it is intentional — SQLite is zero-config, portable, and requires no running server, which keeps `reki scan` self-contained. The `reki export .` command produces JSON exports (`symbols.json`, `relationships.json`) you can load into any database. Postgres/MySQL support is not on the roadmap, but the JSON exports make integration with your own tooling straightforward.
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
### Q: Does rekipedia support Qdrant or Chroma instead of FAISS?
|
|
221
|
+
|
|
222
|
+
Yes. FAISS is the default vector backend, but Qdrant and Chroma are both supported as optional backends. Qdrant and Chroma are useful when you want a persistent, server-hosted vector store shared across machines — unlike the local FAISS index, a running Qdrant or Chroma instance can be queried by your whole team without each person running `reki embed`. Install the relevant extras (`pip install rekipedia[qdrant]` or `rekipedia[chroma]`) and configure the backend in `.rekipedia/config.yml`.
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
### Q: Do I need an OpenAI API key?
|
|
227
|
+
|
|
228
|
+
No. rekipedia can run entirely without an LLM using the `--no-llm` flag — `reki scan . --no-llm` performs static analysis only, producing the symbol graph and wiki structure without AI-generated summaries. When you do want richer summaries and Q&A, rekipedia supports OpenAI, Anthropic, Ollama (local), Azure OpenAI, and any OpenAI-compatible endpoint. For fully offline usage, point it at a local [Ollama](https://ollama.com) instance — no internet required.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
### Q: How do I share the wiki with my team without everyone running `reki scan`?
|
|
233
|
+
|
|
234
|
+
Use `reki publish .`. This command copies the generated `wiki/*.md` and `diagrams/*.md` files into `docs/wiki/` (not gitignored), which can be committed and browsed directly in GitHub, your docs site, or any Markdown viewer — no local scan required. The best setup is to automate publishing in CI so the wiki stays current whenever the main branch changes (see the GitHub Actions question below).
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
### Q: How do I keep the wiki up to date automatically?
|
|
239
|
+
|
|
240
|
+
Run `reki init --with-ci` to scaffold a GitHub Actions workflow (`.github/workflows/rekipedia-wiki.yml`) that runs `reki scan`, then `reki publish` on every push to `main`. The workflow commits any changes to `docs/wiki/` back to the repo automatically. Set `REKIPEDIA_API_KEY` as a repository secret for LLM-enriched pages; omit it and the workflow falls back to `--no-llm` mode at zero cost.
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
### Q: How does team sync work for distributed teams?
|
|
245
|
+
|
|
246
|
+
rekipedia's team sync is a multi-layer system for conflict-free wiki collaboration:
|
|
247
|
+
|
|
248
|
+
1. **Bundle** — `reki export --format bundle` creates a deterministic, content-addressed snapshot with a stable `bundle_id` and per-page hash trailers.
|
|
249
|
+
2. **Merge** — `reki merge bundle-A bundle-B --base bundle-base` performs a three-way merge: pages changed by only one developer are accepted automatically; only genuinely divergent pages produce conflict markers.
|
|
250
|
+
3. **Git merge driver** — `reki init --with-merge-driver` registers a git merge driver so `git merge` and `git pull` automatically use rekipedia's merge logic — no `<<<<<<` conflicts in generated wiki files.
|
|
251
|
+
4. **Live sync** — `reki watch . --publish` publishes the wiki after every incremental update, keeping `docs/wiki/` in sync as you code. Set `team.sync_dir` in `.rekipedia/config.yml` for the default target.
|
|
252
|
+
5. **Remote pull** — `reki pull <url>` fetches a bundle from HTTPS, S3, or GCS and merges it locally. Combine with `reki init --with-ci --with-upload s3` to have CI upload a fresh bundle after every main-branch push.
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
### Q: How does `reki ask` actually work under the hood?
|
|
257
|
+
|
|
258
|
+
`reki ask "question"` runs a hybrid retrieval pipeline. First, it executes a BM25 keyword search against the SQLite store to find exact and near-exact symbol/token matches. In parallel, it encodes your question into an embedding vector and queries the FAISS (or Qdrant/Chroma) index for semantically similar chunks. The two result sets are merged and re-ranked by relevance score, then the top chunks are passed as context to your configured LLM, which synthesises a final answer with file:line citations. With `--no-llm`, retrieval results are returned directly without synthesis.
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
### Q: How large does `store.db` / the FAISS index get on a large repo?
|
|
263
|
+
|
|
264
|
+
For a typical mid-size repo (50k–200k lines of code), `store.db` is usually 10–80 MB. The FAISS index in `.rekipedia/rag/` scales with the number of embedded chunks — expect 50–500 MB for the same size range, which is why `rag/` is gitignored by default. On very large monorepos (1M+ LOC), the FAISS index can exceed 1 GB; in that case, switching to a server-backed Qdrant instance is recommended so the index lives outside your working directory.
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
### Q: Can rekipedia scan private or fully offline repos?
|
|
269
|
+
|
|
270
|
+
Yes, fully. `reki scan` is pure static analysis — it never sends your source code anywhere. With `--no-llm`, the entire pipeline is offline and air-gap safe. When LLM features are enabled, only retrieved *chunks* (not your full source) are sent to the LLM provider as context; if you use Ollama, even that stays local. There are no telemetry calls, no license checks against a remote server, and no requirement for internet access beyond reaching your chosen LLM API endpoint.
|
|
163
271
|
|
|
164
272
|
---
|
|
165
273
|
|
|
166
274
|
## Coming Soon
|
|
167
275
|
|
|
168
276
|
- **Hosted wiki** — share your knowledge base with a link, no self-hosting required
|
|
169
|
-
- **Team sync** — collaborative wiki with conflict-free merge for distributed teams
|
|
170
|
-
- **GitHub Action** — auto-update wiki on every push
|
|
171
277
|
- **VS Code extension** — inline `reki ask` from your editor
|
|
172
278
|
|
|
173
279
|
---
|
package/package.json
CHANGED