Skip to content

Sagar-CK/manifold

Repository files navigation

Manifold Logo

Manifold

Native desktop search for your files — by keyword, meaning, and tags. Everything runs locally; folders and embeddings stay on your machine.

Manifold search UI

What it does

  • Hybrid search: text/OCR in file contents, semantic similarity via Gemini embeddings
  • Tag files and browse a graph of related documents
  • Indexes PDFs, images, video, audio, and common text formats
  • Electron app (React + TypeScript), vector store in Qdrant

Prerequisites

Development

pnpm install
pnpm setup:dev    # PDFium + FFmpeg dev binaries
pnpm qdrant:up    # start Qdrant (Docker)
pnpm dev          # Electron + Vite

First launch: the onboarding flow checks Qdrant and Gemini. Then open Settings → Paths and add folders to index. Embedding runs automatically in the background.

Optional: Qdrant dashboard at http://127.0.0.1:6333/dashboard.

Stop Qdrant when you're done:

pnpm qdrant:down

Build & package

Compile only (no installer):

pnpm build

Installable app (bundles Qdrant + runtime binaries; Docker not required for end users):

pnpm setup:binaries
pnpm dist

Output: release/ (DMG on macOS, etc.).

Useful commands

Command Purpose
pnpm dev Run app in development
pnpm build Typecheck + production frontend/Electron build
pnpm dist Build installers (release/)
pnpm check Lint + TypeScript
pnpm qdrant:up / qdrant:down Start/stop Docker Qdrant
pnpm setup:dev Dev binaries (PDFium, FFmpeg)
pnpm setup:binaries Full binaries for packaging/CI

Project structure

manifold/
├── config/              # Shared app config, including folder exclude rules
├── docs/                # Documentation and README assets
├── electron/            # Main process entry points plus IPC/core/service modules
│   ├── core/            # App paths, logging, and window lifecycle helpers
│   ├── ipc/             # IPC channel registration and request handlers
│   ├── pdf/             # PDF parsing/splitting/pdf.js setup
│   └── services/        # Indexing, embeddings, Qdrant, and thumbnails
├── public/              # Static assets served by Vite
├── resources/           # Runtime binaries populated by setup scripts
├── scripts/             # Dev, packaging, and binary setup scripts
└── src/                 # Renderer
    ├── components/      # Shared app/file/tag/ui components
    ├── features/        # Feature-specific components (search, settings)
    ├── lib/             # Domain helpers (config, files, graph, tags, etc.)
    └── pages/           # Route-level pages and page-only components/hooks

Build artifacts (dist/, dist-electron/, build/, release/) are generated locally and not committed.

More

About

Multimodal semantic search and visualization for your files.

Resources

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors