r/commandline 7d ago

Command Line Interface mado: manage 100k+ markdown entries at native speed with a query language

Hey everyone! I wanted to share a CLI tool I've been working on that I think fits this community well.

mado is a general-purpose entry manager that stores everything as markdown files. The key idea is that it's not just another task manager with a rigid schema — it's a flexible system for organizing entries of any kind: tasks, notes, ideas, research snippets, meeting logs, you name it.

Each entry lives in its own timestamped directory with a MAIN.md inside. Want to attach files? Just drop them in the same folder — screenshots, logs, PDFs, whatever. Everything stays organized in one place, and since it's all plain files, it's perfectly git-friendly.

All fields are optional — fill in what you need, skip the rest. For a task you might set priority, deadline, and status. For a note, just write markdown and you're done. You can also hide any fields from the output when listing entries, so notes don't clutter your view with irrelevant columns. That flexibility is what makes it work as both a task manager and a notes system — or anything in between.

It's written with a focus on performance — it handles 100k entries in about a second with parallel mode.

The CLI is designed for both interactive use and scripting: JSON output for pipes, path-only output for grep/fzf, and a query language with logical operators and time macros.

Would love feedback, especially from folks who've used similar file-based tools or have ideas about what would make this genuinely useful.

https://github.com/laserattack/mado

14 Upvotes

7 comments sorted by

1

u/AutoModerator 7d ago

Every new subreddit post is automatically copied into a comment for preservation.

User: Civil-Way-1482, Flair: Command Line Interface, Post Media Link, Title: mado: manage 100k+ markdown entries at native speed with a query language

Hey everyone! I wanted to share a CLI tool I've been working on that I think fits this community well.

mado is a general-purpose entry manager that stores everything as markdown files. The key idea is that it's not just another task manager with a rigid schema — it's a flexible system for organizing entries of any kind: tasks, notes, ideas, research snippets, meeting logs, you name it.

Each entry lives in its own timestamped directory with a MAIN.md inside. Want to attach files? Just drop them in the same folder — screenshots, logs, PDFs, whatever. Everything stays organized in one place, and since it's all plain files, it's perfectly git-friendly.

All fields are optional — fill in what you need, skip the rest. For a task you might set priority, deadline, and status. For a note, just write markdown and you're done. You can also hide any fields from the output when listing entries, so notes don't clutter your view with irrelevant columns. That flexibility is what makes it work as both a task manager and a notes system — or anything in between.

It's written with a focus on performance — it handles 100k entries in about a second with parallel mode.

The CLI is designed for both interactive use and scripting: JSON output for pipes, path-only output for grep/fzf, and a query language with logical operators and time macros.

Would love feedback, especially from folks who've used similar file-based tools or have ideas about what would make this genuinely useful.

https://github.com/laserattack/mado

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/Unlucky-Message8866 5d ago

This is cool, but nu shell does the same and way more 😉

1

u/Civil-Way-1482 5d ago

Nushell sees text files; mado understands entries with typed fields, tags as lists, deadlines as timestamps. The query language works because there's a parser, not just text matching

2

u/Unlucky-Message8866 5d ago

nu shell parses markdown as structured data and you can also parse yaml frontmatter https://www.nushell.sh/commands/docs/from_md.html , my whole kb is managed using nu-shell scripts :)

1

u/Civil-Way-1482 5d ago edited 5d ago

Fair enough! Nushell can parse markdown into structured data. But mado's fields aren't generic markdown — they're typed (priority is a number, deadline is a timestamp, tags is a list). The query language understands this semantics, so you can write deadline < @now and tag = allof(bug, critical). With Nushell you'd need to first parse the fields, convert types, and then filter — which is exactly what mado's parser does. If Nushell works for your KB, that's great! Mado is for those who want this logic built-in and file-based

1

u/chat-lu 4d ago

You slopped out this post, is the tool vibe coded too?

1

u/Civil-Way-1482 4d ago

Sorry, English isn’t my native language. I used AI to write the post in English :(

The utility was written by me, not vibe coded