A fast tool for managing reproducible, deterministic development environments.
Starlark is used as a configuration language; tau generates shell activation
scripts that a lightweight hook sources on cd. It also installs tools and
packages (via mise, pip, uv, and npm), pinned in a committed lockfile.
go install github.com/edganiukov/taugres/cmd/tau@latestRequires mise for tools/packages: install it with
curl https://mise.run | sh. Only the mise binary on PATH is needed — tau
reads mise's store directly, so mise's own shell activation is not required and
won't conflict with tau's hook. (A config with no tools/packages works without
mise.)
Install the shell hook once:
tau setup # adds the hook to your shell's startup file
# ...or by hand: eval "$(tau hook zsh)" >> ~/.zshrc (or bash, or `tau hook fish | source`)Then, in a project:
tau init # writes workspace.tg
$EDITOR workspace.tg
tau allow # trust this project once
tau sync # install tools + generate scripts under .taugres/gen/Now cd into the directory (or open a new shell): the hook activates the
environment and restores it when you leave. Example config:
project("my-app")
shell.env("DATABASE_URL", "postgres://localhost/app")
shell.alias("ll", "ls -lah")
mise.tool(["[email protected]", "ripgrep"])
uv.install(["ruff", "rich"])