attilaolah/taugres

A fast tool to manage dev envs.

★ 0Forks 0GitHub ↗Compare

README

tau (Taugres)

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.

Install

go install github.com/edganiukov/taugres/cmd/tau@latest

Requires 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.)

Quick start

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"])

Docs

  • Manual — the full guide and reference: the shell hook & auto-sync, trust, config files & discovery, the Starlark API, tools/packages (mise/pip/uv/npm + mise backends), the lockfile, built-in variables, commands, and performance.
  • Design — architecture and rationale.

Contributors

edganiukov

Issues