# Tools {#tools}



## Production {#production}


Argo CD supports several different ways in which Kubernetes manifests can be defined:

* [Kustomize](https://sourcey-argocd.pages.dev/user-guide/kustomize/index.md) applications
* [Helm](https://sourcey-argocd.pages.dev/user-guide/helm/index.md) charts
* [OCI](https://sourcey-argocd.pages.dev/user-guide/oci/index.md) images
* A directory of YAML, JSON, or [Jsonnet](https://sourcey-argocd.pages.dev/user-guide/jsonnet/index.md) manifests.
* Any [custom config management tool](https://sourcey-argocd.pages.dev/operator-manual/config-management-plugins/index.md) configured as a config management plugin


## Development {#development}
Argo CD also supports uploading local manifests directly. Since this is an anti-pattern of the
GitOps paradigm, this should only be done for development purposes. A user with an `override` permission is required
to upload manifests locally (typically an admin). All the different Kubernetes deployment tools mentioned above are supported.
To upload a local application:

```bash
$ argocd app sync APPNAME --local /path/to/dir/
```
