Skip to content
All projects

DevOps Tooling · CLI

estoe

A command-line tool that turns one cloud secret into a local .env file, so developers stop copying secret values by hand.

Status
v0.2.0 · PyPI
Discipline
DevOps & Cloud
Key stack
Python, AWS Secrets Manager
Repository
View on GitHub

Overview

Overview

What it does

estoe (Secret to Env) reads one explicitly selected secret from AWS Secrets Manager, Azure Key Vault or Google Secret Manager, checks that it is a flat JSON object of strings, and writes it as a dotenv file.

It uses the developer's existing cloud login, can preview key names without values, and refuses unsafe destinations. It only reads: it never creates secrets, logs in, or discovers other secrets.

Problem

Setting up a local environment often means copying values from a cloud console into a .env file by hand. That is slow and error-prone, and it leaks secrets into clipboards, shell history, screenshots and, too often, Git.

Who it helps

Developers on macOS or Linux who keep application configuration in a cloud secret manager and need the same values locally.

Solution

Solution

  • One command per provider using existing credentials: an AWS profile and region, an Azure CLI session, or Google Application Default Credentials.
  • Preflight before any cloud call: tracked or unignored Git destinations, symlinks, special files and unsafe directories are rejected.
  • Strict validation: duplicate keys, nested values, non-strings and invalid variable names fail before anything is written.
  • Private (0600), atomic writes with separate create-only and explicit-overwrite paths; preview mode shows key names only.
  • SDK calls run in an isolated worker with a 15-second deadline, and errors use fixed codes so values never reach logs or diagnostics.

Technology stack

Application
  • Python 3.12+
  • argparse
  • Hatchling
Cloud SDKs
  • boto3 (AWS Secrets Manager)
  • Azure Identity + Key Vault Secrets
  • Google Cloud Secret Manager
Testing & quality
  • pytest
  • Ruff
  • uv
CI/CD & release
  • GitHub Actions
  • PyPI Trusted Publishing

Infrastructure & architecture

Infrastructure & architecture

A locally installed CLI, so there is no hosted infrastructure. The engineering is in the release pipeline, repository controls and least-privilege cloud permissions.

  1. CLI
  2. preflight
  3. provider worker
  4. validate + encode
  5. atomic write
Distribution
Published on PyPI (v0.2.0) and GitHub Releases; installs with uv tool install estoe.
Release pipeline
GitHub Actions builds and validates the wheel and source distribution, then publishes approved releases through PyPI Trusted Publishing (OIDC), with no stored token.
CI
Formatting, linting and tests on Python 3.12–3.14, with network access denied in tests, plus a dependency audit.
Repository controls
Protected main branch: pull requests, passing CI and resolved conversations required; force pushes and deletion blocked.
Cloud permissions
Least-privilege examples: secretsmanager:GetSecretValue on one secret, kms:Decrypt for customer-managed keys, and equivalent Azure and Google roles.