Skip to main content

Visual markdown workspace — hierarchy editor, prose analysis, live preview

Project description

PiTH

CI Build Standalone Docs PyPI Release

A visual markdown workspace for people who work with large collections of .md files.

If you've ever maintained a documentation site and found yourself hand-editing a YAML nav file, a sidebars.js, or a custom sidebar config every time you added, renamed, or reorganized a page — this tool is for you.

PiTH gives you a visual, drag-and-drop interface for organizing markdown files into a hierarchy. The hierarchy is stored as a simple tree.yaml alongside your files, and can be exported directly to MkDocs or Docusaurus config format when you're ready to build your site.

Features

Organize

  • Visual hierarchy — drag and drop files to reorder and nest them; keyboard shortcuts for fine-grained control
  • Unlinked file management — files not in the hierarchy surface automatically; rubber-band, shift-click, and ctrl-click multi-select; multi-drag to hierarchy
  • Flatten / restore — flatten the tree to start fresh; restore the saved hierarchy if you change your mind
  • Multiple projects — switch between doc sets without losing your place

Edit and analyze

  • Built-in editor with live preview — split pane with syntax highlighting, rendered preview, and vi mode (:w / :x)
  • Readability stats — word count, sentence length, and 5 readability scores per file
  • Scan Project — project-wide analysis report with export to HTML/PDF
  • Frontmatter templates — define expected keys per project, scan for compliance, batch-update files
  • Internal link validation — project-wide broken link scan; per-file panel that re-checks on save
  • Full-text search — search across all files with highlighted match context
  • Mermaid diagrams — flowcharts, sequence diagrams, and more render live in the preview pane

Import and export

  • Import markdowns from any directory — create a new project from an existing folder of .md files, or add individual files to a project
  • MkDocs and Docusaurus — import an existing nav config or export when ready to publish
  • HTML/PDF export — whole-collection export to a single document with table of contents and print CSS

Local and private

  • Runs entirely on your machine — no cloud, no accounts, no ongoing cost
  • Projects stored in ~/.pith/projects/ — separate from the app, never overwritten on upgrade
  • Available as a PyPI package or standalone executable

Install

Requires Python 3.10+.

pip install pith
pith

On Windows and Mac, pith opens a desktop window. On Linux, it starts a server and prints the URL. On WSL, it opens your Windows browser automatically.

Flags

Flag Effect
--server Force headless mode on any platform — starts the server and opens a browser tab
--port N Listen on port N instead of 5000

Linux / remote access

Start pith on the server first, then open the tunnel:

ssh user@host "nohup pith > ~/.pith/pith.log 2>&1 &"
ssh -L 5000:localhost:5000 user@host

Then open http://localhost:5000 in your local browser. If you use an SSH config alias (e.g. Host myserver), substitute that for user@host in both commands.

Standalone download

No Python required. Download the latest build from the Releases page.

Platform File
Windows pith-Windows.zip
Mac pith-macOS.zip
Linux pith-Linux.zip

Unzip and run the executable:

  • Windows: Double-click pith.exe
  • Mac: Right-click → Open the first time to bypass the unsigned app warning
  • Linux: Run ./pith from a terminal

Documentation

Full documentation is available at rick-does.github.io/pith.

Run from source

Requires Python 3.12+ and Node.js LTS.

Windows:

git clone git@github.com:rick-does/pith.git
cd pith
start.bat

Mac / Linux / WSL:

git clone git@github.com:rick-does/pith.git
cd pith
./start.sh

Then open http://localhost:8002 in your browser.

Tech stack

  • Backend: Python, FastAPI
  • Frontend: React, Vite, TypeScript
  • Editor: CodeMirror 6 (vi mode via @replit/codemirror-vim)
  • Drag and drop: dnd-kit
  • Readability: textstat
  • Standalone: PyInstaller, pywebview

Project details


Download files

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

Source Distribution

pith_md-0.1.3.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

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

pith_md-0.1.3-py3-none-any.whl (1.5 MB view details)

Uploaded Python 3

File details

Details for the file pith_md-0.1.3.tar.gz.

File metadata

  • Download URL: pith_md-0.1.3.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pith_md-0.1.3.tar.gz
Algorithm Hash digest
SHA256 70baaff2256253228c884c8053ed8418169ae8535dc0a90e2a11937d06a7169e
MD5 597b1c9879482a7ad171fd4ca58182d8
BLAKE2b-256 da60b5f8443baf800fb96037d7fa78bdd9ea8901605650b8542110bdb7d9989d

See more details on using hashes here.

File details

Details for the file pith_md-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: pith_md-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pith_md-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9fc3eef5c853bb957bb1e4b706bd0929dc2157f598aec5e53875975f00c25a1d
MD5 fc100fb1656890dcf2b79d2c13753cb3
BLAKE2b-256 8d21efcb1b25815dcfb253318fe718396250d5e56309c5bfba26cd2b128ab3ec

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page