medi

A speedy CLI driven Markdown manager


medi logo

Overview

A fast, editor-centric, command-line notes manager built in Rust.

medi is a powerful tool for creating and managing your notes, articles, and documentation directly from the terminal. It’s built for developers, writers, and anyone who loves the speed and focus of a command-line workflow, combining the simplicity of Markdown with the speed of an embedded database.


Key Features

  • Speed: Instant access to any note, no matter how large your collection grows.
  • Interactive Fuzzy Finder: Instantly find and edit any note by its key or title with an interactive medi find command.
  • Full-Text Search: Instantly find notes by their content, title, or tags using a powerful built-in search engine.
  • Templates for Productivity: Speed up repetitive writing tasks by creating new notes from custom templates.
  • Integrated Task Management: Turn your notes into actionable to-do lists. Add tasks to any note (medi task add ...), list all your pending items, mark them as complete (medi task done ...), and set priorities to focus on what’s important.
  • Status Dashboard: Get a quick overview of your entire database with the medi status command.
  • Flexible Input: Create notes interactively in your editor, with a one-liner -m flag, or by piping from other commands.
  • Robust Import/Export: Easily create version-controllable snapshots of your database or import notes from disk.
  • Shell Completion: Generates completion scripts for bash, zsh, and fish for a faster workflow.

Core Philosophy

medi is built on a few guiding principles:

  • CLI-first: Everything is done through the terminal. No GUIs, no distractions.
  • Editor-centric: Your text editor ($EDITOR) is where you write. medi gets you there quickly and saves your work securely.
  • Local & private: All content is stored on your local machine. No cloud services, no network access.
  • Zero-config start: Install it and start writing immediately.

Technical Details

medi is written in Rust. It uses clap for command-line argument parsing, sled for the embedded key-value database and tantivy for searching. For the fuzzy finding I am using the skim crate.

View on GitHub →

Tags: project medi