Jurisprudência brasileira unificada em Python.
Uma interface única para consultar, normalizar e rastrear dados públicos de tribunais brasileiros.
Contexto institucional: NDTJ · Mantenedor principal: Luciano Molero
NanoJuris é uma biblioteca Python open source que conecta diferentes fontes oficiais de jurisprudência por uma interface unificada. Ela transforma respostas heterogêneas em dados estruturados, normalizados e rastreáveis para desenvolvedores, profissionais do Direito, pesquisadores, analistas de dados e agentes de IA.
Uma API. Múltiplas fontes. Um modelo de dados comum.
Tribunais e fontes públicas
│
▼
NanoJuris
acesso · aquisição · normalização
│
▼
Python · dados · jurimetria · agentes de IA
O projeto está evoluindo continuamente sua cobertura. “Implementado”, “validado” e “disponível em consulta live” são estados diferentes; a documentação de cada provider explicita essa distinção.
| Você quer... | Comece por... |
|---|---|
| Fazer uma busca em Python | Quickstart |
| Consultar pelo terminal | CLI e exemplos |
| Conectar Claude, Codex ou outro agente | MCP local |
| Entender o modelo de dados | Arquitetura |
| Escolher uma fonte | Capacidades por fonte |
| Ver o estado real das fontes | Status das fontes |
| Criar ou corrigir um provider | Guia de providers |
| Auditar uma coleta | Pipeline de extração |
Para usar a biblioteca:
python -m pip install nanojurisPara desenvolvimento local:
git clone https://github.com/ndtj/nanojuris.git
cd nanojuris
python -m venv .venv
python -m pip install -e ".[dev]"O pacote requer Python 3.10 ou superior.
from nanojuris import NanoJurisClient
client = NanoJurisClient()
page = client.search(
"responsabilidade civil",
source="tjdf_juris",
page_size=5,
)
for decision in page.results:
print(decision.court, decision.number)
print(decision.summary or decision.thesis)Forma de resposta, usando uma fixture pública representativa do TJDFT:
{
"source": "tjdf_juris",
"court": "TJDFT",
"type": "acordao",
"number": "0722671-67.2024.8.07.0000",
"rapporteur": "SANDRA REVES",
"judgment_date": "2024-09-04"
}O bloco ilustra o formato canônico de uma resposta testada offline. A disponibilidade live e os campos presentes devem ser confirmados no dossiê da fonte em cada execução.
A resposta preserva os metadados normalizados e a trilha da fonte. A biblioteca não transforma uma fonte instável em uma certeza: indisponibilidade, controle de acesso, resultado vazio e limitação de cobertura permanecem observáveis.
nanojuris buscar "ICMS consumidor final" --orgaos STF,STJ --limite 5Escolha o formato conforme o destino:
# Leitura e revisão humana
nanojuris buscar "ICMS consumidor final" --formato markdown
# Planilhas e jurimetria
nanojuris buscar "ICMS consumidor final" --formato csv
# Pipelines e agentes
nanojuris buscar "ICMS consumidor final" --formato jsonlDescubra fontes, capacidades e diagnósticos antes de pesquisar:
nanojuris fontes
nanojuris diagnostico --fonte tjdf_juris
nanojuris tribunais --implementadosO MCP é distribuído como um extra do mesmo pacote e roda localmente, próximo ao ambiente do usuário:
python -m pip install "nanojuris[mcp]"
nanojuris-mcpDepois, configure o cliente de IA para iniciar nanojuris-mcp como servidor
local. As ferramentas expõem descoberta de fontes, busca, diagnósticos,
exportação e consulta ao store SQLite. O guia de MCP contém os
blocos de configuração para clientes compatíveis e as regras de segurança.
- Consulta: busca textual, filtros e paginação conforme o contrato de cada fonte.
- Normalização: modelos comuns para decisões, precedentes e documentos decisórios.
- Rastreabilidade: fonte, endpoint, parâmetros, horário, status de acesso e evidências.
- Extração: texto e metadados públicos, incluindo inteiro teor quando a fonte o entrega.
- Persistência: pesquisa reprodutível em SQLite, com runs e exportação.
- Integração: SDK Python, CLI, MCP local e formatos JSON, JSONL, CSV e Markdown.
- Governança: documentação por provider, uso responsável e limites explícitos.
O catálogo separa o que está implementado do que foi apenas mapeado para desenvolvimento:
| Estado | Quantidade | Significado |
|---|---|---|
| Providers implementados | 37 | Há adapter registrado no pacote |
| Fontes candidatas | 16 | Há evidência ou pesquisa, mas não são runtime |
| Especificações de família | 1 | Contrato compartilhado aguardando adapters |
Consulte o catálogo machine-readable, a matriz de cobertura e os dossiês individuais. Cada dossiê distingue rota observada, resposta reproduzida e provider pronto para uso.
No Studio, a selecao maduras inicia com 7 fontes estaveis; jurisprudencia inclui as fontes recomendadas para busca textual; e todas expande para os providers registrados. Esses modos sao conveniencias de selecao, nao garantias de disponibilidade live: falhas, bloqueios externos e resultados vazios permanecem visiveis na resposta.
Consulta processual, DataJud/CNJ, DJEN, comunicacoes judiciais, partes, movimentacoes e linhas do tempo pertencem ao NanoJud. Veja migration-to-nanojud.md.
Fonte pública
│ resposta original + evidência
▼
Raw source record
│ parser específico do tribunal
▼
Normalized provider record
│ contrato canônico
▼
Canonical legal record
├── SDK Python
├── CLI / exportadores
├── SQLite / research runs
└── MCP local / Studio
O provider conhece o contrato da fonte. O núcleo conhece normalização, paginação, auditoria e persistência. Essa separação permite adicionar fontes sem contaminar o modelo comum com semânticas específicas de um tribunal.
NanoJuris trabalha somente com fontes públicas ou legitimamente acessíveis ao usuário. O projeto não tenta contornar captcha, login, WAF, geoblock ou outra barreira de acesso. Quando um documento não pode ser obtido, essa limitação é registrada em vez de ser mascarada.
Os resultados são dados para pesquisa e automação. Eles não substituem a leitura da fonte oficial, a análise profissional do caso ou a verificação da vigência de um entendimento. Consulte Uso responsável antes de incorporar resultados em fluxos jurídicos.
O Portal de documentação organiza a leitura em quatro percursos:
- Usar: instalação, Python, CLI, MCP e armazenamento.
- Compreender: arquitetura, contratos canônicos e pipeline de extração.
- Expandir: dossiês, playbook de descoberta e desenvolvimento de providers.
- Governar: segurança, releases, contribuição, autoria e decisões do projeto.
python -m pip install -e ".[dev,mcp,studio]"
python -m pytest
ruff check src tests examples tools
ruff format --check src tests examples tools
mypy srcLeia CONTRIBUTING.md, SECURITY.md, MAINTAINERS.md e GOVERNANCE.md antes de abrir uma contribuição.
O NanoJuris é criado e mantido principalmente por Luciano Molero, responsável pela arquitetura, implementação, releases e manutenção técnica.
O projeto foi desenvolvido no contexto do Núcleo de Direito, Tecnologia e Jurimetria (NDTJ), um centro acadêmico que relaciona direito, tecnologia, inteligência artificial e jurimetria. O contexto institucional apoia a colaboração e não altera a autoria dos commits, do código ou das decisões técnicas. A estrutura formal de manutenção está em MAINTAINERS.md e GOVERNANCE.md.
Distribuído sob a licença MIT. O NanoJuris não é produto oficial do CNJ, STF, STJ, TST, TJSP ou de qualquer outro tribunal.