Appearance
Known limitations (v0.1.0)
- An app that loads
.envitself gets a reference, not a value.geslar run --env-file/-eresolvesgeslar://references only into the child process's environment — it doesn't rewrite files on disk. If your app has its own dotenv-loading library, point it at the resolved environment viageslar run -- your-app(same pattern asop run), not at a.envfile containing rawgeslar://references. - No offline mode. v1 requires network access for every command that touches the vault (no local cache). Fully local-only access is a later phase, not yet scoped.
- Unattended CI needs a human in the loop today. There's no service-account/machine-identity story yet — every
geslar signinis a real device-flow approval by a real person. CI-without-a-human is planned for a later milestone. - A spawned child's environment variables are readable by other processes owned by the same OS user — this is standard OS behavior (the same is true of
op runand any tool that sets child env vars), not somethinggeslar runcan change. If that's not an acceptable boundary for your threat model, isolate the process (container, dedicated CI runner user, etc.). - Opt-in, guarantee-lowering flags (
--return-stdout-tail,--allow-secret-read) are planned but not implemented in v0.1.0. When they land, they'll require explicit opt-in and get a distinct audit log entry — normalread/runnever captures or echoes a resolved value except through the one designated channel (read's stdout, or-o <file>). - The KDF is PBKDF2-SHA256 at 600,000 iterations (current OWASP minimum). Migrating to Argon2id is a decision that spans the whole platform (browser extension, console, mobile, CLI) together, not something the CLI can change unilaterally — tracked as a future platform-wide item.
- Alpine / musl-libc / busybox: neither install path works out of the box today. See Install for the verified specifics (busybox
envrejects the CLI's shebang flag; the standalone binary is glibc-only and doesn't run under musl even withgcompat). Rungeslarfrom a non-Alpine base if you're containerized.