# Source: https://github.com/jina-ai/jina/blob/master/docs/concepts/serving/executor/yaml-spec.md(executor-yaml-spec)=# {octicon}`file-code` YAML specificationThis page outlines the Executor YAML file specification. These configurations can be used in a {class}`~jina.Deployment` with `Deployment(uses='exec.yml)`, in a {class}`~jina.Flow` with `Flow().add(uses='exec.yml)` or loaded directly via `Executor.load_config('exec.yml')`.Note that Executor YAML configuration always refers back to an Executor defined in a Python file.## ExampleThe following is an example {class}`~jina.Executor` configuration:```yamljtype: MyExecutorwith:  match_args: {}py_modules:  - executor.pymetas:  name: Indexer  description: Indexes all Documents  url: https://github.com/janedoe/indexer  keywords: ['indexer', 'executor']```## Keywords### `jtype`String specifying the Executor's Python type. Used to locate the correct class in the Python files given by `py_modules`.(executor-with-keyword)=### `with`Collection containing keyword arguments passed to the Executor's `__init__()` method. Valid values depend on the Executor.### `py_modules`List of strings defining the Executor's Python dependencies. Most notably this must include the Python file containing the Executor definition itself, as well as any other files it imports.### `metas`Collection containing meta-information about the Executor.Your Executor is annotated with this information when publishing to {ref}`Executor Hub <jina-hub>`. To get better appeal on Executor Hub, set the `metas` fields to the correct values:- **`name`**: Human-readable name of the Executor.- **`description`**: Human-readable description of the Executor.- **`url`**: URL of where to find more information about the Executor, normally a GitHub repo URL.- **`keywords`**: A list of strings to help users filter and locate your package.