Automic VaultAutomic Vault

brew

Install yaegi with Homebrew, apk, MacPorts, Nix, pacman, apt

Yet another elegant Go interpreter. Version 0.16.1 via Homebrew; verified from local package data.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install yaegi

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install yaegi

MacPorts ports tree · devel/yaegi/Portfile · source: api.github.com

Linux

Alpine Linux apkverified · 92%
sudo apk add yaegi

Alpine Linux edge package indexes · yaegi · source: dl-cdn.alpinelinux.org

Nixverified · 92%
nix profile install nixpkgs#yaegi

nixpkgs package indexes · pkgs/by-name/ya/yaegi/package.nix · source: api.github.com

Arch Linux pacmanverified · 92%
sudo pacman -S yaegi

Arch Linux sync databases · yaegi · source: geo.mirror.pkgbuild.com

Ubuntu aptverified · 92%
sudo apt install yaegi

Ubuntu 24.04 LTS package indexes · yaegi · source: archive.ubuntu.com

overview

Package summary

Yet another elegant Go interpreter

Commands and aliases

  • yaegi

history

Project history and usage

Yaegi is Traefik Labs' pure-Go interpreter for Go programs. It provides a command-line REPL and script runner, but its deeper package significance is embeddability: Go applications can evaluate Go code at runtime for plugins, scripting, and prototyping without switching to Lua, Python, JavaScript, or a separate DSL.

Project history

Yaegi was announced in July 2019 by Marc Vertes and the Containous/Traefik team as "Yet Another Go Interpreter", with the E jokingly standing for Elegant, Embedded, Easy, or whatever the reader preferred. The announcement framed it as a way to bring executable Go scripts, embedded plugins, interactive shells, and instant prototyping on top of the Go runtime.

The project's motivation was specific to Go's unusual position: a static, strongly typed compiled language whose parser, type machinery, and reflection facilities are available to Go programs. Yaegi turned that into an interpreter API built around New, Eval, and Use.

The README emphasizes pure Go implementation, standard-library-only design, complete Go specification support, and a safety posture where unsafe and syscall are not exported by default. That made it attractive for embedding in Go applications that need extension points without handing scripts unrestricted process access.

Adoption history

Yaegi adoption followed two tracks. The visible developer-tool track is the yaegi command, which gives Go users a REPL, executable scripts, and a go-run-like workflow. The infrastructure track is embedding, especially for plugin systems and dynamic extension in Go applications.

Traefik's own ecosystem gave Yaegi a practical showcase: a Go interpreter made by the team behind a cloud-native edge router is naturally suited to runtime extension and plugin workflows. Talks and docs around Yaegi repeatedly mention Traefik Enterprise/plugin motivation alongside the broader goal of filling a missing piece in the Go ecosystem.

Package-manager adoption is modest but broad enough to matter: Yaegi appears in Homebrew, MacPorts, Alpine, Arch, Nix, Ubuntu, and Go package documentation, which makes a Go REPL/installable interpreter available without every user building from source.

How it is used

CLI users run yaegi with no arguments for a REPL, run Go files as interpreted scripts, or use shebang-style executable Go scripts. The README even suggests rlwrap for line editing/history when using the command interactively.

Go developers embed Yaegi by importing the interp package, creating an interpreter, loading stdlib symbols with Use, and evaluating code with Eval. Common scenarios include user-provided automation, policy or routing extensions, prototyping, tests, dynamic plugins, and applications that want Go as their extension language.

Why package nerds care

Yaegi is package-nerd interesting because it makes Go behave like a scripting language while staying inside the Go toolchain and module ecosystem. Installing yaegi gives a REPL and script runner; depending on the module gives applications a runtime extension engine.

It also occupies a rare niche: most language interpreters package a language runtime, but Yaegi packages an interpreter for a language famous for avoiding runtime dynamism. That tension is exactly why it shows up in package indexes despite being smaller than mainstream language runtimes.

Timeline

  • 2019-07-27: Traefik/Containous announces Yaegi as an open-source Go interpreter for scripts, embedded plugins, REPL use, and prototyping.
  • 2019: Conference talks present Yaegi as a production-oriented Go interpreter and plugin engine for Traefik-related use cases.
  • 2020-09-16: Yaegi v0.9.0 release assets appear on GitHub, showing the project moving into packaged binary distribution.
  • 2020s: The README documents the stable public API shape around interp.New, Eval, and Use, and the yaegi command becomes packaged across multiple Unix package managers.

Related projects

  • Go is the compiled language and standard library that Yaegi interprets and reuses.
  • Traefik and Traefik Enterprise are related through the team and plugin/extension motivation behind Yaegi.
  • Lua, Python, JavaScript, Starlark, Tengo, and Go plugins are neighboring choices for embedding scriptability or runtime extension in Go applications.
  • rlwrap is commonly paired with the yaegi command for interactive history and line editing.

security posture

Risk level: yellow

generalized runtime or code generation signal.

Risk classifier

yellow risk · medium confidence · runtime

Why

  • generalized runtime or code generation signal

Signals

  • text:interpreter

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 8 platform targets.
  • Build metadata lists 1 build dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
yaegicliglobal executable

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-07-08
manager version0.16.1
manager updated
local dataok
upstreamcurrent
latest detectedv0.16.1

https://github.com/traefik/yaegi

  • infoNo package-manager update timestamp was available.low confidence

install metadata

Package metadata

Package keybrew:yaegi
Version0.16.1
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/yaegi
Homepagehttps://github.com/traefik/yaegi
Repositoryhttps://github.com/traefik/yaegi
Upstream docshttps://github.com/traefik/yaegi#readme
LicenseApache-2.0
Source archivehttps://github.com/traefik/yaegi/archive/refs/tags/v0.16.1.tar.gz
Build dependenciesgo
Bottleavailable (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, sonoma, ventura, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Nameyaegi
Version Scheme0
Revision0
Head VersionHEAD
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • head
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Nix95%

yaegi

nix profile install nixpkgs#yaegi
  • normalized package name match
  • Matched by: Yaegi
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/ya/yaegi/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
Ubuntu apt95%

yaegi 0.15.1-2

Another Elegant Go Interpreter

https://github.com/traefik/yaegi

sudo apt install yaegi
  • Section: universe/golang
  • Architecture: amd64
  • Source Package: golang-github-traefik-yaegi
  • 1 dependencies
  • normalized package name match
  • Matched by: Yaegi
Ubuntu 24.04 LTS package indexes · archive.ubuntu.com · Ubuntu 24.04 LTS package indexes: yaegi from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz
apk95%

yaegi 0.16.1-r18

Elegant Go interpreter

https://github.com/traefik/yaegi

sudo apk add yaegi
  • License: Apache-2.0
  • Architecture: x86_64
  • Source Package: yaegi
  • 1 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Yaegi
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: yaegi from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
pacman95%

yaegi 0.16.1-2

Yet another Elegant Go Interpreter

https://github.com/containous/yaegi

sudo pacman -S yaegi
  • License: Apache
  • Architecture: x86_64
  • 1 dependencies
  • normalized package name match
  • Matched by: Yaegi
Arch Linux sync databases · geo.mirror.pkgbuild.com · Arch Linux sync databases: yaegi from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz
MacPorts95%

yaegi

sudo port install yaegi
  • normalized package name match
  • Matched by: Yaegi
MacPorts ports tree · api.github.com · MacPorts ports tree: devel/yaegi/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • av.db category and tag curation
  • cross-ecosystem install command graph
  • curated package history
  • external package-manager database matches
  • package relationship graph
  • package version freshness
  • package-page enrichment