Hallmark Command-Line Arguments: Complete Guide to the NPM Serve Script

Hallmark does not accept custom command-line arguments; it only provides a fixed npm run serve command that launches a Python HTTP server on port 4173.

Hallmark is a static site generator project hosted at Nutlope/hallmark that serves built files via a minimal development server. Unlike configurable CLI tools, hallmark's command-line interface is restricted to a single npm script with hardcoded parameters defined in package.json.

Does Hallmark Accept Command-Line Arguments?

No. The hallmark repository exposes no custom command-line interface for user input. According to the source code in package.json, the project defines only one executable script:

{
  "scripts": {
    "serve": "python3 -m http.server --directory site 4173"
  }
}

This configuration means you cannot pass arguments like --port or --dir directly to hallmark. The script invokes Python's built-in HTTP server module with static values: the directory is locked to site and the port is fixed at 4173.

How to Start the Hallmark Server

Since hallmark accepts no standalone CLI arguments, the only way to launch the server is through the npm script:

npm run serve

Executing this command starts a Python HTTP server that serves static files from the site/ directory. To access the running application, open a browser and navigate to:


http://localhost:4173/

The server runs indefinitely until you terminate the process with Ctrl+C.

Breaking Down the Serve Script

The serve script in package.json hardcodes three critical parameters:

  • python3 -m http.server: Invokes Python's standard library HTTP server
  • --directory site: Sets the document root to the site folder
  • 4173: Specifies the binding port (hardcoded, not configurable via CLI)

Because these values are embedded directly in the npm script, hallmark offers no CLI flags for runtime customization. The repository contains no argument parsing logic, no --help flag, and no configuration file handling for server settings.

Changing the Default Port or Directory

While hallmark provides no native command-line arguments to modify its behavior, you can change the port or directory by editing package.json manually:

{
  "scripts": {
    "serve": "python3 -m http.server --directory site 8000"
  }
}

Alternatively, run the Python server directly without npm:

python3 -m http.server --directory site 8000

This approach bypasses the npm script entirely, allowing you to specify any port or directory as command-line arguments to Python's http.server module directly.

Summary

  • Hallmark accepts no command-line arguments — it only supports npm run serve.
  • The server configuration is hardcoded in package.json as python3 -m http.server --directory site 4173.
  • The default setup serves the site/ directory on port 4173.
  • To customize settings, you must either edit package.json or run the Python HTTP server command directly with your own arguments.

Frequently Asked Questions

Can I change the port when running hallmark?

No, not via hallmark's CLI. The port 4173 is hardcoded in the serve script within package.json. To use a different port, either modify the script in package.json to specify a different number, or bypass npm entirely and run python3 -m http.server --directory site [YOUR_PORT] directly in your terminal.

Does hallmark support environment variables for configuration?

No. According to the repository source code, hallmark does not implement environment variable parsing or any dynamic configuration mechanism. The serve script uses literal values for the directory and port, with no logic to read from process.env or shell environment variables.

Is there a hallmark --help command?

No. Because hallmark is not a command-line tool with subcommands or flags, running npx hallmark --help or similar commands will fail. The repository contains no executable bin files or CLI entry points—only the static npm run serve script defined in package.json.

How do I stop the hallmark server once started?

Press Ctrl+C in your terminal. The npm run serve command launches a foreground process running Python's HTTP server. Sending an interrupt signal via Ctrl+C terminates the Python process and stops the server immediately.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →