Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 25 additions & 5 deletions cli/create.mdx
Original file line number Diff line number Diff line change
@@ -1,22 +1,37 @@
---
title: "Create a Project"
sidebarTitle: "agno create"
description: "Scaffold an AgentOS project from a starter template: Docker by default, or AWS, Fly.io, GCP, and Railway."
description: "Scaffold an AgentOS project from a starter template: Docker by default, or AWS, Azure, Fly.io, GCP, Kubernetes, Modal, Railway, and Render."
---

```bash
agno create my-os
```

`agno create` clones a starter template into a new directory, strips its git history, and prints the next steps:
`agno create` clones a starter template into a new directory, strips its git history, and seeds `.env` from the template's `example.env` when it ships one.

Add your secrets to `my-os/.env`, then:

```bash
cd my-os
cp example.env .env # then fill in your secrets
agno up # start it with docker compose
agno connect # make it available in your coding agents
agno up # start it with docker compose
agno connect # make it available in your coding agents
```

## Interactive Mode

Run `agno create` with no arguments and the CLI walks you through both choices:

```bash
agno create
```

It shows a numbered menu of starter templates. Answer with a number or a template name, or press Enter for `agentos-docker`. It then asks for a project name (default `agentos`) and re-prompts until the name is valid and the directory is free.

Passing `--template` or `--url` skips the template question. An unknown `--template` fails before the first prompt appears.

With `--json`, or in any run where stdin is not a TTY, nothing prompts and the name argument is required.

## Starter Templates

Pick a starter with `--template`:
Expand All @@ -29,9 +44,13 @@ agno create my-os --template agentos-aws
|----------|--------|------------|
| `agentos-docker` (default) | Local dev and any Docker host | [agno-agi/agentos-docker](https://github.com/agno-agi/agentos-docker) |
| `agentos-aws` | AWS | [agno-agi/agentos-aws](https://github.com/agno-agi/agentos-aws) |
| `agentos-azure` | Azure | [agno-agi/agentos-azure](https://github.com/agno-agi/agentos-azure) |
| `agentos-fly` | Fly.io | [agno-agi/agentos-fly](https://github.com/agno-agi/agentos-fly) |
| `agentos-gcp` | Google Cloud | [agno-agi/agentos-gcp](https://github.com/agno-agi/agentos-gcp) |
| `agentos-helm` | Kubernetes (Helm chart) | [agno-agi/agentos-helm](https://github.com/agno-agi/agentos-helm) |
| `agentos-modal` | Modal | [agno-agi/agentos-modal](https://github.com/agno-agi/agentos-modal) |
| `agentos-railway` | Railway | [agno-agi/agentos-railway](https://github.com/agno-agi/agentos-railway) |
| `agentos-render` | Render | [agno-agi/agentos-render](https://github.com/agno-agi/agentos-render) |

Every starter ships an AgentOS application, an `example.env`, and a compose file that `agno up` picks up. See [Templates](/deploy/introduction) for the full catalog, including pre-built agent systems.

Expand All @@ -48,6 +67,7 @@ agno create my-os --url https://github.com/acme/agentos-internal
1. Validates the name. It becomes a directory under the current directory, so it must be a single path segment of letters, digits, `-`, and `_`.
2. Runs `git clone --depth 1` on the template repository (git must be installed).
3. Removes the cloned `.git` directory, giving you a clean tree to init your own repo in.
4. Copies `example.env` to `.env` with owner-only permissions when the template ships one. An existing `.env` is never overwritten. If seeding fails, the cloned directory is removed so a retry starts clean.

The command fails if the target directory already exists. The CLI doesn't keep a registry of projects; `up`, `down`, and `restart` operate on whatever directory you run them from.

Expand Down
4 changes: 2 additions & 2 deletions cli/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ description: "Scaffold, run, and connect an AgentOS from the terminal with the a
```bash
agno create my-os
cd my-os
cp example.env .env # fill in your secrets
# add your secrets to .env
Comment thread
harshsinha03 marked this conversation as resolved.
agno up
agno connect
```
Expand All @@ -34,7 +34,7 @@ uvx agnoctl connect

| Command | What it does | Guide |
|---------|--------------|-------|
| `agno create <name>` | Scaffold a project from a starter template | [Create a project](/cli/create) |
| `agno create [name]` | Scaffold a project from a starter template, prompting when the name is omitted | [Create a project](/cli/create) |
| `agno connect` | Connect coding agents to a running AgentOS over MCP | [Connect your clients](/cli/connect) |
| `agno disconnect` | Remove AgentOS MCP entries from client configs | [Connect your clients](/cli/connect) |
| `agno up` / `down` / `restart` | Run the project with Docker Compose | [Operate your AgentOS](/cli/operate) |
Expand Down
6 changes: 3 additions & 3 deletions reference/cli/agnoctl.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -89,14 +89,14 @@ Service-account object (the plaintext token is excluded):
## agno create

```bash
agno create <name> [--template <starter>] [--url <repo>] [--json]
agno create [name] [--template <starter>] [--url <repo>] [--json]
```

Scaffolds a project by shallow-cloning a template repository (`git clone --depth 1`, 300s timeout) into `./<name>` and removing its `.git` directory. It requires `git` and fails if the directory already exists. `<name>` must be a single path segment of letters, digits, `-`, and `_`.
Scaffolds a project by shallow-cloning a template repository (`git clone --depth 1`, 300s timeout) into `./<name>`, removing its `.git` directory, and copying `example.env` to `.env` when the template ships one (created with owner-only permissions; an existing `.env` is never overwritten, and symlinked `example.env` or `.env` files are refused). It requires `git` and fails if the directory already exists. `<name>` must be a single path segment of letters, digits, `-`, and `_`. A run with no `name` argument prompts for the project name, and for the template unless `--template` or `--url` is passed; with `--json` or a non-TTY stdin, prompts are disabled and `<name>` is required.

| Flag | Default | Description |
|------|---------|-------------|
| `--template`, `-t` | `agentos-docker` | Starter template: `agentos-aws`, `agentos-docker`, `agentos-fly`, `agentos-gcp`, `agentos-railway` |
| `--template`, `-t` | `agentos-docker` | Starter template: `agentos-aws`, `agentos-azure`, `agentos-docker`, `agentos-fly`, `agentos-gcp`, `agentos-helm`, `agentos-modal`, `agentos-railway`, `agentos-render` |
| `--url`, `-u` | none | Clone from a custom template repository URL instead |
| `--json` | off | Emit a single JSON document |

Expand Down
Loading