Mema
Manage developer tools and runtimes from one place.
mema list
The practical guide
Install public packages without an account, or sign in to publish your own.
These commands target Debian 12 amd64. Run them with a user that can use sudo; omit it in a root shell.
sudo apt-get update
sudo apt-get install -y ca-certificates curl gpg less
curl -fsSL https://tpa.run/install.sh -o install-tpahub.sh
less install-tpahub.sh
Review the installer, then run it to configure the signed APT source and install tpahub.
Each repository provides a public signing key. The client installs it in a repository-scoped keyring when you run repo add.
sudo tpahub repo add https://tpa.run/REPOSITORY_ID
sudo apt update
APT uses signed-by= with the repository keyring under /etc/apt/keyrings. The current production signing fingerprint is:
EDCEE63AA803737C8ABBC1E4A34190A2829D5E54
Keep signature verification enabled and treat repository reader credentials as secrets.
After reviewing the installer, run it to install the client:
sudo bash install-tpahub.sh
List public repositories from the CLI, then add the repository you want to use:
tpahub repo list --public --server https://tpa.run
sudo tpahub repo add https://tpa.run/REPOSITORY_ID
The public repository directory also shows each repository name and ID. Use the ID for an unambiguous repository configuration; private repositories are not listed.
No publisher login is required. Add the public repository IDs shown above:
sudo tpahub repo add https://tpa.run/MEMA_REPOSITORY_ID
sudo tpahub repo add https://tpa.run/BLOOM_REPOSITORY_ID
sudo apt update
sudo apt install mema bloom
If you use the repository directory, add each repository by its ID as described above, then run the same APT commands.
Mema and Bloom are independent tools. Install either or both; Bloom does not require Mema.
You can explore public packages and tools from the ecosystem without creating a TPA Hub account. Publishing and private repository management are account features.
Manage developer tools and runtimes from one place.
mema list
Discover reusable building blocks and inspect what they provide.
bloom search "math min u32"
bloom describe math.min.u32
Need the tools first? sudo apt install mema bloom
For a small Bloom example, find the minimum of [31, 12, 91, 4, 28]. The input encodes unsigned 32-bit little-endian integers:
printf '\\037\\000\\000\\000\\014\\000\\000\\000\\133\\000\\000\\000\\004\\000\\000\\000\\034\\000\\000\\000' |
bloom run math.min.u32 --input-format u32le --output-format text
Expected output: 4. Mema and Bloom are independent tools.
Publishing requires an account with an active publishing entitlement. Account creation alone does not promise paid capacity. Check your account and plan availability.
tpahub register --server https://tpa.run
tpahub login --server https://tpa.run
tpahub repo create tools --public
tpahub publish tools ./my-package_1.0.0_amd64.deb
tpahub status JOB_ID
Replace the package path with your build output and JOB_ID with the returned job ID. Wait for
successful publication before configuring consumers.
On the consuming machine, add the repository's ID, then install:
sudo tpahub repo add https://tpa.run/REPOSITORY_ID
sudo apt update
sudo apt install my-package
The CLI saves the server selected during login. It also accepts TPAHUB_SERVER; an explicit --server takes precedence. Local development servers remain supported.
Repositories are private unless created with --public. As the publisher, create a reader token:
tpahub repo create private-tools
tpahub repo token create private-tools workstation
On the consuming machine:
sudo tpahub repo add https://tpa.run/REPOSITORY_ID
The CLI prompts for Repository password: without echoing the input. Reader credentials authorize downloads from one repository, not administration or publishing. Treat them as secrets; avoid shared shell histories. APT credentials are written to a restricted file under /etc/apt/auth.conf.d.
Storage is the sum of canonical published .deb payload sizes across an account's repositories.
Metadata, temporary workspaces, caches, and historical uploads are excluded from that measurement. Technical
staging and request limits still apply independently.
Actual delivered package and repository metadata body bytes count, including partial range responses. Website pages, uploads, API calls, HEAD and 304 responses do not count. Public and private delivery use the same accounting.
Nano aggregates egress over its anniversary-based entitlement year. Active transfers finish normally at the annual threshold; new package downloads are rate-limited. Metadata remains available and continues to count.
Account usage previews describe current usage; they are not invoices. Stripe Sandbox checkout, where enabled, is test-only. Standard, Pro, live usage-based charging, and future spend controls are planned rather than available today.