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

# Local Execution

Run agents locally while you iterate on code and manifest changes.

## Simple Input

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
charm run . --input "Hello"
```

## Structured JSON Input

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
charm run . --json '{"message": "Hello", "tone": "friendly"}'
```

Use field names that match `interface.input.properties` in `charm.yaml`.

## Test Case File

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
charm run . --input-file tests.json
```

Example:

```json theme={"theme":{"light":"min-light","dark":"min-dark"}}
[
  {
    "name": "Greeting",
    "input": {
      "message": "Hello"
    }
  }
]
```

## Environment Variables

For local development, put non-production values in `.env`:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
OPENAI_API_KEY=...
TAVILY_API_KEY=...
```

Never commit `.env` files containing secrets.

## Docker Mode

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
charm run . --input "Hello" --docker
```

Use Docker mode before publishing when dependencies or runtime behavior may differ from your host machine.
