Layered Code

Uma ferramenta de desenvolvimento web assistida por IA para criar, modificar e implantar código por meio de conversas em linguagem natural.

Documentação

License: MIT Go Version Build Status

⚠️ Trabalho em Andamento ⚠️

Este projeto está atualmente em desenvolvimento ativo. Recursos, APIs e documentação podem mudar com frequência. Embora recebamos feedback e contribuições (veja Contribuindo), observe que este software ainda não está pronto para uso em produção. Este aviso será removido quando alcançarmos a versão 1.0.

Banner

🔍 O que é Layered Code?

Layered Code transforma o desenvolvimento web em um fluxo de trabalho contínuo de conversa para implantação. Você conversa com seu assistente de IA preferido por meio de ferramentas compatíveis com MCP, como o Claude Desktop, descrevendo o que deseja criar em linguagem natural. A IA cria e modifica seu código em tempo real, enquanto frameworks de desenvolvimento modernos como Vite e Next.js fornecem substituição instantânea de módulos para mostrar as alterações automaticamente. Quando estiver satisfeito com os resultados, basta pedir à IA para confirmar suas alterações em um repositório git e implantar diretamente nos servidores de produção — tudo sem memorizar comandos complexos ou navegar por ferramentas de desenvolvimento intrincadas.

YouTube Video Assista a uma visão geral rápida do Layered Code em ação

Método principal de interação:

  • 🗣️ Conversas em linguagem natural com assistentes de IA como o Claude Desktop
  • 🔌 Integração MCP fornece à IA acesso direto aos arquivos do seu projeto na sua máquina local
  • 🎯 Desenvolvimento orientado por intenção - descreva seus objetivos, e a IA cuida da implementação técnica
  • 🚀 Integração Git para implantações automáticas - confirme alterações e implante em produção por meio de comandos conversacionais

Exemplo de conversa:

Usuário: "Quero criar uma página web básica com tema escuro para descrever meu novo projeto de IA chamado 'SmartFlow'. Deve ter uma seção hero limpa com o nome do projeto, uma breve descrição e alguns recursos principais listados abaixo."

A IA, equipada com as ferramentas MCP do Layered Code, pode:

  • Criar a estrutura HTML com marcação semântica
  • Gerar CSS para um tema escuro moderno com contraste adequado
  • Organizar arquivos e ativos do projeto automaticamente
  • Configurar design responsivo para celular e desktop

Usuário: "Isso está ótimo! Pode adicionar uma seção de contato na parte inferior e fazer os cartões de recursos terem um efeito hover sutil?"

A IA perfeitamente:

  • Atualiza o HTML para incluir uma seção de contato
  • Melhora o CSS com animações de hover suaves
  • Seu servidor de desenvolvimento atualiza automaticamente para mostrar as alterações

Usuário: "Perfeito! Agora confirme essas alterações e implante em produção."

A IA cuida do controle de versão e implantação:

  • Confirma alterações com uma mensagem descritiva
  • Aciona seu pipeline de implantação configurado
  • Confirma a implantação bem-sucedida no seu servidor de produção

Embora uma interface CLI esteja disponível para acesso direto às ferramentas, a experiência conversacional de IA por meio do MCP é onde o Layered Code realmente se destaca - permitindo que você se concentre no que deseja criar, em vez de como criá-lo.

🎯 Motivação

Layered Code fornece uma abordagem aberta para desenvolvimento assistido por IA: seus prompts, seus provedores, sua escolha.

  • 🔓 Para Sempre Gratuito e Open Source: O Layered Code permanecerá sempre gratuito e open source
  • 💻 Suporte Multiplataforma: Funciona em macOS, Windows e Linux
  • 🔍 Sem Mágica Oculta: Sem prompts secretos escondidos dos usuários fazendo coisas misteriosas que eles não entendem
  • 🛠️ Agnóstico em Tecnologia: Funciona com qualquer linguagem, framework ou ambiente de desenvolvimento
  • 🚀 Zero Dependência de Fornecedor: Use qualquer provedor de hospedagem, ambiente de desenvolvimento ou conjunto de ferramentas

📦 Instalação

Opção 1: macOS/Linux via Homebrew (Recomendado)

brew update
brew tap layered-flow/layered-code
brew install layered-code

Opção 2: Script de Instalação (macOS/Linux)

Para instalação em todo o sistema (recomendado):

curl -fsSL https://raw.githubusercontent.com/layered-flow/layered-code/main/scripts/install.sh | sudo bash

Isso instala os binários em /usr/local/bin para fácil acesso de qualquer lugar.

Se preferir instalar no diretório atual, omita o sudo:

curl -fsSL https://raw.githubusercontent.com/layered-flow/layered-code/main/scripts/install.sh | bash

Nota: Este script baixa um binário autossuficiente com ripgrep incluído.

Opção 3: Binários Pré-compilados

Baixe o arquivo apropriado para sua plataforma na página de releases do GitHub. Cada arquivo contém tanto o binário layered-code quanto um binário rg (ripgrep) incluído:

  • macOS (Intel): layered-code_Darwin_x86_64.tar.gz
  • macOS (Apple Silicon): layered-code_Darwin_arm64.tar.gz
  • Linux (x86_64): layered-code_Linux_x86_64.tar.gz
  • Linux (ARM64): layered-code_Linux_arm64.tar.gz
  • Windows (x86_64): layered-code_Windows_x86_64.zip
  • Windows (ARM64): layered-code_Windows_arm64.zip (usa binário ripgrep x64 via emulação)

Etapas de configuração:

macOS/Linux:

  1. Extraia o arquivo: tar -xzf layered-code_*.tar.gz
  2. Torne ambos os binários executáveis: chmod +x layered-code rg
  3. Mova ambos os binários para o mesmo diretório:
    • Para instalação do usuário: mkdir -p ~/bin && mv layered-code rg ~/bin/
    • Para instalação em todo o sistema: sudo mv layered-code rg /usr/local/bin/
  4. Certifique-se de que o local esteja no seu PATH para fácil acesso

Windows:

  1. Extraia o arquivo zip (contém layered-code.exe e rg.exe)
  2. Mova ambos os executáveis para o mesmo local conveniente (ex.: C:\Users\YourUsername\bin\)
  3. Adicione o diretório à sua variável de ambiente PATH:
    • Abra "Variáveis de Ambiente" nas Propriedades do Sistema
    • Adicione o diretório que contém ambos os executáveis ao seu PATH

Importante: Mantenha ambos os binários layered-code e rg (ripgrep) no mesmo diretório para funcionamento adequado.

✨ Início Rápido com Claude Desktop

Embora haja planos para suportar modelos open source por meio do Ollama, o Claude Desktop atualmente fornece o melhor suporte para o Model Context Protocol do qual o Layered Code depende.

  1. Instale o Claude Desktop

  2. Ative o Modo Desenvolvedor:

    • Abra o Claude Desktop
    • Vá para Configurações
    • Navegue até a aba "Desenvolvedor"
    • Ative o "Modo Desenvolvedor" se ainda não estiver ativado
  3. Instale o layered-code: Siga as instruções de Instalação acima e anote o caminho para o seu binário

  4. Configure o Servidor MCP:

    • Abra as configurações do Claude Desktop → Desenvolvedor → Editar Config
    • Adicione a claude_desktop_config.json:

Configurar o Servidor MCP no Claude Desktop

Adicione o seguinte à sua claude_desktop_config.json (em Configurações → Desenvolvedor → Editar Config), ajustando o caminho command conforme apropriado para sua instalação e plataforma:

Plataforma/Método de InstalaçãoExemplo de valor "command"
macOS/Linux (Homebrew)layered-code
macOS/Linux (Manual/Binário)/usr/local/bin/layered-code
WindowsC:\\Users\\YourUsername\\bin\\layered-code.exe

Nota para Windows: Use o caminho completo com barras invertidas duplas (\\) no valor "command".

Exemplo de configuração:

{
  "globalShortcut": "",
  "mcpServers": {
    "layered-code": {
      "command": "<see table above>",
      "args": ["mcp_server"]
    }
  }
}
  1. Reinicie o Claude Desktop completamente (o Windows pode exigir que você "encerre a tarefa" em quaisquer tarefas em segundo plano do Claude)
  2. Verifique: Procure por "layered-code" no menu de ferramentas do Claude

🔧 Opcional: Diretório Personalizado de Aplicativos

Por padrão, o Layered Code usa ~/LayeredApps como diretório para seus aplicativos. Para usar um diretório personalizado:

Para MCP (Claude Desktop): Adicione uma seção env à sua configuração:

{
  "globalShortcut": "",
  "mcpServers": {
    "layered-code": {
      "command": "layered-code",
      "args": ["mcp_server"],
      "env": {
        "LAYERED_APPS_DIRECTORY": "~/MyCustomAppsFolder"
      }
    }
  }
}

Para uso via CLI: Defina a variável de ambiente LAYERED_APPS_DIRECTORY no seu shell:

export LAYERED_APPS_DIRECTORY="~/MyCustomAppsFolder"
layered-code tool lc_apps_list

🔒 Segurança

O Layered Code mantém segurança ao configurar diretórios personalizados de aplicativos:

  • Por segurança, os caminhos são validados para garantir que estejam dentro do diretório inicial do usuário
  • Caminhos relativos são permitidos e resolvidos em relação ao diretório inicial do usuário

🖥️ Uso via CLI

Use o layered-code diretamente da linha de comando:

# Start MCP server
layered-code mcp_server

# List apps
layered-code tool lc_apps_list

# Get version information
layered-code version
layered-code -v
layered-code --version

# Get help and usage information
layered-code help
layered-code -h
layered-code --help

Comandos Disponíveis:

  • mcp_server - Inicia o servidor Model Context Protocol para integração com Claude Desktop

  • tool - Executa várias ferramentas e utilitários (use com subcomandos como abaixo)

    Ferramentas de Gerenciamento de Arquivos:

    • tool lc_apps_list - Lista todos os aplicativos disponíveis no diretório ~/LayeredApps
    • tool lc_file_list - Lista arquivos e diretórios dentro de um aplicativo com metadados opcionais (profundidade máxima: 10.000 níveis)
    • tool lc_text_search - Pesquisa padrões de texto em arquivos dentro do diretório de um aplicativo usando ripgrep
    • tool lc_file_read - Lê o conteúdo de um arquivo dentro do diretório de um aplicativo
    • tool lc_file_write - Escreve ou cria um arquivo dentro do diretório de um aplicativo
    • tool lc_file_edit - Edita um arquivo realizando operações de localizar e substituir
    • tool lc_file_move - Move ou renomeia um arquivo dentro do diretório de um aplicativo
    • tool lc_file_delete - Exclui um arquivo dentro do diretório de um aplicativo
    • tool lc_file_copy - Copia um arquivo dentro do diretório de um aplicativo
    • tool lc_folder_delete - Exclui uma pasta e todo o seu conteúdo dentro do diretório de um aplicativo (operação destrutiva)
    • tool lc_chrome_visit - Visita uma URL usando o navegador Chrome e recupera o conteúdo da página após o carregamento do JavaScript

    Ferramentas Vite:

    • tool vite_app_create - Cria um novo aplicativo Vite com vários modelos (React, Vue, Svelte, etc.)

    Ferramentas Next.js:

    • tool nextjs_app_create - Cria um novo aplicativo Next.js com TypeScript (padrão), JavaScript, Tailwind ou modelos App Router
      • Flags CLI: --src-dir (usar diretório src, padrão: true), --import-alias (padrão: @/*), --turbopack (padrão: true)
      • Exemplo: tool nextjs_app_create myapp typescript --src-dir --import-alias="~/"

    Ferramentas de Gerenciador de Pacotes:

    • tool pnpm_install - Instala dependências usando pnpm (preferido) ou npm
    • tool pnpm_add - Adiciona um ou mais pacotes usando pnpm (preferido) ou npm
      • Pacote único: pnpm_add myapp express
      • Múltiplos pacotes: pnpm_add myapp express cors @types/node
    • tool pnpm_pm2 - Gerencia processos Node.js com PM2
      • Comandos: start <app>, stop <app|all>, restart <app|all>, delete <app|all>, list, logs [app] [flags]
      • Detecta automaticamente scripts dev/start do package.json
      • Usa ecosystem.config.js se presente
      • Instala automaticamente o PM2 se não estiver disponível
      • O comando logs inclui --nostream por padrão (mostra as últimas 15 linhas e sai)
      • Flags adicionais podem ser passadas, ex.: logs myapp --lines 100 para mostrar mais linhas

    Ferramentas JavaScript/TypeScript:

    • tool lc_js_lint - Executa análise ESLint em arquivos JavaScript/TypeScript com correção automática opcional
      • Executa ESLint no diretório do aplicativo especificado e retorna resultados em formato JSON
      • Uso: lc_js_lint <app_name> [--fix] [--config=<config_file>] <files...>
      • Opções:
        • --fix: Corrige automaticamente problemas que podem ser corrigidos
        • --config=<file>: Usa arquivo de configuração ESLint específico
        • --help, -h: Mostra mensagem de ajuda
      • Notas importantes:
        • Os arquivos devem ser caminhos relativos (sem caminhos absolutos ou .. permitidos)
        • O arquivo de configuração deve ser relativo ao diretório do aplicativo
        • Apenas as opções --config e --fix são permitidas por segurança
      • Exemplos:
        • Arquivo único: lc_js_lint myapp src/index.js
        • Lint e corrigir: lc_js_lint myapp --fix src/index.js src/app.js
        • Com padrões glob: lc_js_lint myapp "src/**/*.js" "tests/**/*.js"
        • Corrigir com configuração: lc_js_lint myapp --fix --config=.eslintrc.json src/index.js

    Ferramentas de Prompts:

    • tool lc_prompt_list - Lista todos os prompts disponíveis com IDs numéricos, nomes, versões e descrições
      • Mostra apenas a versão mais alta de cada prompt
      • Use --help para mais informações
    • tool lc_prompt_read - Lê o conteúdo completo de um prompt por ID numérico, com versão opcional
      • Importante: LLMs usando MCP devem ler automaticamente o prompt ID '1' (Princípios Gerais) no início de cada conversa
      • Exemplo (versão mais recente): lc_prompt_read 1
      • Exemplo com versão: lc_prompt_read 1:2
      • Use --help para sintaxe detalhada e exemplos

Ferramentas Git:

  • tool git_status - Mostra o status da árvore de trabalho de um repositório git

  • tool git_diff - Mostra alterações entre commits, commit e árvore de trabalho, etc

  • tool git_commit - Cria um novo commit com alterações em staged

  • tool git_log - Mostra os logs de commits

  • tool git_branch - Lista, cria ou exclui branches

  • tool git_add - Adiciona o conteúdo de arquivos à área de staging

  • tool git_restore - Restaura arquivos da árvore de trabalho

  • tool git_stash - Faz stash de alterações em um diretório de trabalho sujo

  • tool git_push - Atualiza referências remotas junto com objetos associados

  • tool git_pull - Busca e integra com outro repositório ou branch local

  • tool git_init - Inicializa um novo repositório git

  • version, -v, --version - Exibe a versão atual do layered-code

  • help, -h, --help - Mostra informações de uso e comandos disponíveis

🏗️ Compilando a partir do Código Fonte

Para compilar o Layered Code a partir do código fonte:

# Clone the repository
git clone https://github.com/layered-flow/layered-code.git
cd layered-code

# Build with make (downloads ripgrep binaries automatically)
make build

# Or build for all platforms
make build-all

# Run tests
make test

# Verify installation
layered-code

🧪 Executando Testes

Execute a suíte de testes para garantir que tudo está funcionando corretamente:

# Run all tests
go test ./...

# Run tests with verbose output
go test -v ./...

🤝 Contribuindo

Estamos animados com o potencial de contribuições da comunidade! Enquanto o Layered Code está amadurecendo rumo à versão 1.0, estamos focados em estabilizar a funcionalidade principal e as APIs. Durante esta fase, recebemos suas ideias e feedback através de GitHub Issues, mas não aceitaremos pull requests para garantir que possamos avançar rapidamente e fazer as mudanças de quebra necessárias.

Quando alcançarmos a versão 1.0 e a base estiver sólida, ficaremos muito felizes em abrir também para pull requests da comunidade. Acreditamos que essa abordagem focada criará uma experiência melhor para todos a longo prazo.

Sinta-se à vontade para:

  • Abrir issues para compartilhar ideias e sugestões
  • Reportar bugs que você encontrar
  • Fazer perguntas sobre o projeto
  • Fornecer feedback sobre recursos e documentação

Obrigado pela sua compreensão e interesse no projeto! 🙏

📝 Licença

Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE.md para obter detalhes.

Componentes de Terceiros

Este software inclui componentes de terceiros. Consulte THIRD-PARTY-LICENSES.md para os termos de licença deles.

Copyright (c) 2025 Layered Flow
https://www.layeredflow.ai/