Skip to main content
plugin

varlock — Claude Code plugin: secrets and setup

This plugin brings Varlock into Claude Code to check environment variables while keeping secrets out of output, context, logs, and Git changes.

Install into Claude Code · Plugin marketplace All methods and platforms ↓
/plugin marketplace add anthropics/claude-plugins-community
/plugin install varlock@claude-community
/plugin install varlock-skill@claude-community
Open on GitHub

What varlock does

varlock routes environment-variable checks through Varlock. Claude Code can use varlock load for masked validation and varlock run -- npm start to launch a command with injected secrets. The .env.schema file provides a safe view of configuration without exposing values.

Schema annotations describe variable types, required fields, and sensitivity. Rules such as @required, @sensitive, and @type=string(startsWith=...) let the setup validate keys without printing them. When asked to change a secret, the plugin declines and tells the user to edit it manually.

Install the Varlock CLI first, then add $HOME/.varlock/bin to PATH. Without the CLI available there, the plugin cannot run its checks.

What it helps with

  • check whether an API key is set without printing it
  • validate required environment variables
  • run a command with secrets injected
  • inspect .env structure without exposing values
  • keep secrets out of logs and Git diffs

Example prompts for the agent

  • Check whether API_KEY is configured using a masked Varlock validation.
  • Validate this project’s environment configuration and show masked values only.
  • Start the app with varlock run -- npm start without exposing its secrets.

How to install varlock

Plugin marketplace

/plugin marketplace add anthropics/claude-plugins-community
/plugin install varlock@claude-community
/plugin install varlock-skill@claude-community

Step by step, with commands for each platform: Claude Code plugins: marketplaces, installing, and building your own

Questions about varlock

How do I install varlock in Claude Code?

Run /plugin marketplace add anthropics/claude-plugins-community, then /plugin install varlock@claude-community, followed by /plugin install varlock-skill@claude-community.

What does varlock do?

The plugin sends environment checks through Varlock and helps keep secrets out of Claude Code output, logs, and Git changes.

What is required for varlock to work?

Install the Varlock CLI and add $HOME/.varlock/bin to PATH. Use .env.schema to define configuration rules.

Source text

SKILL.md · MIT
# Varlock Skill for Claude Code

> Secure-by-default environment variable management. Ensures secrets are **never exposed** in Claude sessions.

## Why This Skill?

When working with Claude Code, secrets can accidentally leak into:
- Terminal output
- Claude's input/output context
- Log files or traces
- Git commits or diffs

This skill wraps [Varlock](https://varlock.dev) to enforce secure patterns and prevent accidental exposure.

## Installation

### Option A: One-liner (Recommended)

```bash
mkdir -p ~/.claude/skills/varlock && curl -sSL https://raw.githubusercontent.com/wrsmith108/varlock-claude-skill/main/skills/varlock/SKILL.md -o ~/.claude/skills/varlock/SKILL.md
```

### Option B: Manual

```bash
git clone https://github.com/wrsmith108/varlock-claude-skill /tmp/varlock-skill
cp -r /tmp/varlock-skill/skills/varlock ~/.claude/skills/
rm -rf /tmp/varlock-skill
```

## Prerequisites

Install the Varlock CLI:

```bash
curl -sSfL https://varlock.dev/install.sh | sh -s -- --force-no-brew
export PATH="$HOME/.varlock/bin:$PATH"
```

## Core Principle

**Secrets must NEVER appear in Claude's context.**

| Never Do | Safe Alternative |
|----------|------------------|
| `cat .env` | `cat .env.schema` |
| `echo $SECRET` | `varlock load` |
| `printenv \| grep API` | `varlock load \| grep API` |

## Quick Reference

```bash
# Validate all secrets (shows masked values)
varlock load

# Quiet validation (no output on success)
varlock load --quiet

# Run command with secrets injected
varlock run -- npm start

# View schema (safe - no values)
cat .env.schema
```

## Schema File

Create `.env.schema` to define variable types and sensitivity:

```bash
# Global defaults
# @defaultSensitive=true @defaultRequired=infer

# Public config
# @type=enum(development,staging,production) @sensitive=false
NODE_ENV=development

# Sensitive secrets
# @type=string(startsWith=sk_) @required @sensitive
STRIPE_SECRET_KEY=

# @type=url @required @sensitive
DATABASE_URL=
```

### Annotations

| Annotation | Effect |
|------------|--------|
| `@sensitive` | Value masked in all output |
| `@sensitive=false` | Value shown (for public keys) |
| `@required` | Must be present |
| `@type=string(startsWith=X)` | Prefix validation |


## Handling Secret Requests

When users ask Claude to:

- **"Check if API key is set"** → `varlock load | grep API_KEY`
- **"Debug authentication"** → `varlock load` (validates all)
- **"Update a secret"** → Decline; ask user to update manually
- **"Show me .env"** → `cat .env.schema` instead

## Credits

This skill wraps [Varlock](https://github.com/dmno-dev/varlock) by [DMNO](https://dmno.dev).

## License

MIT

© wrsmith108 · MIT · wrsmith108/varlock-claude-skill

Similar plugins

All plugins for Security →

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor