---
title: Installation
description: How to install and set up Varlock in your project
---

import ExecCommandWidget from "@/components/ExecCommandWidget.astro";
import { LinkButton } from "@astrojs/starlight/components";

There are two ways to install `varlock`:

1. Install as a `package.json` dependency in JavaScript/TypeScript projects
2. Install as a standalone binary

---

If you prefer to let your AI agent install Varlock for you, you can skip these instructions and build a prompt for your agent:

<div class="cta-button-row">
  <LinkButton href="/prompt-builder/">Open Prompt Builder</LinkButton>
</div>

### Docs MCP

There is also a Docs MCP server that exposes a search tool. See more details [here](/guides/mcp/#docs-mcp).

## As a JavaScript/TypeScript dependency

Requires:
- Node.js version 22 or higher

### Installation

To install `varlock` in your project, run:

<ExecCommandWidget command="varlock init" showBinary={false} dlx={true} />

This will install `varlock` as a dependency and scan your project for `.env` files and create a `.env.schema` file in the root of your project. Depending on your project configuration, it will optionally:
- Remove your existing `.env.example` file
- Add decorators to your `.env.schema` file to specify the type of each environment variable
{/* - Encrypt secrets in your `.env` file */}

## As a standalone binary

To install `varlock` CLI as a binary, run:

```bash
# Install via homebrew
brew install dmno-dev/tap/varlock

# OR via cURL
curl -sSfL https://varlock.dev/install.sh | sh -s
```

Then run the setup wizard to help you get started:
```bash
varlock init
```

You can then run `varlock --help` to see the available commands or read the [CLI Reference](/reference/cli-commands/).

:::tip[Shell completions]
Enable tab completion for varlock commands and flags in your terminal. See the [Shell Completion guide](/guides/shell-completion/) for setup instructions.
:::

