Skip to main content

MDRack

MDRack 1.3.0 is a local Python 3.11+ command-line and embedded retrieval rack for Markdown, typed metadata, timed transcripts, frame-caption text, and explicitly supplied images. Its primary operational user is an agent working under a human operator's explicit authority over locally held data.

The application depends on standalone mdrack-core and mdrack-sqlite distributions. The first is the stdlib-only provider/persistence-neutral kernel; the second is the stdlib-plus-core generic resource catalog/search adapter. The mdrack distribution owns Markdown/image ingestion, app migration generations, LM Studio integration, Click JSON commands, and MDRackEngine; it vendors neither package.

Quick start

uv sync --all-extras
uv run mdrack --help
uv run mdrack guide
mkdir -p ./notes
uv run mdrack --root ./notes init
uv run mdrack --root ./notes scan --provider fake
uv run mdrack --root ./notes search "architecture" --mode text

This is an offline installation smoke: fake embeddings are deterministic test data, not semantic-quality evidence. Configure LM Studio before ordinary semantic or hybrid use; see Getting started and the CLI guide.

Agent-first work with human data

For a real task, an agent first identifies whether it is using the source-checkout command (uv run mdrack) or an already installed mdrack command, then asks for an explicit data root and the exact operation to perform. Keep private sources outside this repository and out of shell history, reports, and commits. The static guide and --help are read-only discovery steps; init, scan, explicit ingest, rebuild, delete, and provider/model actions change derived local state and must be named and authorized before the agent runs them.

An authorized workflow can scan Markdown in the chosen root or ingest one selected raw text/Markdown file, image with caller-supplied text, WAVE file, or ISO-BMFF video. The WAVE and ISO-BMFF paths require the caller to opt in to a selected local adapter executable; MDRack does not provide built-in transcription, decoding, or visual analysis. Search by text and optional scope, retain only returned logical IDs and portable locators or time/line evidence, then use a new CLI process with the same root to run status against the same derived store. Source files remain unchanged. The complete safe sequence and its evidence boundary are in Getting started, operations, and the shipped MDRack agent skill.

A real acceptance claim is stronger than this quick start: it requires an agent to exercise the installed public surface with separately authorized human-like private data while checking source immutability and privacy. Synthetic/offline checks are supporting evidence only; they do not substitute for that run.

The CLI also provides read, files, status, doctor, rebuild, eval, and LM Studio model-management commands. Host applications can use MDRackEngine without importing Click.

How it works

  1. The default markdown-it adapter parses UTF-8 Markdown into source blocks with H1–H6 heading paths and exact line/character provenance.
  2. Markdown image syntax contributes only safe textual alt/alias prose; paths and referenced files are never inspected or indexed as assets.
  3. The app projects documents into typed core resources and writes a complete graph atomically to the fixed SQLite catalog at <store>/catalog.sqlite3.
  4. Core retrieval accepts ready lexical/vector branches, applies scope filters before limits, groups resource evidence, and performs deterministic weighted RRF.
  5. Explicit image ingestion stores derived caption/OCR text and ready vectors, never source bytes; duplicate and whole-resource similarity use logical IDs.

Documentation

Files under docs/plans/ and the legacy architecture/design documents are historical unless explicitly marked as an active plan. They are not the current product contract.

Images

Markdown image syntax never starts image ingestion. It preserves eligible alt or textual alias once as ordinary prose and discards target/path/title/dimensions. mdrack image ingest is a separate explicit local-file operation. Caption/OCR text is caller-supplied or produced by an injected extractor; live LM Studio use requires an explicit provider choice. Source bytes remain outside SQLite and are never modified.

Known limitations

  • SQLite is the only persistent database. Fresh compact generations use canonical float32 vectors and the builtin exact Python scan; there is no ANN/vector extension dependency in the base distribution.
  • Structural overlap_chars is currently not consumed, so structural chunks do not overlap.
  • Production reranking is disabled. rerank_rank and rerank_score remain null; non-null reranker injection fails closed.
  • MDRack indexes supplied transcripts and frame-caption text; it does not transcribe raw audio or perform pixel/visual or acoustic search.
  • The CLI also accepts explicitly authorized local raw-media adapters: ingest audio SOURCE_PATH --source-ref REF --allow-external-stt --stt-command COMMAND for RIFF/WAVE input and ingest raw-video SOURCE_PATH --source-ref REF --allow-external-video-extractor --video-extractor-command COMMAND for ISO-BMFF input. These shell-free stdin adapters are caller-selected; they are not built-in transcription, decoding, pixel/acoustic search, or provider quality evidence.
  • Provider-free and real-source checks prove retrieval behavior and source integrity, not universal semantic quality from a live embedding model.
  • Legacy files and sections inspection commands still expose internal record IDs; new resource/image/search contracts expose logical IDs only.
  • The resource-core schema lives in one fixed catalog.sqlite3. There is no candidate-generation cutover or runtime rollback; destructive recreation is separately authorized.

See the complete limitations ledger.

Verification and recovery

Run the complete offline verification suite with scripts/verify.sh on Linux or scripts/verify.ps1 on Windows. The release-specific cells and strict gates are documented in offline release verification: they cover mdrack, mdrack-core, mdrack-media, and mdrack-sqlite as wheel and sdist, Linux/Windows × Python 3.11/3.12 evidence, offline E2E/privacy lanes, and installed smoke. Provider calls, network fallback, and remote execution are not part of the default path. Fixed-catalog recovery and destructive recreation boundaries are documented in recovery.

For a reproducible Windows executable build, see Windows EXE build.

License and commercial use

MDRack is standard MIT software. Commercial use, modification, redistribution, sublicensing, and sale are allowed, provided that the exact copyright and permission notice — Copyright (c) 2026 VladimirMonin — stays with copies or substantial portions. MDRack is provided without warranty. This is a project license summary, not legal advice or clearance for a particular distribution.

The policy for the four Python distributions and future Windows bundle is in licensing and commercial use. The exact locked resolver dependency graph, including the Windows-only colorama branch and certifi/MPL-2.0, is recorded in THIRD_PARTY_NOTICES.md. Resolver-installed dependencies are not relicensed by MDRack and are not bundled in the four base Python wheel/sdist artifacts.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mdrack-1.3.0.tar.gz (950.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mdrack-1.3.0-py3-none-any.whl (278.8 kB view details)

Uploaded Python 3

File details

Details for the file mdrack-1.3.0.tar.gz.

File metadata

  • Download URL: mdrack-1.3.0.tar.gz
  • Upload date:
  • Size: 950.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mdrack-1.3.0.tar.gz
Algorithm Hash digest
SHA256 12f695694d3b7fcd64d80fe8350e29e93f2bb1d036de3326d29c4e9e38b2fc6e
MD5 27e516c54aec155149efa96b3e285054
BLAKE2b-256 26723cee2dae982dd361f387325637cd04df56024147e117adbb04480ad36441

See more details on using hashes here.

File details

Details for the file mdrack-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: mdrack-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 278.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mdrack-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 71e71e30e60ccdc9f75d6b8bd9bbe78a2063794f078e5a4bcc9ad19e501324b1
MD5 34dca42daf5b7982afe1e59eff3305de
BLAKE2b-256 d7e1ede66b9d8449d2be2bc72b584bf50fbd36a9de4a2bb09d2d124780b3c91d

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page