आपका AI एजेंट आपका प्रोजेक्ट नहीं जानता। Alcove इसे ठीक करता है।
English ·
한국어 ·
日本語 ·
简体中文 ·
Español ·
हिन्दी ·
Português ·
Deutsch ·
Français ·
Русский
Alcove एक HTTP API सर्वर है जो AI कोडिंग एजेंट्स को आपके प्राइवेट प्रोजेक्ट दस्तावेज़ों तक मांग पर पहुंच देता है — सटीक रिट्रीवल के लिए **BM25 + वेक्टर हाइब्रिड सर्च**, एजेंट्स को आपके कोडबेस संरचना समझने के लिए **tree-sitter कोड इंडेक्सिंग**, और दस्तावेज़ निरंतरता के लिए **पॉलिसी एनफोर्समेंट**। कोई कंटेक्स्ट ब्लोट नहीं, कोई पब्लिक रिपो में डॉक्स लीक नहीं, हर एजेंट के लिए प्रति-प्रोजेक्ट कॉन्फ़िग नहीं।
## डेमो

> *Claude, Codex — खोज · प्रोजेक्ट स्विच · ग्लोबल खोज · सत्यापन और जनरेशन। एक सेटअप।*
CLI डेमो

> *`alcove search` · प्रोजेक्ट स्विच · `--scope global` · `alcove validate`*
## समस्या
आपका AI एजेंट हर सेशन शून्य से शुरू करता है।
यह आपके आर्किटेक्चर को नहीं जानता। आपके पहले से लिए गए निर्णयों की बाधाओं को अनदेखा करता है। हर सेशन में एक ही चीज़ें समझाने को कहता है।
कंटेक्स्ट विंडो बाधा है। हर टोकन पैसा और ध्यान खर्च करता है। 10 आर्किटेक्चर दस्तावेज़ कंटेक्स्ट में लोड करने से हर रन पर 50K+ टोकन बर्बाद होते हैं — और Anthropic की अपनी डॉक्स भी चेतावनी देती हैं कि फूले हुए कॉन्फ़िग फ़ाइलें एजेंट्स को *आपके वास्तविक निर्देशों को अनदेखा करने* पर मजबूर करती हैं।
तो आपके पास तीन बुरे विकल्प हैं:
**सब कुछ एजेंट कॉन्फ़िग में भरें** — हर फ़ाइल हर रन पर कंटेक्स्ट में लोड होती है। 10 दस्तावेज़ = कंटेक्स्ट ब्लोट = धीमे, महंगे, कम सटीक उत्तर।
**हर चैट में कॉपी-पेस्ट करें** — एक बार काम करता है, एक सेशन से आगे स्केल नहीं होता।
**परेशान न हों** — आपका एजेंट वे आवश्यकताएं गढ़ता है जो आपने पहले ही दस्तावेज़ीकृत की हैं, आपके निर्णयों की बाधाओं को अनदेखा करता है, और हर सोमवार सुबह आप वही आर्किटेक्चर फिर से समझाते हैं।
5 प्रोजेक्ट और 3 एजेंट से गुणा करें। हर बार स्विच करने पर कंटेक्स्ट खो जाता है।
## Alcove इसे कैसे हल करता है
Alcove आपके सभी प्राइवेट दस्तावेज़ों को **एक साझा रिपॉज़िटरी** में रखता है, प्रोजेक्ट के अनुसार व्यवस्थित। सभी एजेंट HTTP API के माध्यम से एक ही तरीके से एक्सेस करते हैं — चाहे आप Claude Code में हों, Cursor में, या Codex में।
```
~/projects/my-app $ claude "/alcove ऑथेंटिकेशन कैसे इम्प्लीमेंट किया गया है?"
→ Alcove प्रोजेक्ट डिटेक्ट करता है: my-app
→ ~/documents/my-app/ARCHITECTURE.md पढ़ता है
→ एजेंट वास्तविक प्रोजेक्ट संदर्भ के साथ जवाब देता है
```
```
~/projects/my-api $ codex "/alcove API डिज़ाइन की समीक्षा करें"
→ Alcove प्रोजेक्ट डिटेक्ट करता है: my-api
→ वही दस्तावेज़ संरचना, वही एक्सेस पैटर्न
→ अलग प्रोजेक्ट, वही वर्कफ़्लो
```
**कभी भी एजेंट बदलें। कभी भी प्रोजेक्ट बदलें। दस्तावेज़ परत मानकीकृत रहती है।**
## यह क्या करता है
- **एक डॉक-रिपो, कई प्रोजेक्ट** — प्राइवेट दस्तावेज़ प्रोजेक्ट के अनुसार व्यवस्थित, एक ही जगह से प्रबंधित
- **एक सेटअप, कोई भी एजेंट** — एक बार कॉन्फ़िगर करें, हर एजेंट को समान टूल्स मिलते हैं
- **CWD से प्रोजेक्ट ऑटो-डिटेक्ट** — प्रति-प्रोजेक्ट कॉन्फ़िग अनावश्यक
- **स्कोप्ड एक्सेस** — हर प्रोजेक्ट केवल अपने दस्तावेज़ देखता है
- **स्मार्ट सर्च** — BM25 रैंकिंग सर्च और ऑटो-इंडेक्सिंग; सबसे प्रासंगिक दस्तावेज़ पहले दिखाता है, ज़रूरत पड़ने पर grep पर फ़ॉलबैक
- **क्रॉस-प्रोजेक्ट सर्च** — `scope: "global"` से सभी प्रोजेक्ट्स में एक साथ खोजें — व्यक्तिगत ज्ञान आधार के रूप में उपयोग करें
- **प्राइवेट दस्तावेज़ प्राइवेट रहते हैं** — संवेदनशील दस्तावेज़ (सीक्रेट्स मैप, इंटरनल निर्णय, टेक डेट) आपके पब्लिक रिपो को कभी नहीं छूते
- **मानकीकृत दस्तावेज़ संरचना** — `policy.toml` सभी प्रोजेक्ट्स और टीमों में एकसमान दस्तावेज़ लागू करता है
- **क्रॉस-रिपो ऑडिट** — प्रोजेक्ट रिपो में गलत जगह रखे इंटरनल दस्तावेज़ खोजता है, सुधार सुझाता है
- **दस्तावेज़ सत्यापन** — गुम फ़ाइलों, अधूरे टेम्पलेट्स, आवश्यक सेक्शनों की जांच करता है
- **सिमेंटिक लिंट** — टूटे हुए विकिलिंक, अनाथ फ़ाइलें, पुराने WIP/DRAFT मार्कर और 2+ साल पुराने दिनांक उल्लेख स्वचालित रूप से खोजता है
- **बाहरी वॉल्ट से लाना** — Obsidian या किसी भी vault के नोट को एक कमांड से doc-repo में लाएँ; प्रोजेक्ट रूटिंग स्वचालित
- **9+ एजेंट्स के साथ काम करता है** — Claude Code, Cursor, Claude Desktop, Cline, OpenCode, Codex, Copilot
## Alcove क्यों
| Alcove के बिना | Alcove के साथ |
|----------------|---------------|
| इंटरनल दस्तावेज़ Notion, Google Docs, लोकल फ़ाइलों में बिखरे हुए | एक डॉक-रिपो, प्रोजेक्ट के अनुसार संरचित |
| हर AI एजेंट अलग से दस्तावेज़ एक्सेस के लिए कॉन्फ़िगर | एक सेटअप, सभी एजेंट्स समान टूल्स साझा करते हैं |
| प्रोजेक्ट बदलने पर दस्तावेज़ संदर्भ खो जाता है | CWD ऑटो-डिटेक्शन, तुरंत प्रोजेक्ट स्विच |
| एजेंट सर्च रैंडम मैचिंग लाइनें लौटाता है | हाइब्रिड सर्च (BM25 + RAG) — एजेंट्स केवल ज़रूरी चीज़ें प्रासंगिकता के अनुसार लाते हैं |
| एजेंट केवल टेक्स्ट दस्तावेज़ देखता है, कोड संरचना नहीं | Tree-sitter कोड इंडेक्सिंग — एजेंट्स 12 भाषाओं में मॉड्यूल, फ़ंक्शन और टाइप समझते हैं |
| "ऑथेंटिकेशन पर मेरे सभी नोट्स खोजें" — असंभव | ग्लोबल सर्च से सभी प्रोजेक्ट्स एक क्वेरी में |
| संवेदनशील दस्तावेज़ पब्लिक रिपो में लीक होने का खतरा | प्राइवेट दस्तावेज़ प्रोजेक्ट रिपो से भौतिक रूप से अलग |
| दस्तावेज़ संरचना हर प्रोजेक्ट और टीम सदस्य में भिन्न | `policy.toml` सभी प्रोजेक्ट्स में मानक लागू करता है |
| दस्तावेज़ पूरे हैं या नहीं, जांचने का कोई तरीका नहीं | `validate` गुम फ़ाइलें, खाली टेम्पलेट्स, गायब सेक्शन पकड़ता है |
| पुराने लिंक या WIP मार्कर छूट जाते हैं | `lint` टूटे लिंक, अनाथ फ़ाइलें और पुराने मार्कर स्वचालित रूप से पहचानता है |
| Obsidian जैसे बाहरी टूल के नोट अलग-थलग रहते हैं | `promote` से बाहरी नोट एक कमांड में doc-repo में आ जाते हैं |
## क्विक स्टार्ट
> **आवश्यक**: इंस्टॉलेशन के बाद एक बार `alcove setup` चलाएं ताकि आपके डॉक्स रूट कॉन्फ़िगर हो और पूरी कार्यक्षमता सक्षम हो। प्लगइन API सर्वर स्वचालित रूप से शुरू करता है, लेकिन `setup` चलाए बिना Alcove दस्तावेज़ खोज या इंडेक्स नहीं कर सकता।
>
> **Obsidian का उपयोग कर रहे हैं?** अनुशंसित दस्तावेज़ संरचना और वॉल्ट कॉन्फ़िगरेशन के लिए [पारिस्थितिकी तंत्र](#ecosystem) अनुभाग देखें।
### Claude Code
```
/plugin marketplace add epicsagas/plugins
/plugin install alcove@epicsagas
```
स्वचालित र
```bash
alcove setup # प्लगइन इंस्टॉल के बाद एक बार चलाएं
```
`claude plugin update epicsagas/alcove` से अपडेट करें।
### Codex CLI
```bash
codex plugin marketplace add epicsagas/plugins
```
स्किल ऑटो-इंस्टॉल होती है और MCP सर्वर रजिस्टर हो जाता है। तुरंत उपलब्ध — कोई और कदम आवश्यक नहीं। `codex plugin update alcove@epicsagas` से अपडेट करें।
### macOS (केवल Apple Silicon)
```bash
brew install epicsagas/tap/alcove
```
Homebrew नहीं है? इंस्टॉलर स्क्रिप्ट का उपयोग करें:
```bash
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/epicsagas/alcove/releases/latest/download/alcove-installer.sh | sh
```
### Linux (x86_64 / ARM64)
```bash
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/epicsagas/alcove/releases/latest/download/install.sh | sh
```
### Windows (x86_64 / ARM64)
```powershell
irm https://github.com/epicsagas/alcove/releases/latest/download/install.ps1 | iex
```
### Antigravity (Gemini CLI)
```bash
agy plugins install https://github.com/epicsagas/alcove
```
प्लगइन (MCP सर्वर, स्किल, हुक) स्वचालित रूप से इंस्टॉल करता है और अगले सेशन शुरू होने पर पंजीकृत करता है।
```bash
alcove setup # run once after plugin install
```
### Rust टूलचेन
```bash
cargo binstall alcove # प्रीबिल्ट बायनरी, हाइब्रिड सर्च सहित
cargo install alcove --features full-macos # सोर्स से बिल्ड (macOS)
cargo install alcove --features full-cross # सोर्स से बिल्ड (Linux/Windows)
```
> **नोट**: `cargo binstall` हाइब्रिड सर्च (वेक्टर + BM25) सहित प्रीबिल्ट बायनरी डाउनलोड करता है। सोर्स से बिल्ड करते समय हाइब्रिड सर्च के लिए `--features full-macos` या `--features full-cross` आवश्यक है। बिना features के केवल BM25 (कीवर्ड) सर्च उपलब्ध है।
### पहली बार सेटअप (आवश्यक)
ऊपर दिए गए किसी भी तरीके से इंस्टॉल करने के बाद, चलाएं:
```bash
alcove setup
alcove --version
alcove doctor
```
`setup` इंटरैक्टिव तरीके से सब कुछ गाइड करता है:
1. आपके दस्तावेज़ कहां हैं
2. कौन सी दस्तावेज़ कैटेगरी ट्रैक करनी है
3. पसंदीदा डायग्राम फ़ॉर्मेट
4. हाइब्रिड सर्च के लिए एम्बेडिंग मॉडल
5. **बैकग्राउंड सर्वर** — हर सेशन के कोल्ड-स्टार्ट को समाप्त करें (macOS लॉगिन आइटम)
6. कौन से AI एजेंट्स कॉन्फ़िगर करने हैं (MCP + स्किल फ़ाइलें — Claude Code और Codex उनके प्लगइन सिस्टम द्वारा प्रबंधित हैं)
सेटिंग्स बदलने के लिए कभी भी `alcove setup` फिर से चलाएं। यह आपकी पिछली पसंद याद रखता है।
**वैकल्पिक निर्भरताएं**
| टूल | उद्देश्य | इंस्टॉल |
|---|---|---|
| `pdftotext` (poppler) | पूर्ण PDF टेक्स्ट निष्कर्षण — PDF खोज के लिए आवश्यक | macOS: `brew install poppler` · Debian/Ubuntu: `apt install poppler-utils` · Fedora: `dnf install poppler-utils` · Windows: [poppler for Windows](https://github.com/oschwartz10612/poppler-windows/releases) |
`pdftotext` के बिना, Alcove बिल्ट-इन PDF पार्सर पर फ़ॉलबैक करता है जो कुछ फ़ाइलों पर विफल हो सकता है। अपनी इंस्टॉलेशन जांचने के लिए `alcove doctor` चलाएं।
### समस्या निवारण
**एजेंट Alcove टूल नहीं ढूंढ पा रहा**
`alcove setup` फिर से चलाएं — यह सभी कॉन्फ़िगर किए गए एजेंट के लिए MCP सर्वर को फिर से पंजीकृत करता है। फिर एक नया एजेंट सेशन शुरू करें (पंजीकरण अगले सेशन शुरू होने पर प्रभावी होता है)।
**खोज में कोई परिणाम नहीं**
इंडेक्स अभी तक बनाया नहीं गया हो सकता। `alcove index` चलाकर बनाएं, फिर पुनः प्रयास करें।
**बैकग्राउंड सर्वर से 403 Unauthorized**
आपके शेल में `ALCOVE_TOKEN` सेट नहीं है। `alcove token` चलाकर टोकन देखें, फिर अपने शेल प्रोफ़ाइल में `export ALCOVE_TOKEN="..."` जोड़ें और रीलोड करें।
**`alcove doctor` समस्याएं रिपोर्ट करता है**
`doctor` द्वारा दिए गए सुझावों का पालन करें — यह बाइनरी स्थान, MCP पंजीकरण, इंडेक्स स्थिति और `pdftotext` जैसी वैकल्पिक निर्भरताएं जांचता है।
## उपयोग
### CLI खोज
अपने दस्तावेज़ों को सीधे टर्मिनल से खोजें। डिफ़ॉल्ट रूप से, यह **सभी प्रोजेक्ट्स** (ग्लोबल स्कोप) में खोजता है।
```bash
# बुनियादी खोज (ग्लोबल स्कोप)
alcove search "authentication"
# खोज को वर्तमान प्रोजेक्ट तक सीमित करें (CWD के माध्यम से ऑटो-डिटेक्ट)
alcove search "auth flow" --scope project
# grep मोड फ़ोर्स करें (सटीक सबस्ट्रिंग मैच)
alcove search "TODO" --mode grep
# रैंक्ड मोड फ़ोर्स करें (BM25/हाइब्रिड)
alcove search "data model" --mode ranked
# परिणाम सीमा समायोजित करें
alcove search "deployment" --limit 5
```
### कोडिंग एजेंट्स (HTTP API)
AI कोडिंग एजेंट्स पोर्ट 58301 पर चलने वाले **लोकल HTTP API** के माध्यम से Alcove का उपयोग करते हैं। Skills आंतरिक रूप से `curl http://localhost:58301/...` कॉल करते हैं। आपको आमतौर पर इन्हें खुद कॉल करने की आवश्यकता नहीं होती; जब आप अपने प्रोजेक्ट के बारे में प्रश्न पूछते हैं, तो एजेंट उन्हें कॉल करेगा।
| Endpoint | Method | विवरण |
|----------|--------|--------|
| `/health` | GET | स्वास्थ्य जाँच |
| `/search?q=...` | GET | दस्तावेज़ खोजें |
| `/v1/search` | POST | JSON बॉडी से खोजें |
| `/projects` | GET | सभी प्रोजेक्ट सूचीबद्ध करें |
| `/projects` | POST | नया प्रोजेक्ट प्रारंभ करें |
| `/projects/{name}/docs` | GET | प्रोजेक्ट के दस्तावेज़ सूचीबद्ध करें |
| `/projects/{name}/audit` | GET | दस्तावेज़ स्वास्थ्य का ऑडिट करें |
| `/projects/{name}/validate` | GET | पॉलिसी के विरुद्ध दस्तावेज़ सत्यापित करें |
| `/projects/{name}/config` | PUT | प्रोजेक्ट सेटिंग्स अपडेट करें |
| `/docs/{path}` | GET | दस्तावेज़ फ़ाइल पढ़ें |
| `/rebuild` | POST | सर्च इंडेक्स रीबिल्ड करें |
| `/changes` | GET | बदली गई फ़ाइलें जाँचें |
| `/lint` | GET | दस्तावेज़ लिंट करें |
| `/vaults` | GET | वॉल्ट सूचीबद्ध करें |
| `/vaults/search?q=...` | GET | वॉल्ट खोजें |
| `/vaults/backup` | POST | वॉल्ट बैकअप |
| `/promote` | POST | फ़ाइल को doc-repo में इंपोर्ट करें |
| `/index-code` | POST | कोड संरचना इंडेक्स करें |
| `/mcp` | POST | JSON-RPC प्रॉक्सी (लेगेसी MCP) |
> **नोट**: MCP मैनुअल सेटअप के लिए अभी भी उपलब्ध है — stdio-आधारित एक्सेस के लिए `registry/mcp.json` देखें।
**एजेंट इंटरैक्शन उदाहरण:**
> **यूज़र:** "/alcove मैं एक नया API एंडपॉइंट कैसे जोड़ूँ?"
> **एजेंट:** (`POST /v1/search` को `query="add api endpoint"` के साथ कॉल करता है)
> **एजेंट:** (सबसे प्रासंगिक डॉक को `GET /docs/{path}?project=...` से पढ़ता है)
> **एजेंट:** "`ARCHITECTURE.md` के अनुसार, आपको..."
---
## कैसे काम करता है
```mermaid
flowchart LR
subgraph Projects["आपके प्रोजेक्ट्स"]
A1["my-app/\n src/ ..."]
A2["my-api/\n src/ ..."]
end
subgraph Docs["आपके प्राइवेट दस्तावेज़ (एक रिपो)"]
D1["my-app/\n PRD.md\n ARCH.md"]
D2["my-api/\n PRD.md\n ..."]
P1["policy.toml"]
end
subgraph Agents["कोई भी AI एजेंट"]
AG["Claude Code · Cursor\nCodex · Copilot\n+4 more"]
end
subgraph API["Alcove HTTP API सर्वर"]
T["search · get_file\noverview · audit\ninit · validate"]
end
A1 -- "CWD डिटेक्ट" --> D1
A2 -- "CWD डिटेक्ट" --> D2
Agents -- "HTTP :58301" --> API
API -- "स्कोप्ड एक्सेस" --> Docs
```
आपके दस्तावेज़ एक अलग डायरेक्टरी (`DOCS_ROOT`) में व्यवस्थित होते हैं, प्रति प्रोजेक्ट एक फ़ोल्डर। Alcove वहां से प्रबंधित करता है और HTTP के माध्यम से पोर्ट 58301 पर किसी भी AI एजेंट को सर्व करता है।
## दस्तावेज़ वर्गीकरण
Alcove दस्तावेज़ों को निम्न प्रकार से वर्गीकृत करता है:
| वर्गीकरण | स्थान | उदाहरण |
|-----------|--------|--------|
| **doc-repo-required** | Alcove (प्राइवेट) | PRD, Architecture, Decisions, Conventions |
| **doc-repo-supplementary** | Alcove (प्राइवेट) | Deployment, Onboarding, Testing, Runbook |
| **reference** | Alcove `reports/` फ़ोल्डर | ऑडिट रिपोर्ट, बेंचमार्क, विश्लेषण |
| **project-repo** | आपका GitHub रिपो (पब्लिक) | README, CHANGELOG, CONTRIBUTING |
`audit` टूल डॉक-रिपो और लोकल प्रोजेक्ट डायरेक्टरी दोनों को स्कैन करता है और कार्रवाई सुझाता है — जैसे प्राइवेट PRD से पब्लिक README जनरेट करना, या गलत जगह रखी रिपोर्ट्स को alcove में वापस लाना।
## API एंडपॉइंट
| Endpoint | Method | क्या करता है |
|----------|--------|-------------|
| `/health` | GET | स्वास्थ्य जाँच |
| `/search?q=...` | GET | दस्तावेज़ खोजें |
| `/v1/search` | POST | JSON बॉडी से खोजें |
| `/projects` | GET | सभी प्रोजेक्ट सूचीबद्ध करें |
| `/projects` | POST | नया प्रोजेक्ट प्रारंभ करें |
| `/projects/{name}/docs` | GET | प्रोजेक्ट के दस्तावेज़ सूचीबद्ध करें |
| `/projects/{name}/audit` | GET | दस्तावेज़ स्वास्थ्य का ऑडिट करें |
| `/projects/{name}/validate` | GET | पॉलिसी के विरुद्ध दस्तावेज़ सत्यापित करें |
| `/projects/{name}/config` | PUT | प्रोजेक्ट सेटिंग्स अपडेट करें |
| `/docs/{path}` | GET | दस्तावेज़ फ़ाइल पढ़ें |
| `/rebuild` | POST | सर्च इंडेक्स रीबिल्ड करें |
| `/changes` | GET | बदली गई फ़ाइलें जाँचें |
| `/lint` | GET | दस्तावेज़ लिंट करें |
| `/vaults` | GET | वॉल्ट सूचीबद्ध करें |
| `/vaults/search?q=...` | GET | वॉल्ट खोजें |
| `/vaults/backup` | POST | वॉल्ट बैकअप |
| `/promote` | POST | फ़ाइल को doc-repo में इंपोर्ट करें |
| `/index-code` | POST | कोड संरचना इंडेक्स करें |
| `/mcp` | POST | JSON-RPC प्रॉक्सी (लेगेसी MCP) |
> **नोट**: MCP मैनुअल सेटअप के लिए अभी भी उपलब्ध है — stdio-आधारित एक्सेस के लिए `registry/mcp.json` देखें।
## CLI
```
alcove MCP सर्वर शुरू करें (एजेंट्स इसे कॉल करते हैं)
alcove setup इंटरैक्टिव सेटअप — कभी भी री-कॉन्फ़िगर करने के लिए फिर चलाएं
alcove doctor Alcove इंस्टॉलेशन की स्थिति जांचें
alcove validate पॉलिसी के विरुद्ध दस्तावेज़ सत्यापित करें (--format json, --exit-code)
alcove lint सिमेंटिक लिंट — टूटे लिंक, अनाथ फ़ाइलें, पुराने मार्कर (--format json)
alcove promote बाहरी vault के नोट को doc-repo में लाएँ
alcove index सर्च इंडेक्स अपडेट करें (इंक्रीमेंटल — केवल बदली हुई फ़ाइलें)
alcove rebuild सर्च इंडेक्स शुरू से रीबिल्ड करें (स्कीमा बदलने के बाद उपयोग करें)
alcove search टर्मिनल से दस्तावेज़ खोजें
alcove bench सर्च गुणवत्ता बेंचमार्क [--corpus] (सटीकता, विलंबता, प्रतिगमन पहचान)
alcove index-code सोर्स कोड से कोड संरचना इंडेक्स जनरेट करें [--language LANG] [--source PATH]
alcove token बैकग्राउंड सर्वर प्रमाणीकरण के लिए बेयरर टोकन प्रिंट करें
alcove uninstall स्किल्स, कॉन्फ़िग और लेगेसी फ़ाइलें हटाएं
alcove mcp बैकग्राउंड MCP सर्वर लाइफसाइकिल प्रबंधित करें (start, stop, status, enable, disable)
alcove vault create एक नया नॉलेज बेस वॉल्ट बनाएं
alcove vault link एक बाहरी डायरेक्टरी को वॉल्ट के रूप में लिंक करें (जैसे, Obsidian)
alcove vault list दस्तावेज़ गणना के साथ सभी वॉल्ट सूचीबद्ध करें
alcove vault remove एक वॉल्ट निकालें (सिमलिंक: केवल लिंक निकालें)
alcove vault add एक वॉल्ट में दस्तावेज़ जोड़ें
alcove vault index वॉल्ट के लिए सर्च इंडेक्स बनाएं
alcove vault rebuild शुरू से वॉल्ट सर्च इंडेक्स रीबिल्ड करें
```
### कोड इंडेक्सिंग
tree-sitter से सोर्स फ़ाइलें पार्स करके `CODE_INDEX.md` जनरेट करता है—कोडबेस का मॉड्यूल-स्तरीय Markdown सारांश, जो Tantivy सर्च पाइपलाइन के साथ एकीकृत है।
```bash
# वर्तमान प्रोजेक्ट इंडेक्स करें (सभी भाषाएं स्वचालित रूप से डिटेक्ट होती हैं)
alcove index-code --source ./src
# मोनोरेपो: एक साथ कई भाषाओं वाली डायरेक्टरी इंडेक्स करें
alcove index-code --source ./
# एकल भाषा तक सीमित करें
alcove index-code --source ./src --language typescript
alcove index-code --source ./src --language rust
```
**समर्थित भाषाएं:**
| भाषा | फ़ीचर फ़्लैग | फ़ाइल एक्सटेंशन |
|------|------------|----------------|
| Rust | `lang-rust` | `.rs` |
| Python | `lang-python` | `.py`, `.pyi` |
| TypeScript | `lang-typescript` | `.ts`, `.tsx` |
| JavaScript | `lang-javascript` | `.js`, `.jsx`, `.mjs` |
| Go | `lang-go` | `.go` |
| Java | `lang-java` | `.java` |
| Kotlin | `lang-kotlin` | `.kt`, `.kts` |
| C | `lang-c` | `.c`, `.h` |
| C++ | `lang-cpp` | `.cpp`, `.cc`, `.cxx`, `.hpp`, `.hxx`, `.h` |
| Swift | `lang-swift` | `.swift` |
| Ruby | `lang-ruby` | `.rb` |
| C# | `lang-csharp` | `.cs` |
आधिकारिक बायनेरी सभी 12 पार्सर सक्षम करती हैं (`lang-all`)। `--language` फ़्लैग के बिना, **सभी पहचानी गई एक्सटेंशन स्वचालित रूप से इंडेक्स होती हैं**—मोनोरेपो के लिए सुरक्षित।
`--language` संक्षिप्त नाम भी स्वीकार करता है: `ts` → TypeScript, `cpp` → C++, `csharp` → C#, `py` → Python, `js` → JavaScript, `kt` → Kotlin, `rb` → Ruby।
### लिंट (Lint)
```bash
# वर्तमान प्रोजेक्ट की जाँच (CWD से स्वचालित पहचान)
alcove lint
# प्रोजेक्ट का नाम देकर जाँच
alcove lint --project my-app
# CI के लिए मशीन-रीडेबल आउटपुट
alcove lint --format json
```
लिंट चार चीज़ें जाँचता है:
| जाँच | क्या पकड़ता है |
|------|--------------|
| `broken-link` | गायब फ़ाइलों की ओर इशारा करने वाले `[[विकिलिंक]]` या `[टेक्स्ट](पाथ)` |
| `orphan` | वे फ़ाइलें जिन्हें कोई अन्य दस्तावेज़ लिंक नहीं करता |
| `stale-marker` | WIP / TODO / FIXME / DRAFT / DEPRECATED मार्कर |
| `stale-date` | 2+ साल पुराने दिनांक उल्लेख (जैसे "as of 2022") |
### प्रोमोट (Promote)
```bash
# Obsidian नोट को doc-repo में कॉपी करें (प्रोजेक्ट स्वचालित रूटिंग)
alcove promote ~/my-brain/Projects/auth-notes.md
# विशिष्ट प्रोजेक्ट में डालें
alcove promote ~/my-brain/Projects/auth-notes.md --project my-app
# कॉपी की जगह मूव करें
alcove promote ~/my-brain/Projects/auth-notes.md --mv
```
जिन फ़ाइलों का कोई मेल नहीं मिलता वे `inbox/` में मैनुअल रिव्यू के लिए जमा होती हैं।
### बेंचमार्क
**विलगित कोर्पस मोड** (`--corpus`) तेज़, प्रजननीय CI बेंचमार्क के लिए एक स्व-निहित परीक्षण डेटासेट (19 सिंथेटिक दस्तावेज़, 25 क्वेरी) का उपयोग करता है — वास्तविक दस्तावेज़ों की आवश्यकता नहीं, 60 सेकंड से कम में पूर्ण होता है।
```bash
# अंतर्निहित eval कोर्पस पर चलाएं (CI के लिए अनुशंसित)
alcove bench --corpus --baseline benches/corpus/baseline.json
# जानबूझकर किए गए बदलावों के बाद कोर्पस बेसलाइन अपडेट करें
alcove bench --corpus --save-baseline benches/corpus/baseline.json
# अपने वास्तविक दस्तावेज़ों पर चलाएं (10 श्रेणियों में 50 क्वेरी)
alcove bench --metrics precision
# भविष्य की तुलना के लिए बेसलाइन के रूप में सहेजें
alcove bench --output json --save-baseline benches/baseline.json
# बेसलाइन से तुलना — CI में प्रतिगमन का पता लगाएं
alcove bench --baseline benches/baseline.json
# Markdown रिपोर्ट
alcove bench --output markdown --output-file bench-report.md
```
| मेट्रिक | यह क्या मापता है |
|---------|------------------|
| Precision@K | शीर्ष-K परिणामों में प्रासंगिक दस्तावेज़ों का अनुपात |
| Recall@K | प्रासंगिक दस्तावेज़ों में से शीर्ष-K में मिलने वालों का अनुपात |
| NDCG@K | स्थान छूट के साथ रैंकिंग गुणवत्ता |
| MAP@K | सभी क्वेरी की औसत सटीकता |
| MRR | पहले प्रासंगिक दस्तावेज़ का व्युत्क्रम रैंक |
| चंक सटीकता | क्या प्राप्त चंक सही अनुभाग में हैं |
**प्रतिगमन सीमा**: सटीकता >5%, विलंबता >20%, थ्रूपुट >15%. सीमा के आधे पर चेतावनी।
## सर्च
Alcove स्वचालित रूप से सर्वश्रेष्ठ सर्च रणनीति चुनता है। जब सर्च इंडेक्स मौजूद है, तो **BM25 रैंकिंग सर्च** ([tantivy](https://github.com/quickwit-oss/tantivy) द्वारा संचालित) का उपयोग करता है जो प्रासंगिकता स्कोर के अनुसार परिणाम देता है। जब इंडेक्स नहीं है, तो grep पर फ़ॉलबैक करता है। आपको इसके बारे में सोचने की ज़रूरत नहीं।
### हाइब्रिड सर्च (RAG)
Alcove **हाइब्रिड सर्च** का समर्थन करता है जो BM25 को **वेक्टर समानता सर्च** ([fastembed](https://github.com/ankane/fastembed-rs) द्वारा संचालित) के साथ जोड़ता है।
`alcove setup` के दौरान, आप एक एम्बेडिंग मॉडल चुन सकते हैं और तुरंत डाउनलोड कर सकते हैं। आप मॉडल मैन्युअल रूप से भी प्रबंधित कर सकते हैं:
```bash
# एम्बेडिंग मॉडल सेट और डाउनलोड करें
alcove model set MultilingualE5Small
alcove model download
# मॉडल स्थिति जांचें
alcove model status
```
#### मॉडल चयन
| मॉडल | डिस्क | डिम | कॉन्टेक्स्ट | भाषाएँ | सुझाव | पीक RAM |
|-------|-------|-----|------------|--------|-------|---------|
| **`ArcticEmbedXS`** (डिफ़ॉल्ट) | **90 MB** | **384** | **512** | **बहुभाषी** | **डिफ़ॉल्ट — सर्वोत्तम मूल्य** | **~400 MB** |
| `ArcticEmbedXSQ` | 90 MB | 384 | 512 | बहुभाषी | क्वांटाइज़्ड, छोटा डाउनलोड | ~400 MB |
| `MultilingualE5Small` | 470 MB | 384 | 512 | 100+ भाषाएँ | कोरियन/CJK सर्वोत्तम गुणवत्ता | ~1.2 GB |
| `BGEM3` | 600 MB | 1024 | 8192 | 100+ भाषाएँ | प्रीमियम — Dense+Sparse+ColBERT | ~2 GB |
| `ArcticEmbedMLong` | 430 MB | 768 | 8192 | बहुभाषी | लंबे दस्तावेज़ | ~1.5 GB |
| `JinaEmbeddingsV2BaseCode` | 550 MB | 768 | 8192 | कोड+अंग्रेज़ी | कोड-अनुकूलित | ~1.5 GB |
डिफ़ॉल्ट मॉडल **ArcticEmbedXS** (90 MB, बहुभाषी) है। यह अधिकांश प्रोजेक्ट्स के लिए आकार और गुणवत्ता का सर्वोत्तम संतुलन प्रदान करता है।
एम्बेडिंग मॉडल [fastembed-rs](https://github.com/Anush008/fastembed-rs) (ONNX Runtime) पर आधारित हैं और पूरी तरह से स्थानीय स्तर पर चलते हैं। किसी अन्य मॉडल का उपयोग करने के लिए, `config.toml` में सेट करें:
```toml
[embedding]
model = "BGEM3" # मॉडल दस्तावेज़ से Variable नाम
```
40+ समर्थित मॉडलों की पूरी सूची (आयाम, संदर्भ लंबाई, भाषा समर्थन) **[EMBEDDING_MODELS.md](../docs/EMBEDDING_MODELS.md)** में देखें।
एक बार जब मॉडल डाउनलोड हो जाता है और तैयार होता है, Alcove स्वचालित रूप से CLI सर्च और एजेंट-आधारित MCP टूल्स दोनों के लिए हाइब्रिड सर्च का उपयोग करेगा। यह बहुभाषी प्रोजेक्ट्स और जटिल semantic क्वेरी के लिए विशेष रूप से प्रभावी है।
```bash
# वर्तमान प्रोजेक्ट खोजें (CWD से ऑटो-डिटेक्ट)
alcove search "authentication flow"
# सभी प्रोजेक्ट्स में खोजें — आपका व्यक्तिगत ज्ञान आधार
alcove search "OAuth token refresh" --scope global
# सटीक सबस्ट्रिंग मैचिंग के लिए grep मोड फ़ोर्स करें
alcove search "FR-023" --mode grep
```
इंडेक्स MCP सर्वर शुरू होने पर बैकग्राउंड में ऑटोमैटिक बिल्ड होता है, और फ़ाइल बदलाव डिटेक्ट होने पर ऑटोमैटिक रीबिल्ड होता है। कोई क्रॉन जॉब नहीं, कोई मैनुअल स्टेप्स नहीं।
**एजेंट्स के लिए कैसे काम करता है:** एजेंट्स बस क्वेरी के साथ `search_project_docs` कॉल करते हैं। Alcove बाकी सब संभालता है — रैंकिंग, डीडुप्लीकेशन (प्रति फ़ाइल एक परिणाम), क्रॉस-प्रोजेक्ट सर्च, और फ़ॉलबैक। एजेंट को कभी सर्च मोड चुनने की ज़रूरत नहीं।
**rebuild के दौरान मेमोरी:**
पीक RAM मॉडल के अनुसार भिन्न होती है — ऊपर दी गई तालिका में "पीक RAM" कॉलम देखें। बड़े मॉडल (BGEM3, ArcticEmbedMLong) rebuild के दौरान 1.5–2 GB उपयोग कर सकते हैं। rebuild पूरा होने के बाद, स्थिर अवस्था आपकी `[memory]` कॉन्फ़िगरेशन के अनुसार ~50-200 MB तक गिर जाती है। कम `max_hnsw_cache` और छोटे `model_unload_secs` से स्थिर मेमोरी को और कम किया जा सकता है।
## प्रोजेक्ट डिटेक्शन
डिफ़ॉल्ट रूप से, Alcove आपके टर्मिनल की वर्किंग डायरेक्टरी (CWD) से वर्तमान प्रोजेक्ट का पता लगाता है। आप `MCP_PROJECT_NAME` एनवायरनमेंट वेरिएबल से ओवरराइड कर सकते हैं:
```bash
MCP_PROJECT_NAME=my-api alcove
```
यह तब उपयोगी है जब आपका CWD डॉक्स रिपो में प्रोजेक्ट नाम से मेल नहीं खाता।
## दस्तावेज़ पॉलिसी
अपने डॉक्स रिपो में `policy.toml` के साथ टीम-व्यापी दस्तावेज़ीकरण मानक परिभाषित करें:
```toml
[policy]
enforce = "strict" # strict | warn
[[policy.required]]
name = "PRD.md"
aliases = ["prd.md", "product-requirements.md"]
[[policy.required]]
name = "ARCHITECTURE.md"
[[policy.required.sections]]
heading = "## Overview"
required = true
[[policy.required.sections]]
heading = "## Components"
required = true
min_items = 2
```
पॉलिसी फ़ाइलें प्राथमिकता के अनुसार हल होती हैं: **प्रोजेक्ट** (`/.alcove/policy.toml`) > **टीम** (`DOCS_ROOT/.alcove/policy.toml`) > **बिल्ट-इन डिफ़ॉल्ट** (config.toml की core फ़ाइल सूची)। यह प्रति-प्रोजेक्ट ओवरराइड की अनुमति देते हुए सभी प्रोजेक्ट्स में एकसमान दस्तावेज़ गुणवत्ता सुनिश्चित करता है।
## कॉन्फ़िगरेशन
कॉन्फ़िग `~/.config/alcove/config.toml` पर स्थित है:
```toml
docs_root = "/Users/you/documents"
[core]
files = ["PRD.md", "ARCHITECTURE.md", "PROGRESS.md", "DECISIONS.md", "CONVENTIONS.md", "SECRETS_MAP.md", "DEBT.md"]
[team]
files = ["ENV_SETUP.md", "ONBOARDING.md", "DEPLOYMENT.md", "TESTING.md", ...]
[public]
files = ["README.md", "CHANGELOG.md", "CONTRIBUTING.md", "SECURITY.md", ...]
[diagram]
format = "mermaid"
```
सभी सेटिंग्स `alcove setup` के माध्यम से इंटरैक्टिव तरीके से की जा सकती हैं। आप फ़ाइल को सीधे भी संपादित कर सकते हैं।
## समर्थित एजेंट्स
| एजेंट | MCP | स्किल |
|--------|-----|-------|
| Claude Code | `~/.claude.json` | `~/.claude/skills/alcove/` |
| Cursor | `~/.cursor/mcp.json` | `~/.cursor/skills/alcove/` |
| Claude Desktop | प्लेटफ़ॉर्म कॉन्फ़िग | — |
| Cline (VS Code) | VS Code globalStorage | `~/.cline/skills/alcove/` |
| OpenCode | `~/.config/opencode/opencode.json` | `~/.opencode/skills/alcove/` |
| Codex CLI | `~/.codex/config.toml` | `~/.codex/skills/alcove/` |
| Copilot CLI | `~/.copilot/mcp-config.json` | `~/.copilot/skills/alcove/` |
| Antigravity | `agy plugins install` | — |
## समर्थित भाषाएं
CLI स्वचालित रूप से आपके सिस्टम लोकेल का पता लगाता है। आप `ALCOVE_LANG` एनवायरनमेंट वेरिएबल से भी ओवरराइड कर सकते हैं।
| भाषा | कोड |
|------|------|
| English | `en` |
| 한국어 | `ko` |
| 简体中文 | `zh-CN` |
| 日本語 | `ja` |
| Español | `es` |
| हिन्दी | `hi` |
| Português (Brasil) | `pt-BR` |
| Deutsch | `de` |
| Français | `fr` |
| Русский | `ru` |
```bash
# भाषा ओवरराइड
ALCOVE_LANG=hi alcove setup
```
## अपडेट
| विधि | कमांड |
|------|-------|
| Homebrew | `brew upgrade alcove` |
| curl इंस्टॉलर | ऊपर दिया गया इंस्टॉल स्क्रिप्ट फिर से चलाएं |
| cargo binstall | `cargo binstall alcove@latest` |
| cargo install | `cargo install alcove@latest --features full-macos` |
| Claude Code Plugin | `claude plugin update epicsagas/alcove` |
```bash
alcove --version
```
## अनइंस्टॉल
```bash
alcove uninstall # स्किल्स और कॉन्फ़िग हटाएं
cargo uninstall alcove # बाइनरी हटाएं
```
## नॉलेज बेस वॉल्ट
प्रोजेक्ट दस्तावेज़ीकरण के अलावा, Alcove अनुसंधान नोट्स, संदर्भ सामग्री और क्यूरेटेड ज्ञान के लिए **स्वतंत्र नॉलेज बेस वॉल्ट** का समर्थन करता है जिन्हें LLMs खोज सकते हैं।
```bash
# AI अनुसंधान नोट्स के लिए एक वॉल्ट बनाएं
alcove vault create ai-research
# एक मौजूदा Obsidian वॉल्ट लिंक करें (कोई कॉपी नहीं — उसी स्थान पर इंडेक्सिंग)
alcove vault link my-obsidian ~/Obsidian/research
# एक दस्तावेज़ जोड़ें
alcove vault add ai-research ~/Downloads/transformer-survey.md
# वॉल्ट के लिए सर्च इंडेक्स बनाएं
alcove vault index
# सभी वॉल्ट सूचीबद्ध करें
alcove vault list
# areas (8 docs) → (linked)
# resources (71 docs) → (linked)
# zettelkasten (17 docs) → (linked)
# CLI से खोजें
alcove search "attention mechanism" --vault ai-research
# एजेंट्स MCP के माध्यम से खोजते हैं
search_vault(query="attention mechanism", vault="ai-research")
# सभी वॉल्ट एक साथ खोजें
search_vault(query="transformer", vault="*")
```
वॉल्ट प्रोजेक्ट दस्तावेज़ों से **पूरी तरह से अलग** हैं — अलग इंडेक्स, अलग कैश, अलग सर्च। आपके कोडिंग एजेंट की प्रोजेक्ट डॉक सर्च कभी भी वॉल्ट गतिविधि से प्रभावित नहीं होती है।
| विशेषता | प्रोजेक्ट दस्तावेज़ | वॉल्ट |
|---------|-------------|--------|
| उद्देश्य | प्रति-प्रोजेक्ट दस्तावेज़ीकरण | सामान्य ज्ञान आधार |
| स्टोरेज | `~/.alcove/docs/` | `~/.alcove/vaults/` |
| इंडेक्स | साझा प्रोजेक्ट इंडेक्स | प्रति-वॉल्ट स्वतंत्र इंडेक्स |
| कैश | `PROJECT_READER_CACHE` | `VAULT_READER_CACHE` |
| सर्च | `search_project_docs` | `search_vault` |
| सिमलिंक | नहीं | हाँ (बाहरी डायरेक्टरी लिंक करें) |
### वॉल्ट कॉन्फ़िगरेशन
डिफ़ॉल्ट रूप से, वॉल्ट `~/.alcove/vaults/` में स्टोर किए जाते हैं। आप इसे अपने `config.toml` में बदल सकते हैं:
```toml
[vaults]
root = "/path/to/your/vaults"
```
`config.toml` पर अधिक विवरण के लिए [कॉन्फ़िगरेशन](#कॉन्फ़िगरेशन) सेक्शन देखें।
## इकोसिस्टम
### [obsidian-forge](https://github.com/epicsagas/obsidian-forge)
Alcove स्वाभाविक रूप से **obsidian-forge** के साथ जुड़ता है, जो एक Obsidian वॉल्ट जनरेटर और ऑटोमेशन डेमॉन है। सर्वोत्तम एकीकरण के लिए, आपके Alcove का **`docs_root`** obsidian-forge प्रोजेक्ट आर्काइव की ओर संकेत करना चाहिए।
**1. दस्तावेज़ रूट सेट करें**
अपने प्राथमिक दस्तावेज़ों को obsidian-forge प्रोजेक्ट डायरेक्टरी पर इंगित करें (सीधे या सिमलिंक के माध्यम से):
```bash
# alcove सेटअप के दौरान, docs_root को इस पर सेट करें:
~/Obsidian/SecondBrain/99-Archives/projects
```
**2. ज्ञान क्षेत्रों को वॉल्ट के रूप में लिंक करें**
अन्य तीन obsidian-forge श्रेणियों को स्वतंत्र Alcove वॉल्ट के रूप में लिंक करें। यह `~/.alcove/vaults/` में सिमलिंक बनाता है:
```bash
# obsidian-forge श्रेणियों को लिंक करें
alcove vault link areas ~/Obsidian/SecondBrain/02-Areas
alcove vault link resources ~/Obsidian/SecondBrain/03-Resources
alcove vault link zettelkasten ~/Obsidian/SecondBrain/10-Zettelkasten
```
अब आपके एजेंटों के पास संरचित पहुंच है:
- **`search_project_docs`**: आर्काइव किए गए प्रोजेक्ट ज्ञान (PRD आदि) को खोजता है
- **`search_vault`**: आपके व्यापक ज्ञान क्षेत्रों और अनुसंधान नोट्स को खोजता है।
आप `~/.alcove/vaults/` में सिमलिंक की जाँच करके भौतिक स्टोरेज मैपिंग को सत्यापित कर सकते हैं।
## FAQ
### ripgrep को MCP टूल के रूप में इस्तेमाल क्यों नहीं करते?
ripgrep पूरी फ़ाइल लौटाता है। अगर आपका एजेंट "auth" खोजता है और 5 फ़ाइलें मिलती हैं जो औसतन 200 लाइनों की हैं, तो कंटेक्स्ट में ~10K टोकन इंजेक्ट हो जाते हैं — जिनमें से ज़्यादातर अप्रासंगिक होते हैं। Alcove दस्तावेज़ों को खंडों में विभाजित करता है, खंडों को रैंक करता है, और केवल सबसे प्रासंगिक अंश लौटाता है। यह सिमेंटिक सर्च (वेक्टर एम्बेडिंग) भी प्रदान करता है जो ripgrep नहीं कर सकता — "डिप्लॉयमेंट पाइपलाइन कैसे संरचित है" जैसी क्वेरी आपके DEPLOYMENT.md में किसी कीवर्ड से मैच नहीं होगी, लेकिन Alcove की वेक्टर सर्च उसे ढूंढ लेगी।
### क्या यह CLAUDE.md / AGENTS.md की जगह लेता है?
नहीं — दोनों के अलग उद्देश्य हैं। एजेंट कॉन्फ़िग फ़ाइलें (CLAUDE.md, AGENTS.md) **व्यवहारिक नियम** परिभाषित करती हैं: कमिट शैली, भाषा वरीयताएं, सुरक्षा बाधाएं। Alcove **संस्थागत ज्ञान** प्रबंधित करता है: आर्किटेक्चर निर्णय, प्रगति ट्रैकिंग, कोडिंग सम्मेलन, कोड संरचना। एजेंट कॉन्फ़िग यह तय करता है कि *एजेंट को कैसे काम करना चाहिए*। Alcove यह तय करता है कि *एजेंट को क्या जानना चाहिए*।
### Rust क्यों?
एकल बाइनरी, कोई रनटाइम निर्भरता नहीं। Tantivy सबसे उत्तम BM25 है। fastembed (ONNX Runtime) हमें Python के बिना लोकल वेक्टर एम्बेडिंग देता है। एक `cargo install` या curl — कोई Docker नहीं, कोई Node.js नहीं, कोई virtualenv नहीं।
### बढ़ती कंटेक्स्ट विंडो का क्या?
बड़ी विंडो प्रासंगिकता की समस्या को हल नहीं करतीं। 200K-टोकन की विंडो में भी अप्रासंगिक दस्तावेज़ों से भरने पर एजेंट आउटपुट की गुणवत्ता गिर जाती है — Anthropic की अपनी डॉक्यूमेंटेशन चेतावनी देती है कि फूले हुए कॉन्फ़िग फ़ाइलें एजेंट्स को वास्तविक निर्देशों को अनदेखा करने पर मजबूर करती हैं। लक्ष्य ज़्यादा कंटेक्स्ट नहीं, बल्कि सही समय पर सही कंटेक्स्ट है।
## रोडमैप
- **बहु-उपयोगकर्ता रिमोट एक्सेस** — LAN/VPN पर टीम डॉक शेयरिंग के लिए REST API (बेयरर टोकन प्रमाणीकरण, रेट लिमिटिंग पहले से लागू)। आवश्यक: लेखन API, समवर्ती इंडेक्स समन्वय, प्रोजेक्ट जीवनचक्र प्रबंधन।
## योगदान
बग रिपोर्ट, फ़ीचर रिक्वेस्ट और पुल रिक्वेस्ट का स्वागत है। चर्चा शुरू करने के लिए [GitHub](https://github.com/epicsagas/alcove/issues) पर एक इश्यू खोलें।
## लाइसेंस
Apache-2.0