envy

command module
v0.4.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 1, 2026 License: MIT Imports: 5 Imported by: 0

README

envy

Use envy to manage sensitive environment variables when running commands.

Run CI Tests

Project Overview

github.com/shoenig/envy provides a CLI utility for running commands with secret environment variables like GITHUB_TOKEN, etc.

envy builds on ideas from envchain and schain. It makes use of the go-keyring library for multi-platform keyring management. Encryption is based on Go's built-in crypto/aes library. Persistent storage is managed through boltdb.

Supports Linux, macOS, and Windows

Getting Started

Install

The envy command is available to download from the Releases page.

Multiple operating systems and architectures are supported, including

  • Linux
  • macOS
  • Windows
Install from Go module

The envy command can be installed from source by running

$ go install github.com/shoenig/envy@latest

Example Usages

usage overview
NAME:
  envy - wrangle environment varibles

USAGE:
  envy  [global options] [command [command options]] [arguments...]

VERSION:
  v0

DESCRIPTION:
  The envy is a command line tool for managing profiles of
  environment variables.  Values are stored securely using
  encryption with keys protected by your desktop keychain.

COMMANDS:
  list  - list environment profiles
  set   - set environment variable(s) in a profile
  purge - purge an environment profile
  show  - show values in an environment variable profile
  exec  - run a command using environment variables from profile

GLOBALS:
--help/-h   boolean - print help message
create/update a profile
$ envy set example FOO=1 BAR=2 BAZ=3
update existing variable in a profile
$ envy set example FOO=4
remove variable from profile
$ envy set example -FOO
execute command
$ envy exec example env
BAR=2
BAZ=3
... <many more from user> ...
execute command excluding external environment
$ envy exec --insulate example env
BAR=2
BAZ=3

Note that -i is short for --insulate.

execute command including extra variables
$ envy exec --insulate example EXTRA=value env
EXTRA=value
BAR=2
BAZ-3
list available profiles
$ envy list
consul/connect-acls:no_tls
example
nomad/e2e
test
show variables in a profile
$ envy show test
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
show profile variables w/ values
$ envy show --unveil test
AWS_ACCESS_KEY_ID=aaabbbccc
AWS_SECRET_ACCESS_KEY=233kjsdf309jfsd

Note that -u is short for --unveil.

delete profile
$ envy purge test
purged profile "test"

Contributing

The github.com/shoenig/envy module is always improving with new features and error corrections. For contributing bug fixes and new features please file an issue.

LICENSE

The github.com/shoenig/envy module is open source under the MIT license.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL