# abyss

> CLI que mergulha nas profundezas do seu código pra achar o que tava
> escondido: secrets vazados e dependências vulneráveis.
>
> Nome e mascote inspirados na lula-vampira-do-inferno
> (*Vampyroteuthis infernalis*) — criatura que vive nas profundezas onde
> não chega luz.

Multiplataforma (Windows, macOS, Linux). Escaneia repositórios em busca de:

- **Secrets vazados** (chaves de API, tokens, senhas commitadas) via
  [gitleaks](https://github.com/gitleaks/gitleaks)
- **Dependências vulneráveis** em projetos Python (`pip-audit`) e Node
  (`npm audit`)

## Instalação (dev)

```bash
pip install -e .
```

## Uso

Rodar sem argumento nenhum abre o menu interativo:

```bash
abyss
```

Ou direto por linha de comando:

```bash
abyss scan .                    # escaneia o diretório atual
abyss scan /caminho/pro/repo    # escaneia outro caminho
abyss scan . --secrets-only     # só secrets
abyss scan . --deps-only        # só dependências
abyss scan . --json report.json # salva relatório em JSON
```

Na primeira execução, o binário do `gitleaks` é baixado automaticamente
para a plataforma atual e guardado em cache local (não precisa instalar
nada manualmente).

Para o scan de dependências, `pip-audit` (Python) e `npm` (Node) precisam
estar disponíveis no PATH quando aplicável — se não estiverem, aquele
scan é pulado silenciosamente.

## Segurança

Secrets encontrados **nunca** aparecem em texto puro — são sempre
redigidos (`redact()`), mostrando só os últimos 4 caracteres. Isso vale
pra saída de terminal, JSON exportado e qualquer log.

## Mascote

O ASCII art da lula-vampira fica em `abyss/ui/banner.py`, na constante
`MASCOT_ART` — troque o placeholder pelo desenho final quando estiver
pronto.

## Roadmap

- [ ] Publicar no PyPI
- [ ] Integração com GitHub API — abrir issue automática ao encontrar problema
- [ ] Suporte a mais ecossistemas (Cargo, Go modules)
- [ ] Modo `--watch` para rodar em CI/pre-commit hook
- [x] Nome definitivo: **Abyss**