Usage

bestmate deploy --vault <path> --clients <path>

What It Does

  1. Vault — Ingests all markdown/text files as org-wide knowledge
  2. Clients — Scans for subfolders, creates a twin per client, ingests their files into that twin
  3. Deduplicates — Safe to re-run when files change

Examples

# Deploy both vault and clients
bestmate deploy --vault ./knowledge-base --clients ./clients

# Preview first (no changes)
bestmate deploy --vault ./vault --clients ./clients --dry-run

# Vault only (org-wide)
bestmate deploy --vault ./knowledge-base

# Clients only
bestmate deploy --clients ./clients

# Vault as private (not org-wide)
bestmate deploy --vault ./my-vault --vault-private

Flags

FlagDescription
--vaultPath to shared vault folder (Obsidian/markdown)
--clientsPath to clients folder (each subfolder = one client)
--org-nameOrganization twin name
--vault-privateIngest vault as private instead of org-wide
--dry-runPreview without making changes

Expected Folder Structure

knowledge-base/          ← --vault (org-wide)
├── methodology.md
├── frameworks/
│   ├── augment-vs-automate.md
│   └── getting-started.md
└── playbooks/
    └── onboarding.md

clients/                 ← --clients (per-client twins)
├── acme-corp/
│   ├── CLIENT.md
│   └── meeting-notes.md
├── globex/
│   └── CLIENT.md
└── initech/
    ├── CLIENT.md
    └── requirements.md

Output

🚀 Bestmate Deploy

📚 Scanning vault: ./knowledge-base
   Found 12 files
   ✓ Ingested 12 files as org-wide knowledge

👥 Scanning clients: ./clients
   Found 3 clients

   ✓ acme-corp: 2 files → twin:acme-corp
   ✓ globex: 1 files → twin:globex
   ✓ initech: 2 files → twin:initech

✅ Deploy complete: 17/17 files ingested