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

# Configure

The `agent configure` command sets up a Novita Agent Runtime project. It analyzes your project directory, collects agent metadata, and generates the configuration and build files needed to deploy your agent. Run it from your project root.

## Usage

```bash CLI icon="terminal" theme={"system"}
novita-sandbox-cli agent configure [options]
```

By default it runs interactively, auto-detecting sensible defaults from your project (agent name, entry point, dependency file) and prompting you to confirm or adjust them.

```bash CLI icon="terminal" theme={"system"}
# Interactive configuration using auto-detected defaults
novita-sandbox-cli agent configure

# Non-interactive with explicit values
novita-sandbox-cli agent configure \
  --name my-agent \
  --entrypoint app.py \
  --author me@example.com \
  --no-interactive
```

## Options

| Option                            | Description                                                        |
| --------------------------------- | ------------------------------------------------------------------ |
| `-n, --name <name>`               | Agent name. Default: auto-detected from the project.               |
| `-e, --entrypoint <file>`         | Entry point file. Default: auto-detected, or `app.py`.             |
| `--agent-version <version>`       | Agent version. Default: `1.0.0`.                                   |
| `-a, --author <email>`            | Author email. Default: from environment or interactive prompt.     |
| `-rf, --requirements-file <file>` | Dependency file path (`requirements.txt`, `pyproject.toml`, etc.). |
| `--no-interactive`                | Skip interactive prompts and use only defaults / provided options. |
| `--force`                         | Force overwrite of an existing configuration.                      |
| `--verbose`                       | Verbose output.                                                    |

## What it generates

On success, the command writes three files into your project and prints their paths:

* The agent **configuration file** — a Kubernetes-style manifest describing the agent.
* A **Dockerfile** — used to build the agent runtime image.
* A **.dockerignore** — controls which files are excluded from the build context.

```text Output icon="code" theme={"system"}
Configuration completed successfully!
Configuration file: <project>/agent.yaml
Dockerfile: <project>/Dockerfile
Docker ignore: <project>/.dockerignore
```

## Configuration structure

The generated configuration uses a Kubernetes-style manifest. The key fields are:

| Field                       | Description                                                                                             |
| --------------------------- | ------------------------------------------------------------------------------------------------------- |
| `apiVersion` / `kind`       | Manifest identifiers, fixed as `v1` and `Agent`.                                                        |
| `metadata.name`             | Agent name (lowercase letters, numbers, and hyphens). Used as the base for the generated template name. |
| `metadata.version`          | Agent version.                                                                                          |
| `metadata.author`           | Author email (required).                                                                                |
| `metadata.description`      | Optional agent description.                                                                             |
| `spec.entrypoint`           | Python entry file, e.g. `agent.py` (must be a `.py` file).                                              |
| `spec.envVars`              | Optional environment variables for the agent runtime.                                                   |
| `spec.runtime.timeout`      | Startup timeout in seconds (1–3600).                                                                    |
| `spec.runtime.memory_limit` | Memory limit, e.g. `512Mi` or `1Gi`.                                                                    |
| `spec.runtime.cpu_limit`    | CPU limit, e.g. `1` or `1000m`.                                                                         |

<Note>
  The `status` section of the manifest (deployment phase, agent ID, build ID, last deployed time) is maintained by the system during deployment. Do not edit it manually.
</Note>

## Overwriting an existing configuration

If a configuration file already exists, the behavior depends on the flags:

* With `--force`, the existing configuration is overwritten without prompting.
* In interactive mode, you are prompted to type `Y` to confirm the overwrite; any other input cancels the operation.
* With `--no-interactive` (and no `--force`), the configuration is automatically overwritten.
