Skip to main content

Requirements

Before installing, make sure your environment meets the following requirements:
  • Node.js 22 or later — the project’s .nvmrc pins Node.js version 22
  • npm — included with Node.js; used to install dependencies
  • A GitHub Personal Access Token with the repo scope
  • A HackMD API Token from your HackMD account

Installation options

Cloning the repository gives you access to the full project, including templates for existing meeting groups.
git clone https://github.com/nodejs/create-node-meeting-artifacts
cd create-node-meeting-artifacts
npm install

Run with npx

If you only need to run the tool without keeping a local copy, you can invoke it directly with npx from inside the repository directory:
npx --env-file=.env . tsc
The npx approach still requires the repository to be cloned locally, because the tool reads meeting configuration from the templates/ directory.

Node.js version management

The repository includes a .nvmrc file that specifies Node.js 22. If you use nvm to manage Node.js versions, you can switch to the correct version automatically:
nvm install
nvm use
This reads .nvmrc and installs or activates Node.js 22. If you use a different version manager such as fnm or volta, check their documentation for .nvmrc compatibility.
Always use the version specified in .nvmrc when contributing to or running the tool. Node.js 22 is required because the tool uses native ESM modules and the built-in --env-file flag.

Token setup

Treat your API tokens as secrets. Never commit your .env file to version control. The repository’s .gitignore excludes .env by default — verify this is still the case before committing.

GitHub Personal Access Token

1

Open GitHub token settings

Go to github.com/settings/tokens and click Generate new token.
2

Select scopes

Enable the repo scope. This grants the tool permission to create issues and read issues in the target repositories.
3

Copy the token

Copy the generated token immediately — GitHub only shows it once. You will add it to your .env file in the next section.

HackMD API Token

1

Open HackMD account settings

Sign in to hackmd.io and navigate to Account Settings > API Tokens.
2

Create a new token

Click New API Token, give it a descriptive name such as meeting-artifacts, and confirm.
3

Copy the token

Copy the token value. You will not be able to view it again after leaving the page.
4

Optional: set a team workspace

If you want meeting notes created in a shared team space rather than your personal HackMD account, note your team’s slug. You configure it per meeting group via the HACKMD_TEAM_NAME property in each meeting_base_<shortname> template file — not as a global environment variable.

Environment variables setup

Copy the example environment file:
cp .env.example .env
The .env.example file documents every supported variable:
# Required: GitHub Token (Needs "repo" permissions)
# GITHUB_TOKEN=your_personal_access_token_or_org_token

# Required: HackMD Configuration
# HACKMD_API_TOKEN=your_hackmd_api_token
# HACKMD_TEAM_NAME=your_hackmd_team_name_optional # Defaults to your own personal space
Edit .env and uncomment each line, replacing the placeholder values with your real tokens:
VariableRequiredDescription
GITHUB_TOKENYesGitHub Personal Access Token with repo scope
HACKMD_API_TOKENYesHackMD API token for creating and updating notes
The tool loads these variables at runtime using Node.js’s built-in --env-file flag — no additional dotenv configuration is required.
HACKMD_TEAM_NAME is configured per meeting group inside the meeting_base_<shortname> template file, not as a global environment variable. See Meeting base configuration for details.

Verify installation

Confirm everything is set up correctly by running a dry run for the tsc meeting group:
node --env-file=.env create-node-meeting-artifacts.mjs tsc --dry-run
If the tool is configured correctly, it prints the generated GitHub issue content to the console and exits without creating anything. If you see an authentication error, double-check that your tokens are correctly set in .env and that the GITHUB_TOKEN has the repo scope.

Build docs developers (and LLMs) love