Skip to content

Releases: tolgamorf/env2op-cli

v0.2.5

08 Jan 23:00

Choose a tag to compare

What's New

feat: Add Windows support

  • Add Windows x64 build workflow (build-windows.yml)
  • Add Scoop and Winget manifest templates
  • Update release script to handle Windows manifest updates
  • Add scoop/winget detection to package-manager.ts
  • Add build:windows script to package.json

docs: Update README.md


Installation

Homebrew (macOS/Linux)

brew install tolgamorf/tap/env2op-cli

Package Managers (macOS/Linux/Windows)

# Using bun
bun add -g @tolgamorf/env2op-cli

# Using npm
npm install -g @tolgamorf/env2op-cli

# Using pnpm
pnpm add -g @tolgamorf/env2op-cli

v0.2.4

08 Jan 14:03

Choose a tag to compare

What's New

fix: Improve update notification UX

  • Fix update command hint to use --update flag
  • Check for updates when showing help or missing args
  • Add vertical lines to package manager info for visual continuity

docs: Move bundle size badge to comments, clean up whitespace

fix: Generate correct Homebrew formula class names


Installation

Homebrew (macOS/Linux)

brew install tolgamorf/tap/env2op-cli

Package Managers (macOS/Linux/Windows)

# Using bun
bun add -g @tolgamorf/env2op-cli

# Using npm
npm install -g @tolgamorf/env2op-cli

# Using pnpm
pnpm add -g @tolgamorf/env2op-cli

v0.2.3

08 Jan 13:37

Choose a tag to compare

What's New

style: Improve LICENSE formatting and fix badge link

  • Reformat LICENSE for better readability
  • Fix GitHub License badge link to use absolute URL

fix: Add quotes around vault placeholder in env header

refactor: Apply DRY principles across codebase

  • Extract shared argument parsing to src/utils/args.ts
  • Create 1Password auth helper in src/core/auth.ts
  • Add shared constants in src/core/constants.ts
  • Create error handler utility in src/utils/error-handler.ts
  • Add confirmation prompt helper in src/utils/prompts.ts
  • Refactor shell.ts with collectOutput helper
  • Add error factories: opSigninFailed, templateNotFound, injectFailed
  • Add maybeShowUpdateNotification helper in update.ts
  • Update README badges

chore: Update CI trigger and refresh README badges

  • CI now triggers on push to main (enables CI badge)
  • New title with emoji and bidirectional arrow
  • Add tagline with 1Password link
  • Add Release Date badge, reorder badges
  • Remove redundant Publish badge

refactor: Consolidate version reads using getCliVersion()

  • Apply DRY principle by using getCliVersion() from lib/update.ts
  • instead of importing package.json in multiple files.

Installation

Homebrew (macOS/Linux)

brew install tolgamorf/tap/env2op-cli

Package Managers (macOS/Linux/Windows)

# Using bun
bun add -g @tolgamorf/env2op-cli

# Using npm
npm install -g @tolgamorf/env2op-cli

# Using pnpm
pnpm add -g @tolgamorf/env2op-cli

v0.2.2

08 Jan 07:55

Choose a tag to compare

What's New

docs: Update installation instructions consistency

  • Change "All Operating Systems" to "macOS/Linux/Windows"
  • Update release notes to include all package managers (bun, npm, pnpm)

feat: Add auto-update mechanism with --update option

  • Add automatic update checking and installation support:
  • New --update option to check for and install updates
  • Periodic update check after command execution (24-hour cache)
  • Package manager detection (Homebrew, npm, bun, pnpm)
  • Non-blocking update notifications when new version available

Installation

Homebrew (macOS/Linux)

brew install tolgamorf/tap/env2op-cli

Package Managers (macOS/Linux/Windows)

# Using bun
bun add -g @tolgamorf/env2op-cli

# Using npm
npm install -g @tolgamorf/env2op-cli

# Using pnpm
pnpm add -g @tolgamorf/env2op-cli

v0.2.1

07 Jan 22:54

Choose a tag to compare

What's New

refactor: Address code review issues

  • Add ITEM_EDIT_FAILED error code for edit operations
  • Capture error messages in shell exec error handlers
  • Fix signal termination to return exit code 1 (not 0)
  • Add BOM (Byte Order Mark) handling for Windows files
  • Extract withMinTime to shared utils/timing.ts
  • Remove unused execJson function
  • Use array-based string building for stdout/stderr
  • Make parseEnvFile async using fs/promises
  • Fix inconsistent error handling in convert.ts
  • Add Buffer.isBuffer() check in event handlers

fix: Wait for npm publish workflow before updating Homebrew tap

  • Release script now waits for publish workflow to complete
  • Remove duplicate GitHub release creation from publish.yml
  • Add standalone script for manual Homebrew tap updates

Installation

Homebrew (macOS/Linux)

brew install tolgamorf/tap/env2op-cli

npm / bun

bun add -g @tolgamorf/env2op-cli
# or
npm install -g @tolgamorf/env2op-cli

v0.2.0

07 Jan 22:02

Choose a tag to compare

What's New

chore: Add .test to gitignore

feat: Migrate op CLI to JSON piping for cross-platform support

  • Replace field argument syntax (KEY[type]=value) with JSON stdin piping
  • Add execWithStdin() for async command execution with stdin content
  • Change itemExists() to return item ID instead of boolean
  • Add EditItemOptions interface with itemId for reliable item lookup
  • Remove hasFieldArgs special case and spawnSync dependency
  • Benefits:
  • Async execution allows spinners to animate during op CLI operations
  • Cross-platform: no bash dependency, works on Windows
  • Full stdout/stderr capture with structured JSON responses
  • Simpler code: automatic field deletion via JSON replacement
  • UX improvements:
  • Add spinner for "Pushing environment variables" step
  • Show variable count in op2env output
  • Remove empty line from usage instructions box

feat: Improve 1Password authentication flow

  • Use op whoami instead of op account get for faster sign-in check
  • Auto sign-in with op signin when not authenticated
  • Show spinner during sign-in with system auth dialog
  • Export signIn function for programmatic use

feat: Add spinner feedback to op2env command

  • Add incremental spinner feedback to match env2op patterns:
  • Add authSpinner for 1Password CLI validation
  • Add withMinTime helper for minimum spinner display time
  • Wrap inject operation with withMinTime

fix: Release notes now preserve bullet points on separate lines

style: Fix lint errors

feat: Delete removed fields when editing 1Password item

  • When editing an existing item, fields that exist in the item but are
  • no longer in the .env file are now deleted. This ensures the 1Password
  • item stays in sync with the .env file.

feat: Improve CLI feedback with spinners and cleaner messages

  • Add spinners for vault/item checks that animate during async operations
  • Combine parsed file and variable count into single line
  • Add 1Password CLI validation step with spinner
  • Use async spawn for non-field-arg commands to allow spinner animation
  • Use op vault list instead of op vault get to avoid error messages
  • Add minimum display time for spinners
  • Update dry run messages to match new flow

fix: Resolve op CLI hanging and terminal corruption issues

  • Use two-step approach for create/edit: run command with stdio inherit,
  • then fetch item info with separate op item get
  • Commands with field args (KEY[type]=value) must use stdio inherit
  • to avoid op CLI hanging or corrupting terminal
  • Other commands use temp file redirect to capture stdout silently
  • Properly quote args containing special characters for shell execution

fix: Suppress op CLI output in non-verbose mode

  • Detect commands with field arguments (KEY[type]=value) and only use
  • stdio inherit for those (which cannot be redirected without hanging).
  • All other commands redirect stdout to temp file and only display in
  • verbose mode.

feat: Add --verbose flag to show op CLI commands and output

  • Add --verbose flag to both env2op and op2env CLIs
  • Show all op commands being executed in verbose mode
  • Use spawnSync with stdio inherit for reliable op CLI interaction
  • Separate create/edit from JSON output capture to avoid hanging
  • Use op item list for checking item existence
  • Add explicit return types to error factory functions
  • Update tests and snapshots

build: Replace tsup with bunup for faster builds

  • bunup uses Bun's native bundler with zero overhead, providing ~9x faster
  • build times while maintaining tsup-like zero-config DX.
  • Build time: ~3-5s (tsup) → ~15ms (bunup)
  • Same Node.js compatibility (target: "node")
  • Same output structure (single ESM file with shebang)
  • Removed tsup.config.ts, added bunup.config.ts

fix: Release notes now join wrapped lines correctly

  • Split commit bodies on paragraph breaks instead of newlines, then join wrapped lines within each paragraph before adding bullet prefix.

Increase npm package availability retry timeout


Installation

Homebrew (macOS/Linux)

brew install tolgamorf/tap/env2op-cli

npm / bun

bun add -g @tolgamorf/env2op-cli
# or
npm install -g @tolgamorf/env2op-cli

Full Changelog: v0.1.5...v0.2.0

v0.1.5

05 Jan 20:08

Choose a tag to compare

What's New

Fix gitignore for homebrew-tap symlink

Add Node.js support via tsup build step

  • Users no longer need Bun installed to run the CLI. The package now bundles to single ESM files with a Node.js shebang, requiring only Node.js 18+.
  • Replace Bun's shell API ($) with Node.js child_process
  • Add tsup config for bundling both CLI entry points
  • Update package.json to point to dist/ output
  • Add build step to publish workflow

Add retry logic for npm package availability check


Installation

Homebrew (macOS/Linux)

brew install tolgamorf/tap/env2op-cli

npm / bun

bun add -g @tolgamorf/env2op-cli
# or
npm install -g @tolgamorf/env2op-cli

Full Changelog: v0.1.4...v0.1.5

v0.1.4

30 Dec 12:00

Choose a tag to compare

What's New

Add Homebrew to release notes installation section

Add confirmation and flexible versioning to release script

  • Show release summary before confirming (version, changes, notes)
  • Add confirmation prompt before proceeding
  • Support version bump types: patch, minor, major
  • Support exact version: bun run release 0.2.0

Add timestamps to .env and .env.tpl headers

  • Show "Pushed: " in .env.tpl headers
  • Show "Pulled: " in .env headers
  • Use UTC format for consistency across timezones
  • Mock system time in snapshot tests for deterministic output

Update README and gitignore

  • Improve Homebrew installation instructions with two-step option
  • Add homebrew-tap to gitignore (separate repo)
  • Minor README formatting improvements

Extend release script to update Homebrew tap automatically

  • Add generateFormula helper to create formula content
  • Add fetchSha256 helper to compute hash from npm tarball
  • Add updateHomebrewTap helper to write and push formulae
  • Create versioned formula (env2op-cli@x.y.z.rb) alongside main formula
  • Use underscores in versioned class names to avoid collisions
  • Fix double-bullet issue in release notes
  • Add "What's New" header to release notes

Include Linux in Homebrew installation section

Add Homebrew installation instructions to README


Installation

Homebrew (macOS/Linux)

brew install tolgamorf/tap/env2op-cli

npm / bun

bun add -g @tolgamorf/env2op-cli
# or
npm install -g @tolgamorf/env2op-cli

Full Changelog: v0.1.3...v0.1.4

v0.1.3

28 Dec 22:18

Choose a tag to compare

What's New

Update demo to use op2env command and --force flag

Improve release script with detailed GitHub release notes

  • Show commit summary in terminal before releasing
  • Generate detailed release notes from commit messages with body text
  • Add installation instructions section to release notes
  • Use gh release create instead of manual git tag

Add informative headers to generated .env and .env.tpl files

  • Add distinct headers for template files (.env.tpl) and env files (.env)
  • Headers include usage instructions with derived filenames
  • Strip existing headers when parsing to prevent header multiplication
  • Improve error handling in op2env to show actual op CLI errors
  • Update tests and snapshots for new header format

Add comprehensive test suite

  • Set up Bun test runner with preload and coverage config
  • Add test fixtures for .env file parsing scenarios
  • Add mock factories for filesystem, prompts, and 1Password CLI
  • Add unit tests for env-parser (25 tests, 93.75% coverage)
  • Add unit tests for template-generator (12 tests, 96.88% coverage)
  • Add unit tests for errors module (14 tests, 100% coverage)
  • Add integration tests for onepassword module
  • Add snapshot tests for CLI output
  • Add test:watch and test:coverage npm scripts

Add op2env command and improve CLI flags

  • Add op2env command to pull secrets from 1Password using templates
  • Change -y/--yes flag to -f/--force for both CLIs
  • Add -o/--output flag for custom output paths
  • Update template headers to show op2env usage
  • Update README with documentation for both commands

Update README to show UUID-based references

Add demo GIF to README


Installation

# Install globally
bun install -g env2op

# Or run directly with bunx
bunx env2op .env <vault> "<item_name>"
bunx op2env .env.tpl

Full Changelog: v0.1.2...v0.1.3

v0.1.2

25 Dec 22:43

Choose a tag to compare

Full Changelog: v0.1.1...v0.1.2