
Research
Shai-Hulud Descends to Hades: Miasma Worm Campaign Spreads with New PyPI Wave
Socket found 37 malicious PyPI wheels that abuse Python startup hooks to launch a Bun-powered credential stealer tied to Mini Shai-Hulud/Miasma.
@nomad-e/bluma-cli
Advanced tools
BluMa independent agent for automation and advanced software engineering.

BluMa é o agente de linha de comando da Nomad-e para engenharia de software: interface terminal, ferramentas nativas, sessões persistentes, memória em disco e integração com o Factor Router para modelos. Em modo sandbox, o BluMa cria e faz deploy de apps FactorAI.sh dentro de um workspace isolado.
npm install -g @nomad-e/bluma-cli
export FACTOR_ROUTER_URL=https://seu-factor-router/v1
export FACTOR_ROUTER_KEY=sua-chave
bluma # nova sessão
bluma resume # retomar (menu)
bluma resume <session_id>
Desenvolvimento local:
git clone https://github.com/Nomad-e/bluma-cli.git
cd bluma-cli
npm install
cp .env.example .env
npm run build
npm start
/ para sessão, git, memória, sandbox, inspeção e maisO BluMa fala com o Factor Router via API OpenAI-compatible. Configuração:
| Variável | Descrição |
|---|---|
FACTOR_ROUTER_URL | URL base do router (ex. https://…/v1) |
FACTOR_ROUTER_KEY | Chave de autenticação |
O router escolhe o modelo; não precisas de configurar endpoints de LLM no BluMa além destas duas variáveis.
O BluMa guarda contexto persistente em ficheiros sob ~/.bluma:
| Tipo | Onde | Para quê |
|---|---|---|
| Auto-memory | projects/<projeto>/memory/ (MEMORY.md e tópicos .md) | Preferências e factos do projeto; entra no prompt; o agente atualiza com as tools de ficheiro |
| Extração automática | Mesma pasta | Após cada turno, um subagente pode consolidar notas (BLUMA_DISABLE_EXTRACT_MEMORIES=1 desliga) |
| Session memory | <sessionId>/session-memory/summary.md | Resumo da conversa atual |
| BLUMA.md | Raiz do projeto ou ~/.bluma | Instruções e regras do projeto |
| Coding memory | Ficheiro dedicado | Notas de código via tool coding_memory |
| Agent memory | .bluma/agent-memory/ | Memória por perfil de agente (user / project / local) |
Flags úteis: BLUMA_DISABLE_AUTO_MEMORY, BLUMA_DISABLE_SESSION_MEMORY, BLUMA_HOME.
Com sandbox ativo (BLUMA_SANDBOX), o BluMa corre no workspace isolado com tools dedicadas:
apply_app_changes), estado e redeployzip no sistema)session_id mantém o seu workspace — uma app por sessão de chatfactor-sh-url-app com o URL da app publicadaO orchestrator (ex. sandbox-api) injeta SEVERINO_URL, FACTORAI_BASE_URL, chaves de API e BLUMA_SANDBOX_WORKSPACE.
Para automação ou gateway (JSON in / JSONL out):
bluma agent --input-file request.json
Eventos: log, backend_message, result (inclui URL da app quando há deploy). Scripts de teste em scripts/.
src/app/agent/tools/factorai-sh, git-commit, git-pr, git-release, pdf, xlsx, skill-creator.bluma/skills/, ~/.bluma/skills/Coordenador, workers e mailbox em ~/.bluma/mailboxes/ (spawn_agent, wait_agent, send_message, …).
~/.bluma/bluma-mcp.jsonvscode-extension/native/)Exemplo mínimo (.env):
FACTOR_ROUTER_URL=https://your-factor-router.example/v1
FACTOR_ROUTER_KEY=your-key
Opcionais comuns: BLUMA_PERMISSION_MODE, BLUMA_HOME, flags de memória, URLs FactorAI para testes de deploy local, MCP_SSE_URL. Ver .env.example.
~/.bluma)bluma resume — menu ou IDbluma sessions / bluma logs <id> — agentes em background| Comando | Descrição |
|---|---|
npm run build | Compila para dist/ |
npm run build:all | Native (Rust) + build |
npm start | Build e UI |
npm test | Testes |
npm run lint | ESLint |
Requisitos: Node.js ≥ 20.
| Documento | Conteúdo |
|---|---|
| CHANGELOG.md | Versões |
| CONTRIBUTING.md | Como contribuir |
| docs/BLUMA_DEVELOPER_GUIDE.md | Guia de desenvolvimento |
| docs/SKILLS.md | Skills |
| docs/FACTOR_ROUTER_TURNS.md | Turnos no router |
| docs/MAILBOX_IPC.md | Mailbox |
Apache 2.0 — LICENSE
Alex Fonseca · Nomad-e
FAQs
BluMa independent agent for automation and advanced software engineering.
The npm package @nomad-e/bluma-cli receives a total of 511 weekly downloads. As such, @nomad-e/bluma-cli popularity was classified as not popular.
We found that @nomad-e/bluma-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Socket found 37 malicious PyPI wheels that abuse Python startup hooks to launch a Bun-powered credential stealer tied to Mini Shai-Hulud/Miasma.

Security News
RubyGems and Bundler 4.0.13 introduced an opt-in cooldown feature that delays newly published gems during dependency resolution.

Security News
pnpm 11.5 now recognizes npm staged publish approvals in release metadata, preventing those releases from being mistaken for lower-trust package publishes.