npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

pegno

v2.6.0

Published

Gerenciador de workspace global de dependências para Bun — by Suissa 🧠

Downloads

687

Readme

“Um workspace global inteligente pra Bun, feito por quem cansou de esperar o Bun terminar o Bun.”


🌍 Idiomas / Languages

🇧🇷 Português | 🇺🇸 English | 🇪🇸 Español | 🇩🇪 Deutsch | 🇫🇷 Français | 🇳🇱 Nederlands | 🇯🇵 日本語 | 🇨🇳 中文 | 🇮🇳 हिंदी | 🇷🇺 Русский | 🇵🇱 Polski | 🇮🇹 Italiano | 🇰🇷 한국어 | 🇸🇦 العربية | 🇹🇷 Türkçe | 🇸🇪 Svenska | 🇻🇳 Tiếng Việt | 🇹🇭 ไทย | 🇮🇱 עברית | 🇮🇩 Bahasa Indonesia


Pegno é um gerenciador de dependências com cache global, auto-link, mini-workspaces e modo de sincronização instantânea, feito 100% em Bun + TypeScript.

A ideia nasceu porque o Bun prometeu “velocidade e simplicidade”, mas, na prática, ainda falta uma camada essencial:
reutilização real de dependências entre projetos.

Cada projeto reinstala as mesmas libs. Cada build baixa de novo. Cada dev perde tempo.

O Pegno resolve isso criando um workspace global no seu sistema, onde as dependências são instaladas uma única vez e reaproveitadas por symlinks (ou cópias, se preferir).


🫠🤌🏻💗 Motivação: por que criei isso pro Bun?

Bun é rápido.
Mas rápido sozinho não é suficiente.

O npm e o pnpm já entenderam que o futuro é cache compartilhado e atomicidade de pacotes, mas o Bun ainda depende de lockfiles e reinstalação redundante.

A filosofia do Pegno é simples:

O código é efêmero, o cache é eterno.

Quando você instala axios@latest num projeto, por que baixar de novo em outro?
O Pegno cria um repositório global (~/.pegno_workspace/js) e linka os pacotes direto nos projetos, como um cérebro de dependências.

Além disso, ele adiciona algo que nenhum outro gerenciador oferece:

📦 Mini-workspaces (os “presets”)

Você pode salvar conjuntos de dependências e aplicá-los em qualquer projeto:

pegno axios fastify zod
# Pergunta se quer salvar como preset → digite "api"

pegno use api
# instala tudo de novo instantaneamente

⚡️ Principais recursos

| Recurso | Descrição | | ------------------------------------------- | ---------------------------------------------------------------- | | 💾 Cache Global Inteligente | Cada pacote é instalado uma única vez no sistema. | | 🪄 Symlinks automáticos | Sem duplicação de node_modules, tudo aponta pro cache global. | | 📚 Modo de cópia (--copy) | Se quiser as dependências na node_modules também. | | 📦 Mini-Workspaces | Crie conjuntos de dependências nomeados e reaplique em segundos. | | 🧩 Compatível com qualquer projeto Bun | Usa apenas APIs nativas (fs, os, path, child_process). | | 🛠️ --dev mode | Adiciona pacotes direto em devDependencies. | | 🔁 sync mode | Copia todo o workspace global para node_modules local. | | 🎨 Logs coloridos (kleur) | Níveis, ícones e tempos de instalação para depuração rápida. | | 🤗 Sem dependências externas de runtime | Apenas kleur e Bun. 💯🚀🎯 |


🚀 Instalação

bun add -g pegno

npm i -g pegno

# ou executando diretamente
npx pegno

Verifique:

pegno --help

⚠️ Windows: Se o comando não for reconhecido, adicione o diretório global do Bun ao PATH:

# Adicionar permanentemente ao PATH (PowerShell como Admin)
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";$env:USERPROFILE\.bun\bin", "User")

Saída esperada:

pegno CLI 1.3.0

Uso:
  pegno axios@latest   → Instala pacote direto
  pegno use api        → Usa miniworkspace salvo
  pegno list           → Lista miniworkspaces
  pegno --dev          → Instala como devDependency
  pegno --copy         → Copia em vez de linkar
  pegno sync           → Copia todo workspace global
  pegno --verbose      → Logs detalhados

💡 Exemplo de uso

# Instala axios globalmente e linka no projeto atual
pegno axios

# Instala múltiplos pacotes
pegno fastify zod openai

# Adiciona pacotes de desenvolvimento
pegno --dev vitest typescript

# Cria e salva um mini-workspace
pegno use api

🪟 Usuários Windows

No Windows, recomenda-se usar o modo --copy devido às restrições de permissão para criação de symlinks:

# Windows: use --copy para evitar erros de permissão
pegno --copy axios fastify zod

# Modo dev no Windows
pegno --dev --copy vitest typescript

Por que usar --copy no Windows?
O Windows requer privilégios administrativos especiais para criar symlinks. O modo --copy copia fisicamente os pacotes para node_modules, garantindo compatibilidade total sem necessidade de executar como administrador.


📁 Estrutura interna

O Pegno cria automaticamente:

~/.pegno/
├── js/
│   ├── axios__latest/
│   ├── fastify__5.0.0/
│   └── zod__3.23.0/
└── presets/
    ├── api.json
    ├── web.json
    └── utils.json

Cada pacote é um diretório completo (cache físico e reutilizável). Os presets são descrições JSON com listas de dependências.


🧠 Filosofia de design

O projeto segue três princípios:

  1. Zero redundância, Nada é instalado duas vezes.
  2. Link inteligente, Cada node_modules é uma janela pro workspace global.
  3. Simplicidade brutalista, Tudo em TypeScript, sem mágica oculta.

🔮 Roadmap

  • [ ] Hash-based registry (checksum do pacote + versão)
  • [ ] UI CLI interativa (pegno ui)

💬 Por que “Pegno”?

Porque toda ferramenta precisa de uma boa provocação.
A ideia é que ele “pega no teu módulo”, mas de forma inteligente,
fazendo o link global do que deveria ser global desde o começo.

O nome é uma homenagem irônica à cultura hacker brasileira:
provocadora, bem-humorada e funcional.


🧑‍💻 Autor

SuissAI
Desenvolvedor sênior apaixonado por arquiteturas distribuídas, resilientes e IA.
Criador do ecossistema Full Agentic Stack, Atomic Behavior Types, e agora… Pegno.


📄 Licença

MIT © Suissa, livre pra usar, remixar e aprimorar.
Mas se quebrar, foi o Bun.