Penv Cloud
Start free
Docs
Conceptsince 1.0.0-alpha.3

Glossary

Terms used by penv, Penv Cloud and these docs, each linked to the page that documents it.

Terms

TermMeaning
AADAdditional authenticated data bound into an encrypted value. penv binds the value's full address
AES-256-GCMThe cipher every stored value is sealed with
address{org}/{project}/{environment}, plus the key's name
agent sessionA session penv detected as a coding agent. Turns on sealed runs, JSON output and reveal approval
approvalThe request penv reveal creates under an agent, answered by a person in the console within 10 minutes
audit logThe append-only record we keep of every action in your workspace
audit log retention14 days on Free, 180 on Pro; Enterprise entries are not deleted on a schedule
bundleOne environment encrypted into .penv/<env>.bundle by penv bundle, opened with PENV_BUNDLE_KEY
bound keypairAn Ed25519 keypair a plain server uses to prove identity when it can prove nothing else
bundler prefixA name prefix such as NEXT_PUBLIC_ or VITE_ that ships a key to the browser. penv treats such a key as public
BYOKYour Enterprise workspace using your own key in AWS, Google, Azure or Vault
cacheThe sealed local copy of an environment penv run read. Fresh for 60 seconds in development
cloud modeThe @penv= header in .env.schema names a project
credentialpcu_ for a person, pck_ for a machine
decoratorAn @ line above a key, such as @type=url or @rotate=90d
device-code loginWhat penv login does: a code approved in the browser. No password reaches the command line
DPAData processing agreement
driftA key in a value file that the schema does not declare. Reported by penv check
dynamic parameterA key with no stored value, minted on request under a lease
@dynamicFromThe schema marker our console reads for a dynamic parameter. penv ignores it with a warning
@env-specvarlock's decorator specification, the grammar .env.schema is written in
envelope encryptionValues sealed under data keys scoped to your workspace, each encrypted by the workspace's master key
environmentdevelopment, staging, production, or any name you create in the console or with penv env new
environment variablesThe names application code reads, such as DATABASE_URL
ETagThe tag penv run sends so an unchanged environment costs one request
exit code0 ok, 1 error, 2 auth, 3 validation, 4 confirmation required, 5 no credential, 6 environment refused
generation counterAdvanced on every bound-keypair login, so a clone locks out both machines
guardThe deny rules and hooks penv guard writes into each harness's config
@hostsThe hosts a key's value may reach in a sealed run
harnessThe tool a coding agent runs inside: Claude Code, Codex, Cursor, Amp, Copilot CLI, Gemini, Cline or Windsurf
hookpenv hook claude-code and its siblings. Every hook runs the penv binary
KMSThe key management service holding the master key that wraps every data key
language targetWhat penv gen writes: ts, py, go, rust, php, java or csharp. Settings live in [targets.<name>] in .penv/config.toml
leaseThe expiry attached to a dynamic value, recorded without the credential
local modeNo @penv= header. Values come from your value files
machine identityAn identity bound to one project and environment, holding a role, taking no seat. CLI: penv machine
manifestWhat penv help --json prints. The docs, the completions and the agent skill read it
maskingValues scrubbed from program output. On by default in every penv run. Covers base64, hex, percent-encoded and JSON-escaped forms
OIDC token exchangeA pipeline's signed platform token traded for a 15-minute penv credential
pca_An app grant: the long-lived proof of a connection you approved. It is replaced at every use and trades for a read-only pck_
pce_The one-time secret penv machine enroll takes. Never usable as a credential
pck_A machine credential: issued in the console, or minted by an exchange with 15 minutes on it
pcu_A person's credential, stored in the keychain by penv login, valid 30 days from last use and at most 90 days
PENV_ENVThe environment to read when --env is absent
PENV_TOKENThe machine credential a pipeline hands penv. Wins over the keychain
providerWhere cloud values come from, named by the @penv=<provider>: prefix. penv (Penv Cloud) is the default
principalThe person or machine a request acts as. The audit entry calls it the actor
projectOne app or service. The middle part of an address, named by the @penv= header
roleA set of permissions granted at workspace, project or environment level
rotationReplacing a value on a schedule: @rotate=90d in the schema, a new version via penv set or the console
SAMLThe protocol behind company-login sign-in
schema.env.schema: key names, types, and what a valid value looks like
SCIMDirectory sync that provisions and deprovisions members from an identity provider
sealed runA penv run where @hosts keys reach the command as placeholders. Always on under an agent; --sealed otherwise
scopeThe project and environment a credential or role is limited to
secret storeEncrypted storage for the values your apps read. What Penv Cloud is
sensitiveA value penv masks in output. Inferred true unless the key is bundler-prefixed, marked @sensitive=false, or the header says @defaultSensitive=false
session idIdentifies one agent run. Sent on every request from that run and stored on the audit entry
SLAThe availability commitment in an Enterprise contract
SSOSingle sign-on through the company's identity provider
step-upThe identity re-check the console requires before a sensitive action
tenantA workspace: the billing and membership boundary
trustAn issuer, an audience and one exact subject that map a token to a machine identity. Holds no secret
value files.env, .env.local, .env.<env>, .env.<env>.local, layered in that order
workload identityOther vendors' term for a machine identity

Retired terms

The 1.0 command line was rewritten in Rust, and these terms were retired with the old one.

Old termReplacement
penv.config.ts, defineConfig.env.schema, plus settings in .penv/config.toml
filesystem providerValue files in local mode. A provider now names where cloud values come from
the four-scope cascadeValue files layered for one environment per run
.enc files, the local envelope, PENV_KEY_*Opt-in penv encrypt with a keychain key, or values stored with us
$PENV_HOME, .penv/state.penv/config.toml for remembered answers, and the platform cache directory
penv doctorpenv check
penv rotatepenv set, plus @rotate in the schema
PENV_DELIVERY, PENV_CLOUD_TOKENPENV_TOKEN
materialize a parameterWrite a .env with penv pull

Next: how penv works.

On this page