top of page

Independent Blockchains

Introducing tea - the revolutionary, cross-platform package manager. Say goodbye to slow & clunky, and say hello to fast & smooth. From the creator of Brew.

Introduction

Introducing tea - the revolutionary, cross-platform package manager. Say goodbye to slow & clunky, and say hello to fast & smooth. From the creator of Brew.


With tea, simply type commands and it takes care of the rest. Get the latest versions of open source tools and support specific tool versions for different projects. Experience better package management with tea.


Developer Environments

Simplify your development environment setup with tea by automatically fetching the specific versions of tools your project needs. With a range of specifications, tea provides a seamless solution to manage project dependencies. Debug changes, supplement your environment, and see the full environment with ease.



Every project you work on needs different tools with different versions. Installing those tools globally makes no sense and could even cause subtle bugs during dev.


tea can determine the tools a project directory needs based on the files it finds. With their shell magic just step into the project directory and type commands; tea automatically fetches the specific versions those projects need and runs them.


They try to be as clever as possible, eg. they parse the node version out of a GitHub Action’s action.yml. If they see a .node-version file, they add that version of node to the environment.


Where there isn’t a convention for specifying tool versions, you can add YAML front matter to its configuration file. For example, if they’re talking a python poetry project, then you can specify your python version by adding YAML front matter to its pyproject.toml:



If your poetry project needs other non pypa dependencies (like a c compiler) then you can add them there too (eg. llvm.org, their deps are always named after project homepages because then you just google it and there’s no ambiguity).


Magic

Their magic puts the entire open source ecosystem at your fingertips. Their installer enables by adding some hooks to your shell:

  • A hook when changing directory that sets up project environments

  • Environments are just shell environment variables

  • A hook for the “command not found” scenario that installs that command before running it

Their magic means that tea packages are not generally accessible from the rest of the system.



All packages are installed, segregated and encapsulated in ~/.tea for other parts of your system to access them you may have to make them accessible using tea +pkg syntax.


Symlink Magic

Symlinks to tea are resolved to that tool. Eg:


Using Magic in Shell Scripts

Their magic is not automatically added to scripts, but you can manually add it:


And of course you can also use their one-liner:


Thus you can make a script that can effortlessly use any tool from the open source ecosystem. If they have tea installed it uses their installation, if not it installs everything (including tea itself) to a temporary sandbox that’s gone when the script completes.


Installing tea

The easiest way to install tea is with their installer:The easiest way to install tea is with their installer: sh <(curl https://tea.xyz)

The script installs to ~/.tea and sets up magic (they ask politely first).

Linux users may need to install some pre-requisites. SeeLinux users may need to install some pre-requisites.


What Happens
  • Firstly they confirm you’re cool before they do anything

  • If so they install tea to ~/.tea

  • If not they exit with failure

  • They then ask if you want magic

  • If so they add one line to your ~/.shellrc

  • If not they exit successfully


It’s Not Just an Installer

If you run it again, it’ll update tea.

The tea one-liner can also be used to provide your users a temporary sandbox for your projects. They can use the power of tea to try out your project without installing tea or your project.


Requirements

Both aarch64 (arm64) and x86-64 for these platforms:

  • macOS >= 11

  • Linux glibc >=2.28

  • WSL >=2


Using tea

tea’s magic means you just type the commands you want and tea takes care of installing the tools and all their dependencies automagically.



Most package managers only offer the (almost) latest version of tools. tea not only offers the latest versions immediately it knows you need to be able to pick and choose what versions of tools you use:



Scripts

tea typically knows what you need to run a script


When the package requirements are more advanced you can inject packages into the script using tea’s +pkg syntax:


Sandboxes

An idiomatic use of tea’s underlying functionality is the ability to try out new projects in a temporary sandbox:






Tea

ØĒØąŲŠØ¯ Ų…ØšØąŲØŠ اŲ„Ų…Ø˛ŲŠØ¯ØŸ

اŲ„ØĒŲ‚ŲŠŲŠŲ…اØĒ & اŲ„ØĒŲ‚ŲŠŲŠŲ…اØĒ

Ų‚ŲŠŲ… اŲ„ØšŲ†ØĩØą

ØĒØ­Ų…ŲŠŲ„ ØĩŲˆØąØŠ
ØĨØąØŗاŲ„ Ų…ØąØ§ØŦؚ؊
bottom of page