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 🙏

© 2026 – Pkg Stats / Ryan Hefner

omnispace

v0.17.1

Published

Omni CLI (alpha): transforma uma pasta da sua máquina em um espaço Omni e sincroniza entre máquinas.

Readme

omnispace (alpha)

CLI do Omni: transforma uma pasta da sua máquina em um espaço Omni e sincroniza esse espaço entre máquinas.

Alpha. Existem login, logout, whoami, init, status, sync --push, sync --pull, clone, vincular e desvincular.

Precisa do Node 20 ou mais novo.

Uso

Já tem conta no Omni? Entre pelo navegador (a CLI mostra um link e um código; a senha nunca passa pelo terminal):

npx -y omnispace@latest login

A sessão vale 14 dias sem uso, e cada uso renova. whoami mostra a conta e até quando a sessão vale; logout encerra a sessão e apaga o token desta máquina.

Com a CLI logada, dentro da pasta, o init cria o espaço direto na sua conta (só pergunta o nome, que por padrão é o da pasta) e já oferece o primeiro envio:

npx -y omnispace@latest init .

Primeira vez no Omni? Comece pelo site: ele mostra o código de vínculo. Depois, dentro da pasta do espaço:

npx -y omnispace@latest init . --link <código>

Só ler a pasta, sem vincular nem enviar nada:

npx -y omnispace@latest init . --scan-only

Ver o que mudou nesta pasta e no servidor, e qual o próximo comando (só lê, não altera nada):

npx -y omnispace@latest status

Em uma linha só (feito para o hook de início do Claude Code; sai sempre com 0):

npx -y omnispace@latest status --resumo

Publicar uma nova versão do espaço no servidor:

npx -y omnispace@latest sync . --push

Trazer para a pasta a versão mais nova do servidor:

npx -y omnispace@latest sync . --pull

Se o mesmo arquivo mudou aqui e na outra máquina, o Omni junta sozinho quando as mudanças estão em trechos diferentes. Quando o mesmo trecho mudou dos dois lados, ele pergunta, arquivo por arquivo:

  • manter local: fica a versão desta máquina, que sobe no próximo envio;
  • mesclar: o arquivo é gravado com as duas versões entre marcadores <<<<<<< e >>>>>>> para você editar; o envio fica bloqueado até os marcadores sumirem;
  • backup: entra a versão do servidor e a desta máquina fica guardada em .omni/backups/.

Fora de um terminal interativo, escolha para todos com --conflito=local, --conflito=mesclar ou --conflito=backup.

Baixar um espaço da sua conta em outra máquina (o código aparece no site, em "Baixar em outra máquina"; a pasta é criada):

npx -y omnispace@latest clone <código> "nome-da-pasta"

Ligar uma pasta que já tem os arquivos a um espaço da sua conta (criado no site, ou para voltar depois de desvincular). Arquivos iguais ficam, os diferentes perguntam o que fazer:

npx -y omnispace@latest vincular

Tirar esta máquina da conta e o .omni/ das pastas dela (pede duas confirmações; seus arquivos ficam, e cópias de conflito vão para omni-backups-<data>/):

npx -y omnispace@latest desvincular

Ver e mudar o que o agente pode fazer sozinho com cada ação dos conectores do espaço. Por padrão, leitura é automática, escrita pede confirmação e ação destrutiva fica bloqueada. Restringir vale na hora; liberar pede confirmação no navegador:

npx -y omnispace@latest permissoes
npx -y omnispace@latest permissoes set slack send_message bloqueado

Perguntar sobre o espaço. A resposta usa a versão publicada, com as fontes (arquivo e versão) e os limites da consulta:

npx -y omnispace@latest ask "Qual foi a última decisão deste projeto?"

Com conectores ligados no espaço, o agente também consulta os conectores: leitura automática roda na hora e aparece como [C1], com o horário da consulta. Uma ação que pede confirmação (como criar uma task ou mandar uma mensagem) não roda sozinha: a CLI mostra o pedido inteiro e pergunta Executar? [s/n]. Só s executa, uma vez; o pedido vale 10 minutos. Sem terminal, nada é executado.

No Windows, se o caminho tiver espaço ou apóstrofo, entre na pasta com aspas duplas: cd "C:\caminho\da\pasta".

O que o Omni lê e envia

  • A pasta é lida para montar a lista de arquivos. Sobem só arquivos de texto (Markdown, código, JSON e afins), até 25 MB por arquivo e 100 MB por espaço. Nome de arquivo que o Windows não aceita (como CON, a:b.md ou terminado em ponto) fica de fora, para o espaço abrir em qualquer sistema.
  • Nunca sobem: .env e variações, chaves (.pem, .key, id_rsa), pastas .git, node_modules e de build, imagens e mídia, e o .claude/settings.local.json do Claude Code (configuração de cada máquina; o .claude/settings.json sincroniza) e o .claude/worktrees/ (cópias do repositório das sessões paralelas do Claude Code).
  • Arquivos .env são lidos só para listar os nomes das chaves; nenhum valor é guardado ou enviado. A exceção é omnispace env push (abaixo), quando você escolhe chave por chave.
  • Antes de enviar, a CLI mostra o que sobe e o que fica de fora e pede confirmação.
  • Na pasta, o Omni grava só .omni/space.json (e, só enquanto um sync roda, .omni/lock, .omni/tmp/ e .omni/pull-pending.json, apagados no fim; .omni/backups/ e .omni/conflicts.json quando há conflito). Se um sync for interrompido, rodar o mesmo comando de novo continua de onde parou. Nada disso sincroniza. O token de acesso fica em ~/.omni/credentials.json, fora de qualquer projeto, legível só pelo seu usuário.
  • A CLI só fala com o servidor por HTTPS (http só vale para um servidor na própria máquina, em desenvolvimento).

Credenciais do .env no cofre do espaço

npx -y omnispace@latest env push

Com a CLI logada, dentro da pasta do espaço: a CLI lê os arquivos .env da raiz (menos .env.example, .env.sample e .env.template) e pergunta chave por chave se ela vai para o cofre do espaço. Mostra o nome, o arquivo e no máximo os 4 últimos caracteres do valor. Antes de enviar, pede que você confirme no navegador, logado na sua conta, digitando o código do terminal. O valor vai cifrado para o cofre (Vault) e não aparece em tela, log nem resposta. Sem terminal, nada é enviado.

  • Chaves que formam um conector já ligam o conector do espaço, depois de um teste de conexão: Supabase com <PREFIXO>_URL e <PREFIXO>_SERVICE_ROLE_KEY (ou _SERVICE_KEY), como SUPABASE_URL ou SUPABASE_TOOLS_URL; ClickUp com o token (CLICKUP_API_KEY ou CLICKUP_<NOME>_TOKEN) e o CLICKUP_TEAM_ID. Se houver mais de um projeto para o mesmo conector, a CLI pergunta qual liga.
  • env list mostra as chaves guardadas (só nomes).
  • env rm <CHAVE> [--arquivo .env.local] apaga do cofre de vez, também com confirmação no navegador. Se um conector usava a chave, ele fica desligado.