---
title: Quickstart
description: Create a Hollware project, run it locally and publish a first post with an agent, in about five minutes.
section: start
order: 2
---

# Quickstart

You need Node.js 24 or later. A Cloudflare account comes in later, when you deploy.

## Create a project

```sh
npm create hollware my-cms
```

::callout{type="note"}
Until 1.0.0 is out, these docs describe its release candidate: make the project with `npm create hollware@rc my-cms`. [Install Hollware](/docs/install/) has every option.
::

It copies the starter into `my-cms`, installs it, creates the local database and makes your site, its owner and a first personal token. At the end it prints three things:

- the **token**, once: copy it now, Hollware keeps only its hash (or pass `--token-file owner.token` and it goes to that file instead);
- a **link** to set up your passkey for the admin, valid for seven days, whenever you want it: your agent works with the token alone;
- how to **connect** an agent: the line for Claude Code and the block for any other client.

It asks nothing. Options go after `--`, which npm needs to pass them on:

```sh
npm create hollware my-cms -- --token-file owner.token   # the token to a file, never on the screen
npm create hollware my-cms -- --no-git          # skip git init
npm create hollware my-cms -- --preset docs --locales en,es   # start from docs, in two locales
pnpm create hollware my-cms --pm pnpm           # install with pnpm
npm create hollware -- --help                   # every option
```

## Start it

```sh
cd my-cms
npx hollware dev
```

It says `Hollware is ready at http://localhost:5199` once it answers. MCP is at `/mcp`, the admin at `/admin/`, the read API at `/v1`, and the health check at `/health`. Stop it with Ctrl+C. An agent that must keep working runs `npx hollware dev --detach` and, at the end, `npx hollware dev --stop`.

Run every `npx hollware …` command from inside `my-cms`: the CLI works on the project in the current directory, and on its local database unless you pass `--remote`.

## Connect your agent

Put the token in the environment and paste the line the install printed (or ask `npx hollware mcp-config` for it, with `--client cursor` or `--client vscode` for those):

```sh
export HOLLWARE_TOKEN="$(cat owner.token)"
claude mcp add --transport http hollware http://localhost:5199/mcp --header 'Authorization: Bearer ${HOLLWARE_TOKEN}'
```

Then ask your agent to write something:

```text
Read the Hollware site, then write a short post in English about why plain text lasts, and publish it.
```

The agent calls `describe_site` to learn your collections and rules, writes with `create_draft`, fixes what the verdict reports, and calls `publish`.

A post of the starter's blog, if you write one yourself, looks like this. `describe_site` returns the same rules as a JSON Schema:

```markdown
---
title: Why plain text lasts
description: Files that any editor opens outlive the tools that made them.
date: 2026-10-15
tags:
  - writing
translationGroup: why-plain-text-lasts
---

# Why plain text lasts

Plain text opens anywhere, diffs cleanly and needs no migration.
```

## Look at it

Open `http://localhost:5199/admin/`, sign in with the passkey you set up, and you will find the post under Entries, with every revision.

## Next

- [Connect an agent](/docs/connect-an-agent/) in more detail, with OAuth instead of a token.
- [Configure your content](/docs/configure-your-content/) to make the starter's blog your own.
- [Deploy](/docs/deploy/) when you are ready.
