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

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://docs.kosli.com/feedback

```json
{
  "path": "/client_reference/kosli_create_environment",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# kosli create environment

> Create or update a Kosli environment.

## Synopsis

```shell theme={"theme":"dracula","languages":{"custom":["/languages/rego.json"]}}
kosli create environment ENVIRONMENT-NAME [flags]
```

Create or update a Kosli environment.

`--type` must match the type of environment you wish to record snapshots from.
The following types are supported:

* k8s        - Kubernetes
* ecs        - Amazon Elastic Container Service
* s3         - Amazon S3 object storage
* lambda     - AWS Lambda serverless
* docker     - Docker images
* azure-apps - Azure app services
* server     - Generic type
* logical    - Logical grouping of real environments

By default, kosli will not make new snapshots for scaling events (change in number of instances running).
For large clusters the scaling events will often outnumber the actual change of SW.

It is possible to enable new snapshots for scaling events with the --include-scaling flag, or turn
it off again with the --exclude-scaling.

Logical environments are used for grouping of physical environments. For instance **prod-aws** and **prod-s3** can
be grouped into logical environment **prod**. Logical environments are view-only, you can not report snapshots
to them.

`ENVIRONMENT-NAME`s must start with a letter or number, and only contain letters, numbers, `.`, `-` and `_`.

## Flags

| Flag                            | Description                                                                                                                          |
| :------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------- |
| -d, --description string        | \[optional] The environment description.                                                                                             |
| -D, --dry-run                   | \[optional] Run in dry-run mode. When enabled, no data is sent to Kosli and the CLI exits with 0 exit code regardless of any errors. |
| --exclude-scaling               | \[optional] Exclude scaling events for snapshots. Snapshots with scaling changes will not result in new environment records.         |
| -h, --help                      | help for environment                                                                                                                 |
| --include-scaling               | \[optional] Include scaling events for snapshots. Snapshots with scaling changes will result in new environment records.             |
| --included-environments strings | \[optional] Comma separated list of environments to include in logical environment                                                   |
| -t, --type string               | The type of environment. Valid types are: \[K8S, ECS, server, S3, lambda, docker, azure-apps, logical].                              |

## Flags inherited from parent commands

| Flag                      | Description                                                                                                 |
| :------------------------ | :---------------------------------------------------------------------------------------------------------- |
| -a, --api-token string    | The Kosli API token.                                                                                        |
| -c, --config-file string  | \[optional] The Kosli config file path. (default "kosli")                                                   |
| --debug                   | \[optional] Print debug logs to stdout. A boolean flag [docs](/faq/#boolean-flags) (default false)          |
| -H, --host string         | \[defaulted] The Kosli endpoint. (default "[https://app.kosli.com](https://app.kosli.com)")                 |
| --http-proxy string       | \[optional] The HTTP proxy URL including protocol and port number. e.g. `http://proxy-server-ip:proxy-port` |
| -r, --max-api-retries int | \[defaulted] How many times should API calls be retried when the API host is not reachable. (default 3)     |
| --org string              | The Kosli organization.                                                                                     |

## Examples Use Cases

These examples all assume that the flags  `--api-token`, `--org`, `--host`, (and `--flow`, `--trail` when required), are [set/provided](/getting_started/install/#assigning-flags-via-environment-variables).

<AccordionGroup>
  <Accordion title="create a Kosli environment">
    ```shell theme={"theme":"dracula","languages":{"custom":["/languages/rego.json"]}}
    kosli create environment yourEnvironmentName
    	--type K8S
    	--description "my new env"

    ```
  </Accordion>

  <Accordion title="create a Kosli logical environment">
    ```shell theme={"theme":"dracula","languages":{"custom":["/languages/rego.json"]}}
    kosli create environment yourLogicalEnvironmentName
    	--type logical
    	--included-environments realEnv1,realEnv2,realEnv3
    	--description "my full prod"
    ```
  </Accordion>
</AccordionGroup>
