Skip to content

Your first project

Start a getmyenv project without an account, import your .env, and run your app with its variables. Claim the guest project or sign in later.

Last updated: 2026-10-04

Start without an account

From the project root, run npx getmyenv and choose Start without an account. That creates a guest project with a Development context. Values are encrypted on your machine.

npx getmyenv                        # choose "Start without an account"
npx getmyenv import                 # encrypt and upload your .env
npx getmyenv run -- npm run dev     # start your app with its variables
# Commit .getmyenv/project.json and .getmyenv/template.json
# token.json and claim.json stay local (gitignored)

Scripts and AI agents can use npx getmyenv guest directly. A guest project stays active while the CLI uses it. After 30 days without use, or 180 days after it was created, values can't change. For 30 more days, run still works and it can still be claimed. Unclaimed projects may be deleted after that.

claim.json until claim

claim.json holds the claim code and the guest passphrase. It opens the guest vault until claim. It stays in this folder and is gitignored. At a terminal, guest prints the claim code and guest passphrase once. Run by an agent or a script, it prints neither, and claim.json is the only copy. If the folder is lost before claim, the project cannot be claimed. A clone with .getmyenv/template.json can start a new project with the same names. Run npx getmyenv claim from the same folder, or enter them when it asks. After claim, the context keys are sealed to your account. Keep claim.json private. Do not print it, paste it in chat, or add it to git. The human runs npx getmyenv claim in the same folder, and claim reads it.

What is in .getmyenv

The CLI writes these files in .getmyenv/ at the project root. Not every folder has all four. Commit .getmyenv/project.json and .getmyenv/template.json. token.json and claim.json stay local and are gitignored. The CLI adds the gitignored ones, and .env, to .gitignore.

my-app/
.getmyenv/
  • project.jsoncommitted

    Project id, name and the folder's default context. Written by setup, guest or sign-in.

  • template.jsoncommitted

    Variable names, never values. Written once the project has a variable name.

  • token.jsongitignored

    The folder token. Written by sign-in or guest. Not used with GETMYENV_TOKEN.

  • claim.jsongitignoredguest only

    Claim code and guest passphrase. Keep it private. Written by guest. Deleted by claim.

In CI and on servers, GETMYENV_TOKEN replaces token.json, and the CLI does not write to .getmyenv/. A backup file (.getmyenv-backup) is not part of this folder.

Sign in instead

Choose Sign in and the browser opens. Pick or create a project. New projects start with Development (open) and Production (Read-only). The dashboard asks you to choose a Vault password before your first project, then shows your recovery code once and asks you to type it back. If you create the project on this sign-in page, the CLI asks the first time it encrypts. We store an encrypted key blob, never the password or the code.

More contexts

Add a context for each place your app runs. The slug is generated from the name.

npx getmyenv context create "Staging" --from development
npx getmyenv run staging -- npm start

Another machine

Clone the repo and run npx getmyenv. The committed project.json links the folder to the project. Sign in, unlock with the Vault password once, and run. No .env file needed. If a tool must read a file, use export.

Run getmyenv where your app starts: your machine, the server, the CI job, or the container's start command. It needs Node 24 or newer there. run is the default. If getmyenv can't run where the app starts, export writes a plaintext .env instead.

Start a new project from the repo

Commit .getmyenv/template.json. It lists the variable names, never values. In a fresh clone, npx getmyenv can start a new project from it and asks for each value. The CLI keeps the file up to date after set, import, unset, restore, ls and status. Server tokens never write it.

In a clone without access to the project in project.json, run npx getmyenv and choose the new project. It declares the names and asks for each value. Enter skips one. Values, members and tokens do not carry over.

You can edit descriptions, links, optional and startCommand in the file. The CLI keeps your edits. startCommand is only printed in the run line, never run.