Skip to content

A local-first CLI tool for managing and syncing environment variables across shell configs and .env files

License

Notifications You must be signed in to change notification settings

SandyKidYao/evk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

evk

  ███████╗██╗   ██╗██╗  ██╗
  ██╔════╝██║   ██║██║ ██╔╝
  █████╗  ██║   ██║█████╔╝
  ██╔══╝  ╚██╗ ██╔╝██╔═██╗
  ███████╗ ╚████╔╝ ██║  ██╗
  ╚══════╝  ╚═══╝  ╚═╝  ╚═╝

  Environment Variable Keeper

A local-first environment variable keeper for developers.

Features

  • Store environment variables in a local YAML file (~/.evk/store.yaml)
  • Sync variables to shell config files (.zshrc, .bashrc) and .env files
  • Non-destructive updates with managed blocks
  • Conflict detection: automatically comments out existing variables
  • Clean command restores previously commented variables
  • Import variables from existing .env or shell config files
  • Interactive TUI mode for easy management
  • Tag-based organization

Installation

npm install -g evk

Or run directly with npx:

npx evk

Usage

Command Mode

# Add a variable (auto-initializes on first use)
evk add API_KEY sk-xxx --description "OpenAI API Key" --tags prod,api

# List all variables
evk list
evk list --tags prod  # Filter by tags

# Show variable details
evk show API_KEY

# Get variable value (for scripting)
evk get API_KEY

# Remove a variable
evk remove API_KEY

# Sync to files
evk sync -z                 # Sync all variables to ~/.zshrc
evk sync -b                 # Sync to ~/.bashrc
evk sync -e                 # Sync to ./.env
evk sync API_KEY DB_URL -z  # Sync specific keys to ~/.zshrc
evk sync --file ~/custom    # Sync to custom file path

# Import variables from a file
evk import .env                 # Import from .env file
evk import ~/.zshrc -t shell    # Import with tags
evk import config.env --dry-run # Preview without saving
evk import .env --force         # Overwrite existing variables

# Clean managed blocks from files
evk clean -z                # Clean ~/.zshrc
evk clean -b                # Clean ~/.bashrc
evk clean -e                # Clean .env file
evk clean --file ~/custom   # Clean specific file
evk clean --all             # Clean all known targets

# Export variables (for eval)
eval $(evk export)          # Export all variables
eval $(evk export API_KEY)  # Export specific keys
evk export -t prod          # Export by tags

# Purge all evk data
evk purge --force           # Delete ~/.evk directory

Interactive TUI Mode

evk      # Default: starts TUI mode
evk ui   # Explicit TUI command

The TUI provides:

  • List view with variable details
  • Add new variables
  • Edit existing variables
  • Import variables from files
  • Sync to custom paths
  • Clean files with restore preview

Managed Blocks

When syncing to files, evk creates managed blocks:

# === evk Managed Block ===
# Auto-generated by evk. Do not edit manually.
export API_KEY="sk-xxx"
# === End evk Managed Block ===

Variables outside the block that conflict with synced keys are automatically commented out and restored when cleaning.

License

MIT

About

A local-first CLI tool for managing and syncing environment variables across shell configs and .env files

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •