anaksor-ocr
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

William Smith’s one-file skill that teaches Claude Code to work with .env secrets without reading them. Claude checks a key with Varlock, which masks the value, and you change secrets by hand.
Varlock Skill is an open-source project on GitHub in the Developer category, listed by Mindket. It is free. This is version 2, last updated on . Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.
curl -sSfL https://varlock.dev/install.sh | sh -s -- --force-no-brew export PATH="$HOME/.varlock/bin:$PATH"
Varlock Skill is William Smith’s one-file skill that teaches Claude Code to handle secrets without reading them. It wraps Varlock, a DMNO tool that reads a .env.schema file beside your .env and masks each value marked sensitive. With the skill on, Claude checks that a key is set by running varlock load. It reads the schema file in place of .env.
Developers who use Claude Code in a project with API keys, tokens or database addresses in a .env file and do not want those values in a chat. It suits small teams too, since the schema file holds no secret values and can be committed.
| Who | What they do with it | Example |
|---|---|---|
| Solo developers | Keep keys out of the chat while Claude helps debug | A developer asks why payments fail, and Claude checks that the Stripe key is set without printing it. |
| Small teams | Commit .env.schema so everyone sees which variables the project needs | A teammate clones the repository and reads the schema to learn which variables to fill in. |
| Teams with CI | Run the same check in the pipeline | A GitHub Actions step runs varlock load --quiet, with the values passed in from GitHub Secrets. |
| Users of 1Password or AWS Secrets Manager | Let the schema fetch a value from a command | A schema line reads a key with 1Password’s op read command. |
Claude Code is the home. The README is titled for it and names no other agent.
You install two things. The Varlock tool does the masking, and the skill file tells Claude when to use it. Get it saves a zip of Mindket’s setup notes in your downloads folder.
| Need | Detail |
|---|---|
| Claude Code | Where the skill file loads |
| A bash shell | The README’s commands are written for bash and give no Windows steps |
| curl | For both installs. Git only if you pick the clone route |
| A .env file | In the project you want to protect. varlock init can write the schema from it |
| Accounts and keys | None for the skill. The README names no sign-up |
curl -sSfL https://varlock.dev/install.sh | sh -s -- --force-no-brew export PATH="$HOME/.varlock/bin:$PATH"
The first line runs Varlock’s install script the moment it downloads, so read Good to know before you paste it. The skill file says to add the export line to ~/.zshrc or ~/.bashrc.
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
The README’s second route clones the repository to /tmp, copies skills/varlock into ~/.claude/skills/ and deletes the clone. Make ~/.claude/skills first with mkdir -p. On a machine that has none, cp -r would name the new folder skills and leave SKILL.md one level too high.
Ask Claude about your keys in plain words. With the skill loaded, Claude reaches for varlock in place of echo, cat or printenv.
| You ask | Claude runs | You do |
|---|---|---|
| Is my API key set? | varlock load, then picks out that variable’s line | Nothing |
| Debug my sign-in | varlock load, which checks types and required fields | Fix any missing value in .env yourself |
| Update a secret | Nothing. The skill has Claude decline | Change it in .env or your secrets manager, then run varlock load to check it |
| Show me the .env file | cat .env.schema in its place, and it offers varlock load for the masked values | Nothing |
| Run the app | varlock run -- npm start | Nothing |
Payments fail in your app, and you suspect the Stripe key is missing from .env.
Is my Stripe key set? Do not show me the value.
Claude runs varlock load, finds STRIPE_SECRET_KEY marked sensitive with its value masked, and tells you it is set.
If the line says the variable is missing, Claude says so and asks you to add the value to .env yourself. It will not write the value for you.
If you are new. A .env file holds your keys as plain text. If Claude reads it, every key lands in the chat. Varlock splits the job in two. The schema file names each variable, its type and whether it is secret. It holds no secret values. The varlock load command checks the real .env and prints a masked answer. Start in a small project and run varlock init.
For experts. The schema opens with a header line, then one line of annotations above each variable. The skill file lists seven types: string, string(startsWith=X), string(contains=X), url, port, boolean and enum(a,b,c). A value can come from a command, written as exec(...) in the schema. These are the skill file’s lines for 1Password and AWS, and for a value picked by environment:
# @type=string @sensitive
API_KEY=exec('op read "op://vault/item/field"')
# @type=string @sensitive
DB_PASSWORD=exec('aws secretsmanager get-secret-value --secret-id prod/db')
# @type=url
API_URL=env('API_URL_${NODE_ENV}', 'http://localhost:3000')The skill file’s GitHub Actions example passes the secrets in as env and runs varlock load --quiet. Its Docker example installs Varlock in the image and starts the app with varlock run. Its npm scripts example wires varlock load into a prestart script.
The skill asks Claude to behave. It is not a lock.
# Varlock Skill: setup notes This kit holds setup notes written by Mindket. It does not contain the skill. The skill installs from William Smith’s repository: https://github.com/wrsmith108/varlock-claude-skill License: MIT, Copyright (c) 2025 William Smith. Full text: https://github.com/wrsmith108/varlock-claude-skill/blob/main/LICENSE The Varlock tool that the skill drives belongs to DMNO (https://github.com/dmno-dev/varlock, documentation at https://varlock.dev). This skill is a separate wrapper by William Smith. It is not made or endorsed by Anthropic. The pages these notes came from: the README (https://github.com/wrsmith108/varlock-claude-skill/blob/main/README.md), the skill file (https://github.com/wrsmith108/varlock-claude-skill/blob/main/skills/varlock/SKILL.md) and the plugin manifest (https://github.com/wrsmith108/varlock-claude-skill/blob/main/.claude-plugin/plugin.json). Facts about where Claude Code loads skills come from Claude Code’s skills page (https://code.claude.com/docs/en/skills). Mindket copied every command and ran none of them. ## What it is One skill, named varlock, for Claude Code. It tells Claude how to work with environment variables and secrets without reading their values. The rules, in the skill file’s words, are that secrets must never appear in terminal output, in Claude’s input or output, in logs or traces, in git commits or diffs, or in error messages. In practice Claude is told to: - read .env.schema, which holds names, types and flags and no values, and never open .env - check that a key is set with `varlock load`, which prints each secret masked - run a command with the secrets filled in through `varlock run -- <command>` - decline to change a secret itself, and ask you to change it by hand The skill is a text file that Claude follows. The repository holds that one SKILL.md, a plugin manifest, a README and a license, and no script or hook. ## Files in this kit - setup/varlock-cli.md: installing the Varlock tool the skill drives - setup/claude-code.md: the README’s two ways to put the skill in your personal skills folder - setup/first-run.md: the schema file, the commands, and what Claude does when you ask about a secret ## What you need first - Claude Code. - The Varlock command line tool. The skill drives it, and the README lists it under Prerequisites. - curl for the one-line skill install, or Git for the clone route. - A project with a .env file, or a new one. Varlock’s `varlock init` command, which the skill file names, can write the schema from an existing .env. - A bash shell. The README’s commands are written for bash and give no Windows steps. ## What installs where - The skill: one file at ~/.claude/skills/varlock/SKILL.md. - The Varlock tool: in ~/.varlock/bin/, which the README puts on your PATH. - Per project: a .env.schema file that you write and commit, and the .env that stays out of git. ## The plugin file The repository also carries .claude-plugin/plugin.json (name varlock, version 1.0.0). The README gives no /plugin command, so these notes give none. ## Your data The skill is a text file and sends nothing itself. What Claude runs, such as varlock load, it reads back with the sensitive values masked, and that output goes to Claude as in any other Claude work. The Varlock install line fetches its script from varlock.dev. Anything you paste into a chat goes to Claude too, so do not paste a value that is meant to stay secret. ## Update and remove The README gives no update or removal step. Claude Code’s skills page says a personal skill is removed by deleting its folder, here ~/.claude/skills/varlock/.
README.md 4 KB setup/claude-code.md 2 KB setup/first-run.md 3 KB setup/varlock-cli.md 2 KB
Updated by Mindket to the current version of this kit.
Listed GitHub projects in the same category that share the most topics with this one.
| Product | Stars | Activity | Language | License | Last change |
|---|---|---|---|---|---|
| Varlock Skill This page | 33 | — | — | MIT | — |
| Claude Code Skills & PluginsShares claude-code-skills · claude-skills · claude-code | 29,769 | Active | Python | MIT | |
| pstackShares claude-code-skills · claude-skills · claude-code | 4,132 | — | JavaScript | MIT | — |
| Recursive Decomposition SkillShares claude-code-skills · claude-skills | 54 | — | — | MIT | — |
| Claude-Mem by thedotmackShares claude-skills · claude-code | 116,866 | Active | TypeScript | Apache-2.0 | |
| ArchifyShares claude-skills · claude-code | 94,756 | Active | JavaScript | Apache-2.0 |
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…
Qwen · Kit
Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…
ACE-Step · Kit
Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…
alirezarezvani · Skill
Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…
michael-denyer · Skill
Michael Denyer’s port of Lauren Tan’s pstack skill stack to Claude Code, Codex, Pi, GitHub Copilot, Muse and other agents. Tell its poteto-mode skill your goal…