---
title: "Quickstart"
description: "Create and run your first elizaOS project."
---
Create an elizaOS project, install dependencies, and run it.
## Create a project
```bash
npx elizaos create my-agent-app --template project
cd my-agent-app
bun install
```
You can also run `elizaos create` with no arguments for interactive template selection.
The `elizaos` CLI scaffolds and upgrades workspaces. After creation, use the generated project's scripts to run, build, and test the app.
## Add environment variables
Copy the generated example file and add your model provider key:
```bash
cp .env.example .env
```
For an OpenAI-backed local setup:
```bash
OPENAI_API_KEY=your-api-key
```
Project templates may include additional app-specific `.env.example` files under `apps/app/`. Keep secrets in local `.env` files and out of version control.
## Run the app
Start the generated development server:
```bash
bun run dev
```
The generated project owns the app runtime scripts. Common scripts include:
```bash
bun run dev
bun run build
bun run test
bun run typecheck
bun run lint
```
Open the URL printed by the dev server. In the default fullstack project, the branded app lives in `apps/app`, while the local elizaOS checkout lives under `eliza/`.
## What was created
```bash
my-agent-app/
├── apps/
│ └── app/ # Project app: branded web, desktop, and mobile shell
├── eliza/ # Local elizaOS checkout used by the generated workspace
├── .elizaos/
│ └── template.json # Template metadata for future upgrades
├── .env.example
├── package.json # Project scripts
└── bunfig.toml
```
The project is the deployable product workspace. The project app is the branded shell inside `apps/app`. Runtime extensions are plugins, and app plugins are plugins that also contribute app surfaces.
## Upgrade later
From the project root:
```bash
elizaos upgrade --check
elizaos upgrade
```
Use `--check` before writing changes. The upgrade command updates managed template files and reports conflicts instead of overwriting local edits.
## Next steps
Update identity, bundle IDs, branding, app plugins, and platform config.
Learn project, plugin, app plugin, project app, and Eliza Cloud app terminology.
Build a reusable runtime extension.
Review `create`, `upgrade`, `info`, and `version`.