Assistente local-first para Linux com RAG em documentos, CLI, API HTTP local e um Linux Agent com execução controlada.
- Core Python único para CLI, API local e indexação RAG.
- Respostas locais com
Ollama+ChromaDBsobre arquivosMarkdowneTXT. - Linux Agent opcional com
dry-run, confirmação explícita, ACL e auditoria. - Foco atual em uso local via CLI e API. A futura interface web deve consumir a API já existente.
- Persistência configurável por modo de armazenamento e variáveis de ambiente.
- Assistente local-first voltado para privacidade e uso em Linux.
- Separação clara entre chat, recuperação de contexto e execução operacional.
- Camada estável de integração via API HTTP local.
- Projeto Python empacotável com CLI, testes versionados e documentação operacional.
- Consulta privada de documentação técnica, runbooks e notas internas sem enviar dados para terceiros.
- Assistente local para troubleshooting e diagnóstico operacional em hosts Linux.
- Base local de conhecimento para times que precisam combinar RAG com automação controlada.
- Contrato de backend para uma futura interface web sem duplicar a lógica de negócio no frontend.
flowchart TD
U[Usuário] --> CLI[CLI]
U --> API[API local]
WEB[Interface web futura] -.-> API
CLI --> CORE[Merlin Core Python]
API --> CORE
CORE --> RAG[RAG pipeline]
CORE --> AGENT[Linux Agent]
RAG --> DOCS[Markdown / TXT]
RAG --> OLLAMA[Ollama local]
RAG --> CHROMA[ChromaDB]
AGENT --> OS[Sistema Linux]
git clone https://github.com/N1ghthill/merlin-ia.git
cd merlin-ia
sudo apt install -y python3 python3-pip python3-venv
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt -r requirements-dev.txt
pip install -e .
ollama pull qwen2.5:7bsource .venv/bin/activate
merlin-ia
merlin-api --port 3030
merlin-index- Inicie o CLI com
merlin-ia. - Rode
/pathspara ver diretórios ativos descrolls, histórico e índice. - Adicione arquivos
.mde.txtao diretórioscrolls_dir. - Faça a pergunta no terminal.
- Se quiser forçar reindexação, use
/index_scrollsoumerlin-index.
Comandos úteis no CLI:
/help/paths/profile/set <chave> <valor>/index_scrolls/reindex/linux-diagnose ssh 50/linux-install nginx
O Merlin escolhe o modo de armazenamento em runtime:
- Em um clone Git gravável, tende a usar
project, mantendo dados em./datae documentos em./scrolls. - Fora desse cenário, usa
user, com paths XDG em~/.local/share/merlin-iae~/.local/state/merlin-ia. - Você pode fixar o comportamento com
MERLIN_STORAGE_MODE=projectouMERLIN_STORAGE_MODE=user. - Também é possível sobrescrever caminhos individualmente com
MERLIN_SCROLLS_DIR,MERLIN_HISTORY_PATH,MERLIN_CHROMA_DIRe variáveis correlatas.
O comando /paths expõe os caminhos realmente ativos na sessão.
O executor Linux é opcional e vem desligado por padrão.
export MERLIN_ENABLE_EXECUTOR=1
merlin-iaO fluxo de escrita continua protegido:
dry-runantes de executar- confirmação explícita
- ACL
- log de auditoria
- Repositório com 96 testes versionados.
- Workflow do GitHub Actions executa a suíte versionada em
tests/. make compilevalida a compilação dos módulos Python.
merlin_cli.py: entrada principal do CLI.merlin_api.py: API HTTP local.rag_indexer.py: reindexação completa do RAG.merlin/: paths, handlers e integração com o Linux Agent.executor/: executor Unix socket com validação, ACL e auditoria.scripts/: atalhos de execução para desenvolvimento local.docs/: instalação, uso, API e documentação operacional.
- Índice da documentação
- Case técnico
- Arquitetura
- Instalação
- Como usar
- API local
- Comandos do CLI
- Linux Agent
O fluxo base está em CONTRIBUTING.md.
MIT.