Dori Mini banner
vshrinath vshrinath

Dori Mini

Communication community

Description

Dori Mini — local, agent-driven capture router (YouTube, documents, meetings, expenses) for Claude Code

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Dori Mini

[![GitHub](https://img.shields.io/badge/github-vshrinath%2Fdori--mini-1a1f4e)](https://github.com/vshrinath/dori-mini)

A local, portable mirror of [Dori](https://github.com/) engine's real capture-routing, meeting-routing, search, and inbox logic — implemented as plain Node.js scripts, so any agent with shell access (Claude Code, Codex CLI, Grok Build, or a plain terminal) can use it identically. No Dori server required.

Every script mirrors specific Dori engine source — not a simplified guess at what Dori does. See the comment at the top of each `.mjs` file for exactly what it mirrors.

What it does

  • route-destination.mjs / route-meeting.mjs — decide where a capture or meeting file belongs, using the same folder conventions and attendee-vote logic as Dori's real canonicalOutputPath and meeting-router.ts (including its deliberate rule: never auto-pick an ambiguous destination).
  • reindex-vault.mjs — full-text search cache (SQLite FTS5), schema-matched to Dori's own vault_documents table.
  • semantic-index.mjs — local embeddings (no API key, runs via Transformers.js) + hybrid vector/FTS search with the same RRF fusion Dori's vector store uses. A full reindex also prunes rows for files no longer on disk, mirroring dori-engine's reconcileSearchIndex().
  • sync-vault.mjsgit pull on the vault repo, then a full reindex of both the FTS and semantic caches — mirrors dori-engine's git-sync-triggered reconcile, for when someone else's push deletes or edits files your local index doesn't know about yet.
  • apply-template.mjs — additive-only project folder scaffolding, mirroring projects.apply_template.
  • self-store.mjs — your own profile (name, role, org, projects), stored as a person file exactly like anyone else's, just marked is_self: true — mirrors real Dori's isSelf flag. route-meeting.mjs excludes whoever is marked this way from attendee-vote matching automatically.
  • **