Documentation Index
Fetch the complete documentation index at: https://docs.envless.cloud/llms.txt
Use this file to discover all available pages before exploring further.
Envless is a sync layer for environment variables. You manage variables in the dashboard; your machines pull them down, decrypted locally. There are three ways to do that pull, and which one you pick depends on where the code runs.
Three ways to sync
Import in your app
import { env } from '@goenvless/envless' — typed, decrypted at boot, no files on disk.Sync to .env files
envless sync — writes .env.<slug> for tools that expect a file (Docker, Python, Rails, shell).Wrap a process
envless run -- <cmd> — inject variables into a single child process, nothing persisted.When to pick which
| Mode | Where it lives | Use when |
|---|---|---|
| Import | In your app code | You control the runtime and want types + boot-time validation. Best for Node/Bun/Edge/Workers. |
| Sync | Files on disk (.env.<slug>) | Something else needs a file — Docker Compose, python-dotenv, Rails, source .env in a shell. |
| Run | Child process env | You want zero footprint — no files, no imports — for a single command or CI step. |
They’re not mutually exclusive. A typical setup uses import in app code, sync for the docker-compose dev stack, and run in CI.
What makes them work
All three modes share the same three pieces underneath:
The .envless file
A small JSON file you commit to your repo. It tells Envless what to fetch — workspace, project, and one or more environments — and contains no secrets.
Created by envless link. Safe to commit and share.
The workspace key
Envless is end-to-end encrypted. The server stores ciphertext only; decryption happens on your machine with a key derived from a workspace passphrase.
Set the passphrase once per workspace
envless passphrase set.Derived key is cached locally
~/.envless/config.json (mode 0600). Used by the CLI, runtime, and SDK alike.Server vs client split
Every variable has a visibility flag — server (default) or client. The runtime ships two entry points:
Server secrets can’t end up in a client bundle — enforced by types, runtime, bundler, and lint. See Server vs Client.
How a sync actually flows
One pipeline above the bottom box; three ways out of it.
Beyond syncing: API and SDK
Envless also ships a REST API and a programmatic SDK — but these aren’t for getting variables into your app. They’re for advanced workflows like building tools on top of Envless: writing custom dashboards, scripting workspace/project/variable management, integrating with internal platforms, or automating bulk operations across many projects.
~99% of apps never need these. If you’re just trying to use your variables — import them, sync them to a file, or wrap a process — stick with the three modes above. Reach for the API or SDK only when you’re building on top of Envless rather than using it.
API Reference
SDK
Glossary
Quick reference for the resource model you’ll see in the dashboard and the .envless file:
| Term | What it is |
|---|---|
| Workspace | Top-level container. Holds projects, members, and a single encryption key. Usually one per company. |
| Project | A single app or service (my-api, marketing-site) inside a workspace. Holds environments. |
| Environment | A named bucket of variables — typically development, staging, production. |
| Variable | A key/value pair. Has a name, encrypted value, type, required flag, and visibility. See Typed Variables. |