Agent skill

Env Configuration

by latitude-dev in latitude-dev/latitude-llm

Adding or reading env vars, updating .env.example, or validating config at startup with parseEnv / parseEnvOptional.

MITAuto-check: notesDevOps & Cloud

Install Env Configuration

skills CLI
$ npx skills add latitude-dev/latitude-llm --skill env-configuration -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install latitude-dev/latitude-llm env-configuration --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/latitude-dev/latitude-llm.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/env-configuration .claude/skills/env-configuration && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
env-configuration
GitHub stars
4.7k
Token cost
~911 tokens
SKILL.md length
344 words
Files
1
Skills in repo
28
Repo updated
First seen
Licence
MIT

At a glance

Adding or reading env vars, updating .env.example, or validating config at startup with parseEnv / parseEnvOptional.

  • Works in 2 steps: The configuration reference… → The Helm chart charts/latitude/ — decide…
  • DevOps & Cloud work in your project
  • SKILL.md covers LAT_ prefix convention, .env.example maintenance, Keep the self-host surfaces in… and Parsing in code
  • Needs LAT_BETTER_AUTH_SECRET and LAT_STRIPE_SECRET_KEY

What it does

Env Configuration is an agent skill from latitude-dev/latitude-llm. Adding or reading env vars, updating .env.example, or validating config at startup with parseEnv / parseEnvOptional.

Its SKILL.md is about 910 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in DevOps & Cloud. It works with Vite and Docker. The repository describes itself as: Open-source observability for AI agents. Find where your agents fail, dispatch your coding agent to fix it, and verify the fix against real traces. The licence is MIT.

When your agent uses it

  • DevOps & Cloud work in your project

Example prompts

  • “/env-configuration”

Requirements

  • Docker
  • A credential in LAT_BETTER_AUTH_SECRET
  • A credential in LAT_STRIPE_SECRET_KEY

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. The configuration reference docs/deployment/configuration.mdx — so operators know what the var does — unless it is specific to Latitude's…
  2. The Helm chart charts/latitude/ — decide where the var belongs

What it can do on your machine

Read from SKILL.md and the folder at commit 87e8aa0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • LAT_BETTER_AUTH_SECRET
    • LAT_STRIPE_SECRET_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Env Configuration loads about 911 tokens when it runs. Until then it costs about 34 tokens; SKILL.md has 344 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~34
When it runs · the whole SKILL.md, loaded when a task matches
~911

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:48
    o per-var change (it consumes the whole `.env.production`), but a new **required** var must land in `.env.example`'s pro

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from latitude-dev/latitude-llm at commit 87e8aa0, republished under its MIT licence (© latitude-dev). 344 words, ~911 tokens.

Download SKILL.mdSave it as .claude/skills/env-configuration/SKILL.md (or your agent's skills folder).
name
env-configuration
description
Adding or reading env vars, updating .env.example, or validating config at startup with parseEnv / parseEnvOptional.

Environment configuration

When to use: Adding or reading env vars, updating .env.example, or validating config at startup with parseEnv / parseEnvOptional.

LAT_ prefix convention

All application environment variables must be prefixed with LAT_ so they do not collide with third-party services, Docker, or common names.

Use LAT_ for:

  • Database URLs and pool settings (LAT_DATABASE_URL, LAT_PG_POOL_MAX, …)
  • Service endpoints the app reads (LAT_CLICKHOUSE_URL, LAT_REDIS_HOST, …)
  • App ports (LAT_API_PORT, LAT_WEB_PORT, LAT_INGEST_PORT)
  • Auth, email, OAuth, billing, CORS (LAT_BETTER_AUTH_SECRET, LAT_MAILPIT_HOST, …)
  • Any new variable consumed by Latitude application code

Do not use LAT_ for:

  • NODE_ENV
  • Docker-only init variables (POSTGRES_USER, CLICKHOUSE_USER, …)
  • Config read only by container images (Weaviate, Redis in compose, etc.)
  • Browser-exposed Vite vars: use VITE_LAT_* (Vite requires the VITE_ prefix)

Reference: .env.example lists Docker “Services” vs “Latitude Application” (LAT_*) variables.

.env.example maintenance

Every new variable must appear in .env.example:

  • Required: uncommented with a sensible local default (e.g. LAT_API_PORT=3001)
  • Optional: commented with a placeholder (e.g. # LAT_STRIPE_SECRET_KEY=sk_test_xxx)

Keep the self-host surfaces in sync

Self-hosters configure Latitude through these env vars, so adding, renaming, or removing one means updating more than .env.example. Whenever you touch a LAT_* var, also reflect it in:

  1. The configuration reference docs/deployment/configuration.mdx — so operators know what the var does — unless it is specific to Latitude's own cloud deployment, which stays out of the self-host docs: payments/Stripe, marketing/lifecycle email (Loops), support chat (Intercom), and internal analytics/observability vendors (PostHog, Datadog/OTEL export, GTM, Framer, ipinfo). General app/infra/auth/AI/email-transport vars all belong in the reference.
  2. The Helm chart charts/latitude/ — decide where the var belongs:
    • non-secret → templates/configmap.yaml (and a values.yaml knob if it's a first-class setting);
    • secret → templates/secret.yaml and the chart README's existingSecret key list;
    • optional/rare → no template change needed; the documented config.extraEnv / secrets.extra pass-through already covers it.

docker-stack.yml needs no per-var change (it consumes the whole .env.production), but a new required var must land in .env.example's production guidance. The Railway template is dashboard-authored — no repo change. See dev-docs/self-hosting.md for the tier/contract overview.

Parsing in code

Always use parseEnv or parseEnvOptional from @platform/env — never process.env.FOO ad hoc or unprefixed names for app config.

typescript
// ❌ Bad - unprefixed or direct access
const port = Number(process.env.PORT)

// ✅ Good - pass the variable name string (parseEnv reads process.env internally)
import { parseEnv, parseEnvOptional } from "@platform/env"
import { Effect } from "effect"

const port = Effect.runSync(parseEnv("LAT_API_PORT", "number", 3001))
const dbUrl = Effect.runSync(parseEnv("LAT_DATABASE_URL", "string"))

For where configuration is wired in apps (clients, routes), see architecture-boundaries.

© latitude-dev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/env-configuration of latitude-dev/latitude-llm.

Open the folder on GitHubat commit 87e8aa0

Compare with similar skills

Env Configuration next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Env Configuration compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Env Configuration this skilllatitude-dev/latitude-llm4.7k—~911Automated safety check: NotesMIT
Devinggo Generatorhuagelong/devinggo122—~3.3kAutomated safety check: PassApache-2.0
Pwa ReleaseAHS12/thoth-blueprint626—~505Automated safety check: PassGPL-3.0
Wasm Interopandymai/brepjs114—~3kAutomated safety check: PassApache-2.0
GreptimeDB Dev Docker ImageGreptimeTeam/greptimedb6.7k—~4kAutomated safety check: NotesApache-2.0
Redis Insight Pluginredis/RedisInsight8.9k—~3.5kAutomated safety check: PassMIT

Similar skills

  • Devinggo Generator

    huagelong/devinggo

    DevingGo 代码生成器 CLI 工具集。当用户需要生成 CRUD 代码、创建模块、管理 Worker 任务、 导入导出模块、或需要快速搭建后端/前端代码时使用。适用于任何涉及代码生成、模块管理、 数据库表对应的前后端代码生成的场景。

    122 GitHub stars~3.3k tokensUpdated 3 mo ago
    DevOps & CloudAuto-check passed
  • Pwa Release

    AHS12/thoth-blueprint

    Safely change Vite, service-worker, offline fallback, cache, Docker, Vercel, or release-distribution behavior.

    626 GitHub stars~505 tokensUpdated 1 mo ago
    DevOps & CloudAuto-check passed
  • Wasm Interop

    andymai/brepjs

    This skill should be used when working across the JS/WASM boundary in brepjs — writing or debugging code in src/kernel/occt, src/kernel/occtWasm, or src/kernel/brepkit, or diagnosing symptoms like…

    114 GitHub stars~3k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • GreptimeDB Dev Docker Image

    GreptimeTeam/greptimedb

    Packages a locally built GreptimeDB debug binary into a development-only Docker image for local-cluster testing, with an optional push to a dev registry.

    6.7k GitHub stars~4k tokensUpdated 3 days ago
    DevOps & CloudAuto-check: notes
  • Redis Insight Plugin

    redis/RedisInsight

    Official

    A skill your agent uses when creating, modifying, debugging, deploying, or testing Redis Insight Workbench visualization plugins, plugin manifests, package.json visualizations, activationMethod…

    8.9k GitHub stars~3.5k tokensUpdated 3 days ago
    DatabasesAuto-check passed
  • Frontend Build Timing Audit

    openops-cloud/openops

    Detects and diagnoses chunk-evaluation timing bugs in the Vite/rolldown production build of react-ui (works-in-dev / broken-in-build i18n regressions, missing UI labels, module-scope t()…

    1.1k GitHub stars~2.3k tokensUpdated yesterday
    Frontend & DesignAuto-check passed

More from latitude-dev/latitude-llm

All 28 skills in this repo
  • Better Auth Best Practices

    latitude-dev/latitude-llm

    Configure Better Auth server and client, set up database adapters, manage sessions, add plugins, and handle environment variables.

    4.7k GitHub starsUsed in 7 repos~1.6k tokens
    Auto-check passed
  • Artifact Designer

    latitude-dev/latitude-llm

    Create, validate, preview, and publish self-contained HTML artifacts.

    4.7k GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • CI Watchdog

    latitude-dev/latitude-llm

    Continuously monitor GitHub PR CI checks and automatically fix failures until all checks pass.

    4.7k GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Temporal Developer

    latitude-dev/latitude-llm

    This skill should be used when the user asks to "create a Temporal workflow", "write a Temporal activity", "debug stuck workflow", "fix non-determinism error", "Temporal Python", "Temporal…

    4.7k GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed
  • Docs

    latitude-dev/latitude-llm

    Review the current conversation context and git changes, then persist durable repository knowledge into dev-docs/.md by domain and into AGENTS.md for cross-cutting repo rules.

    4.7k GitHub stars~2.5k tokensUpdated yesterday
    Auto-check passed
  • Managing Maintenance Windows

    latitude-dev/latitude-llm

    Enables or disables Latitude production maintenance mode by redirecting all publicly exposed production services to the Better Stack status page.

    4.7k GitHub stars~802 tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Env Configuration

What does Env Configuration do?

Adding or reading env vars, updating .env.example, or validating config at startup with parseEnv / parseEnvOptional. Env Configuration is an agent skill from latitude-dev/latitude-llm.example, or validating config at startup with parseEnv / parseEnvOptional.

When should I use Env Configuration?

Env Configuration fits situations like: devOps & Cloud work in your project.

How do I install Env Configuration in Claude Code?

Run `npx skills add latitude-dev/latitude-llm --skill env-configuration -a claude-code`. Or copy the skill folder (.agents/skills/env-configuration in latitude-dev/latitude-llm) into .claude/skills/env-configuration in your project. Claude Code loads it when a task matches its description.

How do I install Env Configuration in Codex?

Run `npx skills add latitude-dev/latitude-llm --skill env-configuration -a codex`. Or copy the skill folder (.agents/skills/env-configuration in latitude-dev/latitude-llm) into .agents/skills/env-configuration in your project. Codex loads it when a task matches its description.

Can I use Env Configuration in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add latitude-dev/latitude-llm --skill env-configuration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/env-configuration, .gemini/skills/env-configuration, .github/skills/env-configuration and .opencode/skills/env-configuration in your project.

What does Env Configuration need to run?

Going by SKILL.md and its folder, Env Configuration needs credentials named LAT_BETTER_AUTH_SECRET and LAT_STRIPE_SECRET_KEY. Our summary lists: Docker; A credential in LAT_BETTER_AUTH_SECRET; A credential in LAT_STRIPE_SECRET_KEY.

Does Env Configuration access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Env Configuration safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Env Configuration use?

Env Configuration is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Env Configuration use?

About 911 tokens (SKILL.md is roughly 3.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Env Configuration?

Skills that share tags, products or a category with Env Configuration: Devinggo Generator (huagelong/devinggo, 122 stars), Pwa Release (AHS12/thoth-blueprint, 626 stars), Wasm Interop (andymai/brepjs, 114 stars) and GreptimeDB Dev Docker Image (GreptimeTeam/greptimedb, 6.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Env Configuration?

latitude-dev (a GitHub organization) maintains it in latitude-dev/latitude-llm, which has 4,712 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 6, 2026.

Source: latitude-dev/latitude-llm on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.