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

> Discover hallmark command-line arguments. Learn how the npm run serve script launches a Python HTTP server on port 4173, simplifying your development workflow.

- Repository: [Hassan El Mghari/hallmark](https://github.com/Nutlope/hallmark)
- Tags: how-to-guide
- Published: 2026-07-26

---

**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`](https://github.com/Nutlope/hallmark/blob/main/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`](https://github.com/Nutlope/hallmark/blob/main/package.json), the project defines only one executable script:

```json
{
  "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:

```bash
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`](https://github.com/Nutlope/hallmark/blob/main/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`](https://github.com/Nutlope/hallmark/blob/main/package.json) manually:

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

```

Alternatively, run the Python server directly without npm:

```bash
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`](https://github.com/Nutlope/hallmark/blob/main/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`](https://github.com/Nutlope/hallmark/blob/main/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`](https://github.com/Nutlope/hallmark/blob/main/package.json). To use a different port, either modify the script in [`package.json`](https://github.com/Nutlope/hallmark/blob/main/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`](https://github.com/Nutlope/hallmark/blob/main/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.