> ## Documentation Index
> Fetch the complete documentation index at: https://veryfront.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create project

> Scaffold a new Veryfront project from a template and run it locally.

## Prerequisites

* The Veryfront CLI installed (see [Installation](/code/getting-started/installation)).
* A terminal in which you can run `veryfront init`.

## Scaffold

Run `veryfront init` to open the project wizard:

```bash theme={null}
veryfront init test-app
cd test-app
```

The wizard asks which template to use.

Choose a starting point directly when you already know what you want to build,
or when running the command from a non-interactive script:

```bash theme={null}
# Agent app with a chat UI, tool, and AG-UI route
veryfront init support-agent --template ai-agent

# Blank full-stack app with pages and routing
veryfront init web-app --template minimal

# Durable multi-step AI pipeline
veryfront init workflow-app --template agentic-workflow
```

### Choose a runtime

By default, `veryfront init` scaffolds projects for **Node.js**. Pass
`--runtime <node|bun|deno>` to select a different JavaScript runtime:

```bash theme={null}
veryfront init test-app --template ai-agent --runtime bun
veryfront init test-app --template ai-agent --runtime deno
```

What this changes:

* All runtimes get the same `package.json` and template files.
* `--runtime deno` additionally writes a thin `deno.json` so `deno task dev` /
  `deno task build` / `deno task preview` work without extra setup. Deno reads
  npm dependencies directly from `package.json` via `nodeModulesDir: "auto"`.
* The install command and the printed next-steps match your runtime
  (`npm install` / `bun install` / `deno install`).

You can also set `"runtime": "deno"` in the JSON file passed to `--config`.

### Use a package manager

Use these commands when you do not have the Veryfront CLI installed globally.

<CodeGroup>
  ```bash npm theme={null}
  npm create veryfront
  ```

  ```bash pnpm theme={null}
  pnpm create veryfront
  ```

  ```bash yarn theme={null}
  yarn create veryfront
  ```

  ```bash bun theme={null}
  bun create veryfront
  ```

  ```bash deno theme={null}
  deno init --npm veryfront
  ```
</CodeGroup>

## Run the dev server

```bash theme={null}
veryfront dev
```

Open [http://localhost:3000](http://localhost:3000). File changes reload the
browser.

## Inspect the scaffold

The `minimal` template creates:

```
test-app/
  AGENTS.md        # Project guide for coding agents
  app/
    layout.tsx      # Root layout wrapping all pages
    page.tsx        # Home page (/)
    about/
      page.mdx      # /about (MDX page)
  package.json
  README.md
```

The `ai-agent` template also creates:

```
test-app/
  AGENTS.md         # Project guide for coding agents
  agents/
    assistant.ts    # AI agent definition
  tools/
    calculator.ts   # Tool the agent can call
  app/
    layout.tsx
    page.tsx        # Chat UI
    api/
      ag-ui/
        route.ts    # AG-UI streaming chat endpoint
```

Pages live in `app/`. The agent template also adds root-level `agents/` and
`tools/`. For the convention behind these directories, see
[Framework conventions](/code/concepts/framework-conventions).

Generate additional app and AI primitives from the project root:

```bash theme={null}
veryfront generate agent research-agent
veryfront generate tool search-docs
veryfront generate skill research
```

These names are examples. Use the generated files as starting points, then edit
the agent instructions, tool implementation, and skill content for the workflow
you are building.

Every starter includes `AGENTS.md`. Coding agents should read that file first,
then use `veryfront schema --json` or the Veryfront MCP tools for current CLI
and project facts. Use [Coding agents](/code/guides/coding-agents) to connect
Claude Code, Cursor, Codex, or another MCP-aware agent.

## Verify it worked

`veryfront dev` prints `Ready on http://localhost:3000`. Open the URL and save a
source file. The browser should hot-reload.
