npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

markiniser

v0.1.2

Published

Local-first markdown organizer for browsing, searching, and editing markdown files on localhost.

Downloads

14

Readme

Markiniser

npm version license

Markiniser is a local-first markdown workspace for browsing, searching, editing, and previewing .md files on localhost. It runs entirely on your machine and only works against the root folders you configure.

Run it instantly:

npx markiniser

Install globally if you prefer:

npm install -g markiniser
markiniser

npm package: https://www.npmjs.com/package/markiniser

GitHub Packages publish target for the repo sidebar:

npm run publish:github

This publishes the scoped package @efficientgoose/markiniser to GitHub Packages so the repository's Packages section is populated, while npm continues to use the unscoped markiniser package.

What It Does

  • Scans one or more local roots for markdown files
  • Shows a file tree sidebar
  • Opens files in a raw markdown editor with autosave
  • Renders a live preview beside the editor
  • Supports command-palette search with Cmd/Ctrl+K
  • Lets you change the active root from inside the app
  • Includes a built-in welcome.md sample file on first launch

Requirements

  • Node.js 20+
  • npm

Install

Fastest way to run it once published:

npx markiniser

For local development in this repo:

npm install

Configure Your Markdown Root

Markiniser looks for config in:

  • .markiniserrc
  • .markiniserrc.json
  • markiniser.config.js

The simplest option is .markiniserrc.json in the repo root:

{
  "roots": ["/absolute/path/to/your/notes"],
  "ignore": ["node_modules", ".git", "dist", "build", ".obsidian", ".trash", ".Trash"],
  "port": 4000
}

Notes:

  • roots should be absolute paths or ~/...
  • only .md files inside configured roots are editable

If no config exists yet, Markiniser now creates one automatically at ~/.markiniserrc.json on first run:

  • default root: ~/Desktop
  • fallback root if Desktop does not exist: the current directory
  • default port: 4000

Build

Build everything once before running:

npm run build

Run

Recommended local command:

node bin/markiniser.js

Published package command:

npx markiniser

What happens:

  • on first run, a default config is created automatically if needed
  • the server starts on 127.0.0.1:4000 by default
  • the browser opens automatically unless you pass --no-open
  • if packages/web/dist exists, the app UI is served at /
  • if the frontend is not built, Markiniser still serves the API

Useful flags:

node bin/markiniser.js --port 4001
node bin/markiniser.js --config /absolute/path/to/config.json
node bin/markiniser.js --no-open

If the browser does not open correctly, use:

http://127.0.0.1:4000/

How To Use

On First Launch

  • Markiniser opens the virtual sample file welcome.md
  • use it to verify the editor, preview, and layout controls

Open Files

  • click any markdown file in the sidebar
  • or press Cmd/Ctrl+K to open the command palette and search

Edit Files

  • edit directly in the raw markdown editor
  • autosave runs for real disk-backed files
  • Cmd/Ctrl+S triggers an immediate save and shows a toast

Preview

  • split view is available by default
  • use the top-right pane buttons to switch between:
    • editor only
    • preview only
    • split view

Rename Files

  • click the filename in the top header
  • edit the basename only
  • press Enter to rename the file on disk

Change Root Folder

  • click the pencil beside Files in the sidebar
  • use Browse folder
  • apply the new root

This updates the config file and rebuilds the tree.

Keyboard Shortcuts

  • Cmd/Ctrl+K: open command palette
  • Cmd/Ctrl+S: save file immediately
  • Cmd/Ctrl+Shift+P: toggle preview panel

Development Checks

npm run test
npm run build
npm run typecheck