qmd

(★ 29,026)

mini cli search engine for your docs, knowledge bases, meeting notes, whatever. Tracking current sota approaches while being all local

File Explorer

  • .gitattributes
  • .gitignore
  • bun.lock
  • CHANGELOG.md
  • CLAUDE.md
  • example-index.yml
  • flake.lock
  • flake.nix
  • LICENSE
  • migrate-schema.ts
  • oxlint.config.ts
  • package.json
  • pnpm-lock.yaml
  • README.md
  • tsconfig.build.json
  • tsconfig.json
  • vitest.config.ts

# Installation Guide

node
Prerequisites

Setup Steps

npm install -g @tobilu/qmd

Install QMD globally using npm.

qmd collection add ~/notes --name notes

Add notes or document folders as collections for searching.

qmd embed

Generate embeddings for semantic search.

qmd query "quarterly planning process"

Perform hybrid search with reranking.

Key Commands

qmd collection add ~/notes --name notes

Add a new document folder (collection) to the search index.

qmd context add qmd://notes "Personal notes and ideas"

Add contextual metadata to improve LLM search relevance.

qmd embed

Generate vector embeddings for semantic search.

qmd search "project timeline"

Perform fast keyword-based full-text search.

qmd query "quarterly planning process"

Perform high-quality hybrid search with LLM reranking.

qmd mcp --http --port 8181

Start the Model Context Protocol server for AI agent integration.

Sufficient RAM or VRAM is required to run local LLM models via node-llama-cpp and GGUF.

# Use via CDN

jsDelivr

jsDelivr serves any public GitHub repository as a CDN with zero setup. Pick a version and a file to get a ready-to-paste link and snippet.

Release Timeline

Actively Maintained

Command Glossary

Commands referenced in this DOCs, explained below.

🔍

brew install

View Details ▼

Install a Homebrew formula or cask.

brew install {{formula|cask}}

Install a formula/cask:

brew install {{[-s|--build-from-source]}} {{formula}}

Build and install a formula from source (dependencies will still be installed from bottles):

brew install {{[-n|--dry-run]}} {{formula|cask}}

Download the manifest, print what would be installed but don't actually install anything:

🔍

bun install

View Details ▼

Install JavaScript dependencies for a project from `package.json`.

bun {{[i|install]}}

Install all dependencies listed in `package.json`:

bun {{[i|install]}} {{package_name}}@{{version}}

Install a single package (this is an alias for `bun add`):

bun {{[i|install]}} {{[-g|--global]}} {{package_name}}

Install a package globally:

🔍

bunx

View Details ▼

Execute a package binary (installed locally or fetched remotely).
Note: `bun x` can be used as an alias for `bunx`.

bunx {{package_name}} "{{command_argument}}"

Download and execute a package from the registry:

bunx {{package_name}} --version

Check the version of a locally installed package (if found):

bunx --bun {{package_name}}

Force an executable to run with the Bun runtime (instead of Node):

🔍

claude

View Details ▼

An agent-based coding tool that understands your code base and helps you code faster through natural language commands.

claude prompt

Execute with prompt:

claude update

Update `claude`:

claude mcp list

Get the list of specified MCP servers:

🔍

git clone

View Details ▼

Clone an existing repository.

git clone {{remote_repository_location}} {{path/to/directory}}

Clone an existing repository into a new directory (the default directory is the repository name):

git clone --recursive {{remote_repository_location}}

Clone an existing repository and its submodules:

git clone {{[-n|--no-checkout]}} {{remote_repository_location}}

Clone only the `.git` directory of an existing repository:

🔍

git pull

View Details ▼

Fetch branch from a remote repository and merge it to local repository.

git pull

Download changes from default remote repository and merge it:

git pull {{[-r|--rebase]}}

Download changes from default remote repository and use fast-forward:

git pull {{remote_name}}

Download changes from a specific remote repository:

🔍

lex

View Details ▼

Lexical analyzer generator.
Given the specification for a lexical analyzer, generates C code implementing it.
Note: On most major OSes, this command is an alias for `flex`.

lex {{analyzer.l}}

Generate an analyzer from a Lex file, storing it to the file `lex.yy.c`:

tldr flex

View documentation for the original command:

lex -t {{analyzer.l}} > {{analyzer.c}}

Specify the output file:

🔍

npm install

View Details ▼

Install Node packages.

npm {{[i|install]}}

Install dependencies listed in `package.json`:

npm {{[i|install]}} {{package_name}}@{{version}}

Download a specific version of a package and add it to the list of dependencies in `package.json`:

npm {{[i|install]}} {{package_name}} {{[-D|--save-dev]}}

Download the latest version of a package and add it to the list of dev dependencies in `package.json`:

🔍

npm link

View Details ▼

Symlink a local package into the global `node_modules` or another project for development.

npm {{[ln|link]}}

Symlink the current package globally:

npm {{[ln|link]}} {{package_name}}

Link a globally linked package into another project's `node_modules`:

npm {{[r|unlink]}} {{package_name}}

Unlink a package from the current project:

🔍

npm

View Details ▼

JavaScript and Node.js package manager.
Manage Node.js projects and their module dependencies.
Some subcommands such as `install`, `run`, etc. have their own usage documentation.

npm init {{[-y|--yes]}}

Create a `package.json` file with default values (omit `--yes` to do it interactively):

npm {{[i|install]}}

Download all the packages listed as dependencies in `package.json`:

npm {{[i|install]}} {{package_name}}@{{version}}

Download a specific version of a package and add it to the list of dependencies in `package.json`:

🔍

npx

View Details ▼

This command is an alias of `npm exec`.

tldr npm exec

View documentation for the original command:

🔍

regex

View Details ▼

Regular expressions (`regex`) are patterns used to match, search, and manipulate text.
Note: `regex` isn't a command, but syntax to be used with other commands.
See also: `egrep`, `glob`.

.

Match any single character:

^{{hello}}

Match the start of a line:

{{world}}$

Match the end of a line:

🔍

query

View Details ▼

Display information about user sessions and process.

query session

Display all user sessions:

query session /server:{{hostname}}

Display the current user sessions on a remote computer:

query user

Display logged in users:

// repository documentation