[Yandex Cloud documentation](../../../index.md) > [Yandex Cloud Functions](../../index.md) > Developing in Bash > Overview

# Developing in Bash. Overview

With Cloud Functions, you can run applications written in [Bash](https://www.gnu.org/software/bash/).

The [Bash runtime](../../concepts/runtime/index.md#runtimes) has the following utilities installed by default: 

| Name | Purpose | 
|----|----|
|[jq](https://stedolan.github.io/jq/)| For working with JSON. | 
|[Yandex Cloud CLI](../../../cli/index.md)| For working with the Yandex Cloud API. | 
|[AWS CLI version 2](https://docs.aws.amazon.com/cli/index.html)| For using AWS-compatible services. |

For more info on how to use the SDK, see [Using the SDK](sdk.md).

The runtime environment automatically loads and invokes the specified [request handler script](handler.md) for each request. The request content is provided to the script via the standard input stream, `stdin`.

When creating a new [function version](../../concepts/function.md#version), the [builder](../../concepts/builder.md) will automatically install all declared dependencies required for the function. For more information about requirements and limitations, see [Building and managing Bash function dependencies](dependencies.md).

Cloud Functions automatically captures the script's standard output stream, `stdout`, and interprets it as a response to the request. The standard error output stream, `stderr`, is sent to the centralized logging system in Yandex Cloud. This system also logs entries about the start and end of each function execution, as well as any errors that occur during execution. For more information about the log format, see [Bash function execution logging](logging.md).

To learn more about `Bash` scripting, see the [Advanced Bash-Scripting Guide](https://tldp.org/LDP/abs/abs-guide.pdf).