# Dependencies

sitemd ships as a compiled binary — no Node.js required. The five npm dependencies below are for optional features — icons, image processing, and OG image generation. Your site builds and serves without them, but icons won't render and image optimization won't run.

## What gets installed?

| Package | What it does |
|---|---|
| `lucide-static` | 1900+ UI icon SVGs, inlined at build time |
| `simple-icons` | 3400+ brand logo SVGs for social links and integrations |
| `sharp` | Image optimization, favicon generation, dimension detection |
| `satori` | Converts HTML/CSS to SVG for OG image generation |
| `@resvg/resvg-js` | Renders Satori's SVG output to PNG |

All five are declared in `sitemd/package.json`. Install them with:

```bash
npm install
```

Run this from your project root (the directory containing `sitemd/`).

## How does auto-install work?

The dev server checks for missing dependencies every time it starts. If any are missing, it runs `npm install` automatically before serving your site.

```text
  ⟳ Installing missing dependencies: sharp, lucide-static
  ... npm output ...
  ✓ Dependencies installed
```

This happens in three places:

1. **Dev server startup** — `./sitemd/sitemd launch` checks and installs before the first build
2. **The `/launch` skill** — checks for `node_modules/` and runs `npm install` if missing before starting the server
3. **Deploy** — `sitemd deploy` blocks with an error if dependencies are missing (production builds must have all deps)

If `npm install` fails (no network, permissions issue), the dev server still starts. You get a warning and icons won't render, but everything else works.

## What happens when dependencies are missing?

The behavior depends on the context:

| Context | Behavior |
|---|---|
| Dev server (`sitemd launch`) | Auto-installs, falls back to warning |
| Standalone build (`sitemd build`) | Prints warning, continues |
| Deploy (`sitemd deploy`) | Blocks with error, exits |
| CLI interactive menu | Shows missing deps in status line |
| MCP `sitemd_status` | Lists `npm install` as suggested action |

In all non-deploy cases, a missing dependency degrades gracefully. Pages build and serve — you just lose the features that depend on the missing package.

## How do I check dependency status?

Run the CLI interactive menu:

```bash
sitemd
```

The status line shows dependency state. If anything is missing, it tells you which packages and suggests `npm install`.

Or check via MCP by calling `sitemd_status` — missing dependencies appear as a suggested action.

## When should I run npm install?

Run `npm install` after:

- Cloning or downloading a sitemd project for the first time
- Updating sitemd to a new version (dependencies may change)
- Deleting `node_modules/` for any reason

The dev server handles this automatically on launch, so in practice you rarely need to think about it. If you see a warning about missing dependencies, run `npm install` and restart the server.

## Related

- [Getting Started](/docs/getting-started) — initial setup and install methods
- [Icons](/docs/icons) — the icon system that depends on `lucide-static` and `simple-icons`
- [SEO](/docs/seo) — OG image generation that depends on `satori` and `@resvg/resvg-js`
- [Live Build Sync](/docs/live-build-sync) — how the dev server watches and rebuilds