Skip to content

minusmo/pm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pm

A CLI tool for managing project-specific runbooks and manuals stored in .pm/ directories.

Install

Homebrew:

brew install hojooneum/tap/pm

Go:

go install github.com/hojooneum/pm@latest

Quick Start

# Initialize a project manual in the current directory
pm init

# List all sections
pm list

# Open a specific section
pm open deploy

# Edit a section in your editor
pm edit deploy

# Search across all sections
pm search kubernetes

Running pm with no arguments shows a project summary, or prompts you to initialize if no .pm/ directory exists.

Commands

Command Description
pm Show project summary (interactive init if no .pm/)
pm init Scaffold a .pm/ directory from a template
pm list [group] List available sections (alias: ls)
pm open <section> Display a section's content
pm edit <section> Open a section in $EDITOR for editing
pm search <keyword> Search for a keyword across all sections

pm init

pm init                          # Use the default template
pm init --template minimal       # Use a built-in preset
pm init --template my-tmpl.json  # Use a custom JSON template
pm init --list-templates         # List available presets

How It Works

pm stores project documentation in a .pm/ directory at your project root.

Groups are subdirectories under .pm/ (e.g., core/, custom/). They organize sections by category. core sorts first, custom sorts last, and everything else is alphabetical.

Sections are markdown files within groups. Each section can have YAML frontmatter with title, description, and tags:

---
title: Deployment Guide
description: Step-by-step deployment procedures
tags: deploy, release
---

# Deployment Guide

Your content here...

Section names are resolved case-insensitively, so pm open Deploy and pm open deploy both work.

Templates

Templates define which sections to scaffold when running pm init.

Built-in presets:

Preset Sections Description
default 7 overview, deploy, troubleshoot, backup, maintenance, monitoring, contacts
minimal 3 overview, deploy, contacts

Custom templates can be provided as JSON files:

{
  "name": "my-template",
  "sections": [
    {
      "name": "overview",
      "group": "core",
      "title": "Project Overview",
      "description": "High-level summary",
      "tags": ["overview"]
    }
  ]
}

Section names must match [a-z0-9][a-z0-9-]*.

License

MIT

About

Just a little helper tool for your little complex and little cumbersome wild projects.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages