rekipedia 0.22.0 → 0.23.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 +184 -121
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,25 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=6,11,20&height=170§ion=header&text=rekipedia&fontSize=52&fontColor=ffffff&fontAlignY=38&desc=Turn+any+repo+into+an+AI-ready+knowledge+base&descAlignY=58&descSize=14" alt="Header"/>
|
|
4
|
+
|
|
5
|
+
[](https://pypi.org/project/rekipedia/)
|
|
6
|
+
[](https://www.python.org/)
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
[](https://modelcontextprotocol.io)
|
|
9
|
+
|
|
10
|
+
</div>
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
1
14
|
# rekipedia
|
|
2
15
|
|
|
3
|
-
**
|
|
16
|
+
> **One scan. A living wiki. AI agents that actually know your code.**
|
|
17
|
+
>
|
|
18
|
+
> Parse any codebase into a structured SQLite knowledge store, auto-generate wiki pages, and expose everything via CLI and an MCP stdio server — with file:line citations and zero hallucinations.
|
|
4
19
|
|
|
5
|
-
[](https://pypi.org/project/rekipedia/)
|
|
20
|
+
[](https://pypi.org/project/rekipedia/)
|
|
21
|
+
[](https://www.python.org/)
|
|
22
|
+
[](LICENSE)
|
|
6
23
|
|
|
7
24
|
---
|
|
8
25
|
|
|
@@ -13,19 +30,21 @@
|
|
|
13
30
|
| "Where does the auth logic live?" | `reki ask "how does auth work?"` → `src/auth.py:42` |
|
|
14
31
|
| Onboarding new devs takes days | `reki onboard .` generates a guided walkthrough in seconds |
|
|
15
32
|
| AI agents hallucinate about your codebase | `reki mcp` gives agents a grounded knowledge base with citations |
|
|
16
|
-
| Refactor anxiety | `reki hotspots` surfaces hub
|
|
33
|
+
| Refactor anxiety — will this break everything? | `reki hotspots` surfaces hub and bridge nodes before you touch anything |
|
|
17
34
|
| Wiki goes stale immediately | `reki watch .` auto-reindexes on every file save |
|
|
18
35
|
|
|
19
36
|
---
|
|
20
37
|
|
|
21
38
|
## ⚡ Quickstart
|
|
22
39
|
|
|
40
|
+
### Install
|
|
41
|
+
|
|
23
42
|
```bash
|
|
24
43
|
pip install rekipedia
|
|
25
44
|
# or: npx rekipedia
|
|
26
45
|
```
|
|
27
46
|
|
|
28
|
-
###
|
|
47
|
+
### Scan & Ask (with LLM)
|
|
29
48
|
|
|
30
49
|
```bash
|
|
31
50
|
export REKIPEDIA_MODEL=gemini/gemini-2.5-flash
|
|
@@ -34,9 +53,48 @@ reki scan .
|
|
|
34
53
|
reki ask "how does authentication work?"
|
|
35
54
|
```
|
|
36
55
|
|
|
56
|
+
### Scan without LLM (zero config, no API key)
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
reki scan . --no-llm
|
|
60
|
+
reki ask "what is the entry point?" --no-llm
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 🏗️ Architecture & Data Storage
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
.rekipedia/
|
|
69
|
+
│
|
|
70
|
+
├── store.db # 🗃️ Structured SQLite graph
|
|
71
|
+
│ └── symbols, relationships, file manifests, scan history
|
|
72
|
+
│
|
|
73
|
+
├── rag/
|
|
74
|
+
│ └── faiss.index # 🔍 Dense embedding vectors (FAISS / Qdrant / Chroma)
|
|
75
|
+
│
|
|
76
|
+
├── wiki/
|
|
77
|
+
│ └── *.md # 📄 Auto-generated wiki pages per module
|
|
78
|
+
│
|
|
79
|
+
├── diagrams/
|
|
80
|
+
│ └── *.md # 🏛️ Architecture diagrams & hotspot reports
|
|
81
|
+
│
|
|
82
|
+
└── config.yml # ⚙️ Backend, LLM, and team-sync settings
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Storage at a Glance
|
|
86
|
+
|
|
87
|
+
| Layer | Format | Purpose | Size (typical 50k–200k LOC repo) |
|
|
88
|
+
|---|---|---|---|
|
|
89
|
+
| **SQLite** | `store.db` | Structured graph — symbols, callers, exact lookup | ~10–80 MB |
|
|
90
|
+
| **Vector** | `.rekipedia/rag/` | Dense embeddings for semantic / fuzzy search | ~50–500 MB |
|
|
91
|
+
| **Wiki** | `wiki/*.md` | Human-readable pages, git-publishable | ~1–5 MB |
|
|
92
|
+
|
|
93
|
+
> **Gitignore note:** `store.db` and `rag/` are gitignored — they contain machine-specific absolute paths. Each developer runs `reki scan .` locally. Share human-readable output via `reki publish .`.
|
|
94
|
+
|
|
37
95
|
---
|
|
38
96
|
|
|
39
|
-
##
|
|
97
|
+
## 🚀 Core Features
|
|
40
98
|
|
|
41
99
|
### 🗂 `reki scan` — Instant knowledge store
|
|
42
100
|
|
|
@@ -45,19 +103,21 @@ Parses your repo into a SQLite knowledge store with symbols, relationships, and
|
|
|
45
103
|
```bash
|
|
46
104
|
reki scan . # full scan with LLM summaries
|
|
47
105
|
reki scan . --no-llm # zero config, no API key required
|
|
106
|
+
reki scan . --community-sharding # group related files by import-graph community before summarising
|
|
48
107
|
```
|
|
49
108
|
|
|
50
109
|
### 💬 `reki ask` — Q&A grounded in your code
|
|
51
110
|
|
|
52
|
-
Answers
|
|
111
|
+
Answers with **file:line citations and real code examples**. No hallucinations — every answer is backed by indexed source, with actual function bodies quoted inline.
|
|
53
112
|
|
|
54
113
|
```bash
|
|
55
114
|
reki ask "what is the entry point?"
|
|
56
115
|
reki ask "which modules handle payments?" --brief
|
|
57
116
|
```
|
|
58
117
|
|
|
118
|
+
**Example output:**
|
|
59
119
|
```
|
|
60
|
-
Answer: The entry point is src/main.py:12 —
|
|
120
|
+
Answer: The entry point is src/main.py:12 — App.run() bootstraps the server.
|
|
61
121
|
|
|
62
122
|
```python
|
|
63
123
|
# src/main.py:12
|
|
@@ -69,28 +129,42 @@ def run(self):
|
|
|
69
129
|
Sources: src/main.py:12, src/server.py:34
|
|
70
130
|
```
|
|
71
131
|
|
|
72
|
-
**How it works:** rekipedia extracts
|
|
132
|
+
**How it works:** rekipedia extracts actual source bodies of the most relevant functions/classes and passes them directly to the LLM — so answers include real, runnable code, not just paraphrases. When a FAISS index exists (`reki embed .`), RAG chunks are used for even higher precision.
|
|
73
133
|
|
|
74
134
|
### 🤖 `reki mcp` — MCP server for AI agents
|
|
75
135
|
|
|
76
|
-
Plug rekipedia directly into Claude Code, Cursor, or any MCP-aware agent.
|
|
136
|
+
Plug rekipedia directly into Claude Code, Cursor, GitHub Copilot, or any MCP-aware agent.
|
|
77
137
|
|
|
78
138
|
```bash
|
|
79
139
|
reki mcp
|
|
80
140
|
```
|
|
81
141
|
|
|
82
|
-
Available tools
|
|
142
|
+
**Available MCP tools:**
|
|
143
|
+
|
|
144
|
+
| Tool | Purpose |
|
|
145
|
+
|---|---|
|
|
146
|
+
| `ask` | Natural-language Q&A grounded in the scanned wiki |
|
|
147
|
+
| `search_nodes` | Fast symbol/file lookup by name |
|
|
148
|
+
| `get_context` | Symbols and relationships for a file |
|
|
149
|
+
| `get_relationships` | Callers and callees for a symbol |
|
|
150
|
+
| `get_hub_nodes` | Architectural chokepoints |
|
|
151
|
+
| `get_god_nodes` | Top N symbols by combined in+out degree — find architectural bottlenecks instantly |
|
|
152
|
+
| `shortest_path` | BFS shortest directed call-path between any two symbols (e.g. "how does A reach B?") |
|
|
153
|
+
| `get_community` | Which import-graph community a symbol belongs to, plus all community members |
|
|
154
|
+
| `get_impact` | Blast-radius for a changed file |
|
|
155
|
+
| `get_knowledge_gaps` | Untested high-call-count symbols |
|
|
156
|
+
| `list_wiki_pages` / `get_wiki_page` | Wiki browsing |
|
|
83
157
|
|
|
84
158
|
### 🔥 `reki hotspots` — Architectural hotspot detection
|
|
85
159
|
|
|
86
|
-
Finds hub
|
|
160
|
+
Finds hub nodes (files many depend on) and bridge nodes (files connecting clusters).
|
|
87
161
|
|
|
88
162
|
```bash
|
|
89
163
|
reki hotspots
|
|
90
164
|
```
|
|
91
165
|
|
|
92
166
|
```
|
|
93
|
-
Hub nodes:
|
|
167
|
+
Hub nodes: src/core/engine.py (42 dependents)
|
|
94
168
|
Bridge nodes: src/adapters/db.py (connects 3 clusters)
|
|
95
169
|
```
|
|
96
170
|
|
|
@@ -102,203 +176,192 @@ Only regenerates wiki pages affected by your changes.
|
|
|
102
176
|
reki update . --impact-only
|
|
103
177
|
```
|
|
104
178
|
|
|
105
|
-
|
|
179
|
+
### 🌐 `reki serve` — Local web UI
|
|
180
|
+
|
|
181
|
+
Launch a browsable wiki at `http://127.0.0.1:7070`.
|
|
106
182
|
|
|
107
|
-
|
|
183
|
+
```bash
|
|
184
|
+
reki serve .
|
|
185
|
+
```
|
|
108
186
|
|
|
109
|
-
|
|
187
|
+
### 📤 `reki publish` — Team sharing
|
|
110
188
|
|
|
111
|
-
|
|
189
|
+
Copy generated wiki into a git-tracked directory for team browsing.
|
|
112
190
|
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
"mcpServers": {
|
|
116
|
-
"rekipedia": {
|
|
117
|
-
"command": "reki",
|
|
118
|
-
"args": ["mcp"],
|
|
119
|
-
"cwd": "."
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
191
|
+
```bash
|
|
192
|
+
reki publish . [--output-dir PATH]
|
|
123
193
|
```
|
|
124
194
|
|
|
125
|
-
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 🛠️ Commands Cheat Sheet
|
|
198
|
+
|
|
199
|
+
| Command | Description |
|
|
200
|
+
|---|---|
|
|
201
|
+
| `reki scan .` | Full scan — index symbols, generate wiki |
|
|
202
|
+
| `reki scan . --no-llm` | Scan without LLM, zero config |
|
|
203
|
+
| `reki ask "question"` | Ask anything about the codebase |
|
|
204
|
+
| `reki ask "question" --brief` | Short answer mode |
|
|
205
|
+
| `reki update . --impact-only` | Incremental update, affected pages only |
|
|
206
|
+
| `reki serve .` | Local web UI at `http://127.0.0.1:7070` |
|
|
207
|
+
| `reki embed .` | Build FAISS semantic index |
|
|
208
|
+
| `reki publish . [--output-dir PATH]` | Publish wiki to a git-tracked directory |
|
|
209
|
+
| `reki export . --format bundle` | Export a content-addressed wiki bundle |
|
|
210
|
+
| `reki merge <bundle-A> <bundle-B> [--base BASE]` | Three-way conflict-free wiki merge |
|
|
211
|
+
| `reki pull [URL]` | Fetch and merge a remote wiki bundle |
|
|
212
|
+
| `reki watch . --publish` | Auto-index + auto-publish on every file save |
|
|
213
|
+
| `reki export . --format md\|zip\|json\|html\|bundle` | Export the wiki |
|
|
214
|
+
| `reki diff` | Show impact of uncommitted changes |
|
|
215
|
+
| `reki hotspots` | Hub & bridge node detection |
|
|
216
|
+
| `reki refactor . --dry-run` | Preview refactor suggestions |
|
|
217
|
+
| `reki refactor . --apply` | Apply refactor suggestions |
|
|
218
|
+
| `reki mcp` | Start MCP stdio server |
|
|
219
|
+
| `reki review` | LLM-powered PR review |
|
|
220
|
+
| `reki hook install` | Install git post-commit hook |
|
|
221
|
+
| `reki init --with-all-ai` | Configure MCP for Copilot + Codex + Cursor |
|
|
222
|
+
| `reki init --with-ci` | Scaffold GitHub Actions workflow for auto-wiki |
|
|
126
223
|
|
|
127
|
-
- `ask` — Q&A over the codebase
|
|
128
|
-
- `search_nodes` — symbol/file search
|
|
129
|
-
- `get_context` — file-level context
|
|
130
|
-
- `get_relationships` — dependency graph queries
|
|
131
|
-
- `get_hub_nodes` — architectural hotspots
|
|
132
|
-
- `get_impact` — change impact analysis
|
|
133
|
-
- `list_wiki_pages` — enumerate all wiki pages
|
|
134
|
-
- `get_wiki_page` — read a specific wiki page by name
|
|
135
224
|
---
|
|
136
|
-
## AI CLI tool integration
|
|
137
225
|
|
|
138
|
-
|
|
226
|
+
## 🤖 AI CLI Tool Integration
|
|
139
227
|
|
|
140
228
|
```bash
|
|
141
229
|
reki init --with-all-ai # configure Copilot + Codex + Cursor in one step
|
|
230
|
+
|
|
142
231
|
# or pick individually:
|
|
143
|
-
reki init --with-copilot #
|
|
144
|
-
reki init --with-codex # Codex CLI — writes .codex/instructions.md
|
|
232
|
+
reki init --with-copilot # VS Code — writes .vscode/mcp.json
|
|
233
|
+
reki init --with-codex # Codex CLI — writes .codex/instructions.md
|
|
145
234
|
reki init --with-cursor # Cursor — writes .cursor/mcp.json + rules
|
|
146
235
|
```
|
|
147
236
|
|
|
148
|
-
Once configured, each tool automatically gets access to
|
|
149
|
-
|
|
150
|
-
| MCP Tool | What it does |
|
|
151
|
-
|---|---|
|
|
152
|
-
| `ask` | Natural-language Q&A grounded in the scanned wiki |
|
|
153
|
-
| `search_nodes` | Fast symbol lookup by name |
|
|
154
|
-
| `get_context` | Symbols and relationships for a file |
|
|
155
|
-
| `get_relationships` | Callers and callees for a symbol |
|
|
156
|
-
| `get_hub_nodes` | Architectural chokepoints |
|
|
157
|
-
| `get_impact` | Blast-radius for a changed file |
|
|
158
|
-
| `get_knowledge_gaps` | Untested high-call-count symbols |
|
|
159
|
-
| `list_wiki_pages` | List all wiki pages |
|
|
160
|
-
| `get_wiki_page` | Read a specific wiki page by name |
|
|
237
|
+
Once configured, each tool automatically gets access to the [MCP tools listed above](#-reki-mcp--mcp-server-for-ai-agents).
|
|
161
238
|
|
|
162
239
|
---
|
|
163
240
|
|
|
164
|
-
## LLM Setup
|
|
241
|
+
## ⚙️ LLM Setup
|
|
165
242
|
|
|
166
|
-
rekipedia works without an LLM (`--no-llm`). To enable richer summaries and Q&A:
|
|
243
|
+
rekipedia works **entirely without an LLM** (`--no-llm`). To enable richer summaries and Q&A:
|
|
167
244
|
|
|
168
245
|
```bash
|
|
169
246
|
export REKIPEDIA_MODEL=gemini/gemini-2.5-pro
|
|
170
247
|
export GOOGLE_API_KEY=...
|
|
171
248
|
```
|
|
172
249
|
|
|
173
|
-
Or use
|
|
250
|
+
Or use any OpenAI-compatible endpoint:
|
|
174
251
|
|
|
175
252
|
```bash
|
|
176
253
|
export REKIPEDIA_MODEL=openai/gpt-4o
|
|
177
254
|
export REKIPEDIA_API_KEY=sk-...
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
Any OpenAI-compatible endpoint works:
|
|
181
255
|
|
|
182
|
-
|
|
256
|
+
# Local / offline
|
|
183
257
|
export REKIPEDIA_API_KEY=ollama
|
|
184
258
|
export REKIPEDIA_MODEL=ollama/llama3
|
|
185
259
|
```
|
|
186
260
|
|
|
187
261
|
---
|
|
188
262
|
|
|
189
|
-
##
|
|
263
|
+
## ❓ FAQ
|
|
190
264
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
| `reki scan . --no-llm` | Scan without LLM, zero config |
|
|
195
|
-
| `reki ask "question"` | Ask anything about the codebase |
|
|
196
|
-
| `reki ask "question" --brief` | Short answer mode |
|
|
197
|
-
| `reki update . --impact-only` | Incremental update, affected pages only |
|
|
198
|
-
| `reki serve .` | Local web UI at `http://127.0.0.1:7070` |
|
|
199
|
-
| `reki embed .` | Build FAISS semantic index |
|
|
200
|
-
| `reki publish . [--output-dir PATH]` | Publish wiki to a git-tracked directory for team sharing |
|
|
201
|
-
| `reki export . --format bundle` | Export a content-addressed wiki bundle for team sync |
|
|
202
|
-
| `reki merge <bundle-A> <bundle-B> [--base BASE]` | Three-way wiki merge — conflict-free team sync |
|
|
203
|
-
| `reki pull [URL]` | Fetch and merge a remote wiki bundle (HTTPS/S3/GCS) |
|
|
204
|
-
| `reki watch . --publish` | Auto-index + auto-publish wiki on every file save |
|
|
205
|
-
| `reki export . --format md\|zip\|json\|html\|bundle` | Export the wiki |
|
|
206
|
-
| `reki diff` | Show impact of uncommitted changes |
|
|
207
|
-
| `reki hotspots` | Hub & bridge node detection |
|
|
208
|
-
| `reki refactor . --dry-run` | Preview refactor suggestions |
|
|
209
|
-
| `reki refactor . --apply` | Apply refactor suggestions |
|
|
210
|
-
| `reki mcp` | Start MCP stdio server |
|
|
211
|
-
| `reki review` | LLM-powered PR review |
|
|
212
|
-
| `reki watch .` | Auto-index on file change |
|
|
213
|
-
| `reki hook install` | Install git post-commit hook |
|
|
214
|
-
| `reki init --with-all-ai` | Configure MCP for GitHub Copilot, Codex CLI, and Cursor in one step |
|
|
265
|
+
**Q: Why is `store.db` gitignored? How do teammates use rekipedia?**
|
|
266
|
+
|
|
267
|
+
`store.db` contains machine-specific absolute paths — committing it would cause path mismatches and noisy binary diffs. Each developer runs `reki scan .` locally. To share human-readable output, use `reki publish .`, which copies generated wiki pages to `docs/wiki/` so they can be committed and browsed on GitHub or your docs site.
|
|
215
268
|
|
|
216
269
|
---
|
|
217
270
|
|
|
218
|
-
|
|
271
|
+
**Q: What is `store.db` for vs the FAISS index? Why do I need both?**
|
|
219
272
|
|
|
220
|
-
|
|
273
|
+
| | `store.db` | FAISS / Qdrant / Chroma |
|
|
274
|
+
|---|---|---|
|
|
275
|
+
| **Format** | Structured SQLite graph | Dense embedding vectors |
|
|
276
|
+
| **Purpose** | Precise filters — "find all callers of function X" | Fuzzy semantic search — "find code that handles authentication" |
|
|
277
|
+
| **Used by** | `search_nodes`, `get_relationships`, `hotspots` | `reki ask` RAG pipeline |
|
|
221
278
|
|
|
222
|
-
`
|
|
279
|
+
`reki ask` uses both: BM25 keyword search over SQLite **plus** vector similarity search, then merges and re-ranks results.
|
|
223
280
|
|
|
224
281
|
---
|
|
225
282
|
|
|
226
|
-
|
|
283
|
+
**Q: Can I use Postgres or MySQL instead of SQLite?**
|
|
227
284
|
|
|
228
|
-
|
|
285
|
+
Not currently. SQLite is intentional — zero-config, portable, no running server. `reki export .` produces `symbols.json` and `relationships.json` for loading into any database. Postgres/MySQL support is not on the roadmap, but the JSON exports make integration straightforward.
|
|
229
286
|
|
|
230
287
|
---
|
|
231
288
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
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.
|
|
289
|
+
**Q: Does rekipedia support Qdrant or Chroma instead of FAISS?**
|
|
235
290
|
|
|
236
|
-
|
|
291
|
+
Yes. FAISS is the default, but Qdrant and Chroma are supported as optional backends — useful for shared, persistent vector stores across a team. Install extras:
|
|
237
292
|
|
|
238
|
-
|
|
293
|
+
```bash
|
|
294
|
+
pip install rekipedia[qdrant] # or rekipedia[chroma]
|
|
295
|
+
```
|
|
239
296
|
|
|
240
|
-
|
|
297
|
+
Then configure the backend in `.rekipedia/config.yml`.
|
|
241
298
|
|
|
242
299
|
---
|
|
243
300
|
|
|
244
|
-
|
|
301
|
+
**Q: Do I need an OpenAI API key?**
|
|
245
302
|
|
|
246
|
-
No.
|
|
303
|
+
No. `reki scan . --no-llm` performs static analysis only — fully offline and air-gap safe. When LLM features are enabled, only retrieved chunks (not your full source) are sent as context. Use [Ollama](https://ollama.com) for fully local inference — no internet required.
|
|
247
304
|
|
|
248
305
|
---
|
|
249
306
|
|
|
250
|
-
|
|
307
|
+
**Q: How do I keep the wiki up to date automatically?**
|
|
251
308
|
|
|
252
|
-
|
|
309
|
+
Run `reki init --with-ci` to scaffold a GitHub Actions workflow that runs `reki scan` + `reki publish` on every push to `main`. The workflow commits 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` at zero cost.
|
|
253
310
|
|
|
254
311
|
---
|
|
255
312
|
|
|
256
|
-
|
|
313
|
+
**Q: How does team sync work for distributed teams?**
|
|
314
|
+
|
|
315
|
+
rekipedia uses a multi-layer, conflict-free collaboration system:
|
|
257
316
|
|
|
258
|
-
|
|
317
|
+
1. **Bundle** — `reki export --format bundle` creates a deterministic, content-addressed snapshot.
|
|
318
|
+
2. **Merge** — `reki merge bundle-A bundle-B --base bundle-base` performs a three-way merge with automatic resolution for non-conflicting changes.
|
|
319
|
+
3. **Git merge driver** — `reki init --with-merge-driver` registers a custom driver so `git merge` and `git pull` use rekipedia's logic — no `<<<<<<` conflicts in generated wiki files.
|
|
320
|
+
4. **Live sync** — `reki watch . --publish` publishes the wiki after every incremental update.
|
|
321
|
+
5. **Remote pull** — `reki pull <url>` fetches a bundle from HTTPS, S3, or GCS and merges it locally.
|
|
259
322
|
|
|
260
323
|
---
|
|
261
324
|
|
|
262
|
-
|
|
325
|
+
**Q: How does `reki ask` work under the hood?**
|
|
263
326
|
|
|
264
|
-
|
|
327
|
+
A hybrid retrieval pipeline:
|
|
265
328
|
|
|
266
|
-
1. **
|
|
267
|
-
2. **
|
|
268
|
-
3. **
|
|
269
|
-
4. **
|
|
270
|
-
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.
|
|
329
|
+
1. **BM25 keyword search** against the SQLite store for exact and near-exact matches.
|
|
330
|
+
2. **Vector similarity search** against FAISS/Qdrant/Chroma for semantic matches.
|
|
331
|
+
3. **Merge & re-rank** the two result sets by relevance score.
|
|
332
|
+
4. **LLM synthesis** — top chunks passed to your configured LLM with file:line citations.
|
|
271
333
|
|
|
272
|
-
|
|
334
|
+
With `--no-llm`, retrieval results are returned directly without synthesis.
|
|
273
335
|
|
|
274
|
-
|
|
336
|
+
---
|
|
275
337
|
|
|
276
|
-
|
|
338
|
+
**Q: How large does `store.db` / the FAISS index get on a large repo?**
|
|
277
339
|
|
|
278
|
-
|
|
340
|
+
For a typical mid-size repo (50k–200k LOC):
|
|
279
341
|
|
|
280
|
-
|
|
342
|
+
| Storage | Typical Size |
|
|
343
|
+
|---|---|
|
|
344
|
+
| `store.db` | 10–80 MB |
|
|
345
|
+
| FAISS index | 50–500 MB |
|
|
281
346
|
|
|
282
|
-
|
|
347
|
+
On very large monorepos (1M+ LOC), the FAISS index can exceed 1 GB; switching to a server-backed Qdrant instance is recommended.
|
|
283
348
|
|
|
284
349
|
---
|
|
285
350
|
|
|
286
|
-
|
|
351
|
+
**Q: Can rekipedia scan private or fully offline repos?**
|
|
287
352
|
|
|
288
|
-
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.
|
|
353
|
+
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. There are no telemetry calls, no license checks against a remote server, and no internet requirement beyond your chosen LLM endpoint.
|
|
289
354
|
|
|
290
355
|
---
|
|
291
356
|
|
|
292
|
-
## Coming Soon
|
|
357
|
+
## 🔮 Coming Soon
|
|
293
358
|
|
|
294
359
|
- **Hosted wiki** — share your knowledge base with a link, no self-hosting required
|
|
295
360
|
- **VS Code extension** — inline `reki ask` from your editor
|
|
296
361
|
|
|
297
362
|
---
|
|
298
363
|
|
|
299
|
-
## Contributing
|
|
300
|
-
|
|
301
|
-
rekipedia is going MIT open source. Contributions welcome.
|
|
364
|
+
## 🤝 Contributing
|
|
302
365
|
|
|
303
366
|
```bash
|
|
304
367
|
git clone https://github.com/unrealandychan/rekipedia.git
|
|
@@ -309,4 +372,4 @@ Open an issue or PR — the bar is low and the maintainer is responsive.
|
|
|
309
372
|
|
|
310
373
|
---
|
|
311
374
|
|
|
312
|
-
**Current version:** `0.
|
|
375
|
+
**Current version:** `0.23.0` · [PyPI](https://pypi.org/project/rekipedia/) · [MIT License](LICENSE)
|
package/package.json
CHANGED