---
slug: "kool"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/kool-dev/kool@main/README.md"
repo: "https://github.com/kool-dev/kool"
source_file: "README.md"
branch: "main"
---
<p align="center"><a href="https://kool.dev" target="_blank"><img src="https://kool.dev/img/logo.png" width="400" alt="kool - cloud native dev tool"></a></p>


<p align="center">
<a href="https://goreportcard.com/report/github.com/kool-dev/kool"><img src="https://goreportcard.com/badge/github.com/kool-dev/kool" alt="Go Report Card"></a>
<a href="https://codecov.io/gh/kool-dev/kool"><img src="https://codecov.io/gh/kool-dev/kool/branch/main/graph/badge.svg" alt="codecov"></a>
<a href="https://github.com/kool-dev/kool/workflows/docker"><img src="https://github.com/kool-dev/kool/workflows/docker/badge.svg" alt="Docker Hub"></a>
<a href="https://github.com/kool-dev/kool/workflows/golangci-lint"><img src="https://github.com/kool-dev/kool/workflows/golangci-lint/badge.svg" alt="Golang CI Lint"></a>
<a href="https://codeclimate.com/github/kool-dev/kool/maintainability"><img src="https://api.codeclimate.com/v1/badges/1511f826de92d2ab39cc/maintainability" alt="Maintainability"></a>
<a href="https://kool.dev/slack"><img src="https://img.shields.io/badge/Join%20Slack-kool--dev-orange?logo=slack" alt="Join Slack Kool community"></a>
<a href="https://github.com/sindresorhus/awesome"><img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome"></a>
</p>

## About `kool`

**Kool** is a CLI tool that brings the complexities of modern software development environments down to earth - making these environments lightweight, fast and reproducible. It reduces the complexity and learning curve of _Docker_ containers for local environments, and offers a simplified interface for using _Kubernetes_ to deploy staging and production environments to the cloud.

**Kool** gets your local development environment up and running easily and quickly, so you have more time to build a great application. When the time is right, you can then use Kool.dev Cloud to deploy and share your work with the world!

**Kool** is suitable for solo developers and teams of all sizes. It provides a hassle-free way to handle the Docker basics and immediately start using containers for development, while simultaneously guaranteeing no loss of control over more specialized Docker environments.

[Learn more at kool.dev](https://kool.dev).

## Installation

Requirements: Kool is powered by [Docker](https://docs.docker.com/get-docker/). If you haven't done so already, you first need to [install Docker and the kool CLI](https://kool.dev/docs/getting-started/installation).

**Important**: make sure you are running the latest version of Docker and that you do have Compose V2 available (`docker compose`). You can read more about [Compose V2 release via its documentation](https://docs.docker.com/compose/reference/). Checkout out instructions for [installing Docker Compose V2 in the official documentation](https://docs.docker.com/compose/install/#scenario-two-install-the-compose-plugin).

### For Linux and MacOS

Install **kool** by running the following script. It will download the latest **kool** binary from [https://github.com/kool-dev/kool/releases](https://github.com/kool-dev/kool/releases), and save it in your `/usr/local/bin` folder.

```bash
curl -fsSL https://kool.dev/install | bash
```

### For Windows

You must run `kool` on Windows via [WSL - Windows Subsystem for Linux](https://learn.microsoft.com/en-us/windows/wsl/install) - once you have a WSL environment properly set up, make sure you have [Docker available on it](https://docs.docker.com/desktop/wsl/), then you can install the CLI as you would in any Linux or MacOS (see above).

### In CI pipelines

For CI/CD use cases — most commonly **GitLab CI** with a `docker:dind` service — we publish a pre-built image at [**kooldev/kool**](https://hub.docker.com/r/kooldev/kool) that bundles `kool` together with `docker`, `docker compose`, `git`, and `bash`. See the [CI Integration guide](https://github.com/kool-dev/kool/blob/HEAD/docs/01-Getting-Started/5-CI-Integration.md) for the DinD sidecar pattern and example `.gitlab-ci.yml` / GitHub Actions configs, plus a [known security caveat](https://github.com/kool-dev/kool/blob/HEAD/docs/01-Getting-Started/5-CI-Integration.md#known-security-caveat) about CVEs inherited from the upstream `docker:X-cli` base image.

## Getting Started

It's really easy to get started with `kool`. Check out our [Getting Started documentation for a generic PHP web app](https://kool.dev/docs/getting-started/starting-new-project).

To help you start building real-world applications, we've created Kool Presets as a starting point for some popular frameworks and stacks.

### Available Presets

#### Popular stacks and frameworks

- **Node**: [NestJS](https://github.com/kool-dev/kool/blob/HEAD/docs/03-Presets/NestJS.md), [AdonisJs](https://github.com/kool-dev/kool/blob/HEAD/docs/03-Presets/AdonisJs.md), [Express.js](https://github.com/kool-dev/kool/blob/HEAD/docs/03-Presets/ExpressJS.md)
- **PHP**: [Laravel](https://github.com/kool-dev/kool/blob/HEAD/docs/03-Presets/Laravel.md), [Laravel Octane](https://github.com/kool-dev/kool/blob/HEAD/docs/03-Presets/Laravel+Octane.md), [Symfony](https://github.com/kool-dev/kool/blob/HEAD/docs/03-Presets/Symfony.md), [CodeIgniter](https://github.com/kool-dev/kool/blob/HEAD/docs/03-Presets/CodeIgniter.md)
- **Javascript**: [Next.js](https://github.com/kool-dev/kool/blob/HEAD/docs/03-Presets/NextJS.md), [NuxtJS](https://github.com/kool-dev/kool/blob/HEAD/docs/03-Presets/NuxtJS.md)
- **Others**: [Hugo](https://github.com/kool-dev/kool/blob/HEAD/docs/03-Presets/Hugo.md), [WordPress](https://github.com/kool-dev/kool/blob/HEAD/docs/03-Presets/WordPress.md)

#### Monorepo structures

It's a common challange mixing up different frameworks for the frontned and a backend API. Working with containers and having them both working an communicating properly can be a huge differential for good development experience and productivity.

Check out our pre-shaped [mono-repo structures](https://monorepo.tools/#what-is-a-monorepo) in a single preset:

- [Monorepo NestJS + Next.js](https://github.com/kool-dev/kool/blob/HEAD/docs/03-Presets/2-Monorepo-NestJS-with-NextJS.md) with Typescript on both the frontend and the backend.

> If you don't see your favorite framework in the list above, please let us know by creating a GitHub issue, or, better yet, feel free to submit a PR!

## Documentation

Read the documentation at [**https://kool.dev/docs**](https://kool.dev/docs) or [docs/](https://github.com/kool-dev/kool/tree/HEAD/docs/).

## Community, Contributing and Support

We invite you to contribute and help in our mission of making software development *kool* for everyone.

- [Issues](https://github.com/kool-dev/kool/tree/HEAD/issues) are the primary channel for bringing issues and proposals to our attention.
- [Kool on Slack](https://kool.dev/slack) is a great place to get help and interact with Kool developers.
- Learn how to get involved by reading our [contributing guide](https://github.com/kool-dev/kool/blob/HEAD/CONTRIBUTING.md).

## Roadmap

Our work is organized according to a loosely defined but clear roadmap. Check out [the Roadmap page](https://blog.kool.dev/page/roadmap) on [our blog](https://blog.kool.dev/).

## Security

If you find a security issue, please let us know right away, before making it public, by creating a GitHub issue. We'll take action as soon as possible. You can email questions and concerns to `contact@kool.dev`.

For known CVEs inherited by the `kooldev/kool` Docker image from its upstream `docker:X-cli` base, see the [known security caveat](https://github.com/kool-dev/kool/blob/HEAD/docs/01-Getting-Started/5-CI-Integration.md#known-security-caveat) in the CI Integration guide. These affect only users running the published Docker image in CI pipelines — the native **kool** binary installed via `curl | bash` is unaffected.

## License

The MIT License (MIT). Please see [License File](https://github.com/kool-dev/kool/blob/HEAD/LICENSE.md) for more information.
