func-e Overview

July 1, 2026 · View on GitHub

To run Envoy, execute func-e run -c your_envoy_config.yaml. This downloads and installs the latest version of Envoy for you.

To list versions of Envoy you can use, execute func-e versions -a. To choose one, invoke func-e use 1.38.3. This installs into $FUNC_E_DATA_HOME/envoy-versions/1.38.3, if not already present. You may also use minor version, such as func-e use 1.38.

$ENVOY_PATH runs a custom Envoy binary, skipping version resolution and download. This is useful for validating pre-release or feature branch builds.

You may want to override $ENVOY_VERSIONS_URL to supply custom builds or otherwise control the source of Envoy binaries. When overriding, validate your JSON first: https://archive.tetratelabs.io/release-versions-schema.json

Directory structure: $FUNC_E_CONFIG_HOME stores configuration files (default: HOME/.config/funce){HOME}/.config/func-e) `FUNC_E_DATA_HOMEstores Envoy binaries (default: ${HOME}/.local/share/func-e) FUNC_E_STATE_HOME` stores logs (default: {HOME}/.local/state/func-e) $FUNC_E_RUNTIME_DIR stores temporary files (default: /tmp/func-e-${UID})

Advanced: FUNC_E_PLATFORM overrides the host OS and architecture of Envoy binaries. This is used when emulating another platform, e.g. x86 on Apple Silicon M1. Note: Changing the OS value can cause problems as Envoy has dependencies, such as glibc. This value must be constant within a $FUNC_E_DATA_HOME.

Commands

NameUsage
helpShows how to use a [command]
runRun Envoy with the given [arguments...] until interrupted
versionsList Envoy versions
useSets the current [version] used by the "run" command
whichPrints the path to the Envoy binary used by the "run" command
--version, -vPrint the version of func-e

Environment Variables

NameUsageDefault
FUNC_E_HOMEfunc-e home directory
FUNC_E_CONFIG_HOMEdirectory for configuration files${HOME}/.config/func-e
FUNC_E_DATA_HOMEdirectory for Envoy binaries${HOME}/.local/share/func-e
FUNC_E_STATE_HOMEdirectory for logs (used by run command)${HOME}/.local/state/func-e
FUNC_E_RUNTIME_DIRdirectory for temporary files (used by run command)/tmp/func-e-${UID}
FUNC_E_RUN_IDcustom run identifier for logs/runtime directories (used by run command)auto-generated timestamp
ENVOY_VERSIONS_URLURL of Envoy versions JSONhttps://archive.tetratelabs.io/envoy/envoy-versions.json
ENVOY_PATHpath to a custom Envoy binary, bypassing download
FUNC_E_PLATFORMthe host OS and architecture of Envoy binaries. Ex. darwin/arm64GOOS/GOOS/GOARCH