Generate StackApps is a post Markdown generator for userscript projects reducing the amount of busywork required to publish userscripts for the benefit of the Stack Exchange network users. The package is highly customizable and takes a lot of the information from the project's package.json file (on an off-chance you are unfamiliar, here are the NPM docs).

Usage example

CLI usage:

generate-stackapps \
    --install "https://www.npmjs.com/package/@userscripters/generate-stackapps" \
    --language "TypeScript" \
    --org-name "UserScripters" \
    --org-url "https://github.com/userscripters" \
    --room "https://chat.stackoverflow.com/rooms/214345" \
    --tag "library" \
    --tag "typescript" \
    --thumbnail "https://i.stack.imgur.com/Cbt4Z.png"

Programmatic usage as a module:

import { generate } from "@userscripters/generate-stackapps";

const { body, tags, title } = await generate({
    installURL: "https://www.npmjs.com/package/@userscripters/generate-stackapps",
    languages: ["TypeScript"],
    orgName: "UserScripters",
    orgURL: "https://github.com/userscripters",
    roomURL: "https://chat.stackoverflow.com/rooms/214345",
    tags: ["library", "typescript"],
    testedIn: {
        chrome: "100.0.0"
    thumbnailURL: "https://i.stack.imgur.com/Cbt4Z.png"


The script is licensed under the GPL-3.0-or-later license.


Latest version: 1.2.0

The package is published as both an NPM package and a GitHub package. Can be installed via a package manager like NPM as usual:

npm install --save-dev @userscripters/generate-stackapps

If you opt to install it from the GitHub registry, please note that it only supports scoped packages, you will need a simple .npmrc file at your project root:


You will also need to be logged in to GitHub. An easy way to do so is to have a global .npmrc with your PAT (personal access token) set as an access token:

//npm.pkg.github.com/:_authToken=<your token here>

CLI Usage

The package exposes a CLI interface with the following syntax:

generate-stackapps [options]

There are various options one can provide to customize the output:

      --version               Show version number                      [boolean]
      --help                  Show help                                [boolean]
  -a, --about                 Long project description                  [string]
      --cr, --chrome          Last tested Chrome version                [string]
  -d, --direct                Send output to process.stdout (CLI-only)
                                                      [boolean] [default: false]
  -e, --excerpt               Short project description                 [string]
      --ed, --edge            Last tested Edge version                  [string]
      --ie, --explorer        Last tested Internet Explorer version     [string]
      --ff, --firefox         Last tested Firefox version               [string]
      --iu, --install         Project installation URL       [string] [required]
  -l, --language              Programming languages used (repeatable)    [array]
      --mu, --minified        Minified version installation URL         [string]
  -o, --output                Output file path (CLI-only)
                                            [string] [default: "./STACKAPPS.md"]
      --on, --org-name        GitHub organization name                  [string]
      --op, --opera           Last tested Opera version                 [string]
      --ou, --org-url         GitHub organization URL                   [string]
  -p, --package               Path to project's package.json
                                            [string] [default: "./package.json"]
  -r, --room                  Chat room URL                             [string]
      --sa, --screenshot-alt  Project screenshot alt text               [string]
      --su, --screenshot-url  Project screenshot URL                    [string]
      --tg, --tag             StackApps post tag (repeatable)
                                                   [array] [default: ["script"]]
      --tl, --title           StackApps post title                      [string]
      --th, --thumbnail       StackApps post thumbnail                  [string]
      --ww, --works-with      Supported userscript manager (repeatable)
              [array] [choices: "greasemonkey", "tampermonkey", "violentmonkey"]


This is a Node.js package (tested on LTS 16.13.2), so it requires Node to be installed. Best used with TypeScript, but contains type declaration files for autocompletion as well.


Author: Oleg Valter
Organization: UserScripters

Please, submit bug reports on the source repository.
Before adding a new one, please check if it hasn't been raised before.

You can also drop by to chat, we are a friendly bunch.


Source code is written in TypeScript.

Contributions are welcome, you can always submit a PR here.


You must log in to answer this question.

Browse other questions tagged .