Instalar ↓
v0.1 · ponte local · roda em 127.0.0.1

O Claude sugerindo construindo dentro do Roblox Studio.

Claybrick é um plugin mais um servidor-ponte local que dão ao Claude ferramentas de verdade no Studio: ler a hierarquia do place, escrever scripts e rodar o código pra testar antes de te entregar. Você escolhe quem paga a conta — sua chave da API, ou a cota da sua assinatura Pro/Max.

PS> irm https://claybrick.online/install.ps1 | iex
qual backend eu uso? →
"crie um sistema de moedas"
1-- ele nunca viu o seu place 2-- te devolve um script pronto 3-- usa part.Colour, que não existe 4-- você copia, cola no Studio, roda 5-- erro no Output; você cola o erro no chat 6-- ele chuta de novo, às cegas 7-- você é o loop de feedback dele
1 get_tree leu o Workspace e os scripts 2 lookup_api Color3 e BrickColor: as que existem 3 set_source escreveu o ModuleScript 4 check_syntax compilou sem executar 5 run_code rodou com asserts, em edit mode 6 get_output leu o erro e corrigiu sozinho 7 8-- o loop de feedback é dele. Ctrl+Z é seu.

O Claude pede. Você autoriza. O Studio executa.

Plugin do Studio só faz requisição de saída — não dá pra um servidor chamar o Studio de fora. Então a ponte inverte: o servidor enfileira o pedido de ferramenta, o plugin busca por long-poll, pergunta se pode, executa lá dentro e devolve o resultado. Nada toca no seu place sem passar por essa fila.

.py

Servidor-ponte

Python, em 127.0.0.1:8787. Fala com o Claude e enfileira as ferramentas.

.rbxl

Plugin no Studio

Luau. Puxa a fila, pede sua permissão, executa e devolve o que aconteceu.

Dois backends. Mesmas 27 ferramentas.

Os dois usam o mesmo system prompt e exatamente as mesmas ferramentas. A diferença é só quem roda o loop do agente — e quem paga. Dá pra alternar no próprio plugin.

backend · api

Chave da API

Sua chave da Anthropic, pago por token. O raciocínio e o texto aparecem no chat enquanto acontecem, e a conversa é resumida sozinha quando fica longa demais pro contexto.

DEFAULT_BACKEND=api
backend · assinatura

Assinatura Pro/Max

Roda o Claude Code logado na sua conta, via Claude Agent SDK: gasta a cota da assinatura em vez de cobrar por token. O agente fica travado nas ferramentas do Roblox — Bash, Read, Write e Edit ficam bloqueados.

DEFAULT_BACKEND=subscription

Ele lê à vontade.
Pra escrever e rodar, ele pergunta.

Cada ferramenta carrega uma classe de permissão, e quem decide é o plugin — não o servidor. Ctrl+Z desfaz as escritas: cada ferramenta, e cada batch, é um waypoint de undo.

12 · leitura

Enxergar o place

get_tree, get_source, find_instances, search_source, get_properties, get_selection, get_output. Nunca pergunta — ler não quebra nada.

agent/tools.py · permission: read
13 · escrita

Construir

create_instance, set_source, patch_source, insert_asset, set_tags. E batch, que faz projetos: várias escritas numa transação só — um undo, uma permissão.

agent/tools.py · permission: write
2 · execução

Testar de verdade

run_code roda um ModuleScript com require + asserts em edit mode, sem sujar o place — é onde a maior parte do teste deve morar. run_playtest só quando o runtime é o objeto do teste, e é destrutivo.

agent/tools.py · permission: execute
contexto

Não inventar API

lookup_api responde a partir do Full-API-Dump.json oficial da sua versão do Studio — 682 classes, 351 enums — marcando os deprecados e os que só funcionam via plugin. É o que impede o part.Colour inventado.

agent/apidump.py · cache em server/.cache/
Modo Leitura Escrita Execução
Perguntar (padrão) direto pergunta pergunta
Aceitar edições direto direto pergunta
Sem permissões direto direto direto
.md

Guias curados

Luau moderno e arquitetura cliente-servidor entram no system prompt, toda sessão.

+
SS

Memória de projeto

Vive num StringValue no ServerStorage, dentro do place — sobrevive a reinícios e viaja junto com o arquivo.

Um comando. Dois minutos.

O instalador confere seu Python, baixa a ponte, monta o ambiente e põe o plugin na pasta do Studio. Precisa de Python 3.10+ e do Roblox Studio — no Windows, em PowerShell. Ele só escreve em %LOCALAPPDATA%\Claybrick e na pasta de Plugins, e rodar de novo atualiza sem apagar sua chave.

01

Rodar o instalador

Baixa a ponte, monta o ambiente virtual, instala as dependências e põe o plugin na pasta do Studio.

PS>irm https://claybrick.online/install.ps1 | iex
02

Colar sua chave

Preencha ANTHROPIC_API_KEY e deixe DEFAULT_BACKEND=api. A chave sai do console da Anthropic.

PS>notepad $env:LOCALAPPDATA\Claybrick\server\.env
03

Subir a ponte

Sobe em http://127.0.0.1:8787. Abra /health pra ver os backends disponíveis e se o API dump do Roblox já foi indexado. No Studio: aba PluginsClaude Agent; na primeira ação, permita o acesso a scripts e HTTP.

PS>cd $env:LOCALAPPDATA\Claybrick\server; .\run.ps1
04

Pedir a primeira coisa

"Crie uma plataforma de neon vermelho 20x1x20 em (0, 10, 0)." Se ela aparecer no Workspace, a ponte está de pé.

Perguntas honestas.

Preciso de uma chave da API pra usar?

Não. Tem dois backends: um usa sua chave da Anthropic e cobra por token; o outro roda o Claude Code logado na sua conta Pro ou Max e gasta a cota da assinatura. Os dois entregam as mesmas 27 ferramentas — dá pra alternar no plugin.

Rodar irm | iex não é perigoso?

É um cuidado justo: esse comando executa na hora um script que veio da internet, e você deveria desconfiar de todo mundo que pede isso — inclusive de mim. Então leia antes: irm https://claybrick.online/install.ps1, sem o | iex, só imprime o script na tela. Ele confere seu Python, baixa o zip, cria o ambiente virtual, instala o que está no requirements.txt e copia o plugin. Escreve em dois lugares e só: %LOCALAPPDATA%\Claybrick e a pasta de Plugins do Studio. Não pede admin, não mexe no PATH, não instala Python por você.

Ele mexe nos meus arquivos ou no meu terminal?

Não. No modo assinatura o agente fica travado nas ferramentas do Roblox (mcp__roblox__*); Bash, Read, Write e Edit ficam explicitamente bloqueados. O servidor-ponte roda em 127.0.0.1, na sua máquina — nada do seu place sai pra lugar nenhum além da própria API do Claude.

E se ele fizer besteira? Dá pra desfazer?

Ctrl+Z. Cada ferramenta de escrita — e cada batch inteiro — é um waypoint de undo do Studio. As exceções são run_code e run_playtest: nem tudo que código em execução faz é reversível. O run_playtest em particular é destrutivo, porque RunService:Stop() não restaura o place: o que a física derrubar e os scripts criarem permanece.

Ele inventa propriedade que não existe, tipo todo mundo?

É o problema que a ferramenta lookup_api ataca. O servidor baixa e indexa o Full-API-Dump.json oficial da versão do Studio que você tem instalada — 682 classes e 351 enums — e responde com as propriedades, métodos e eventos que existem de verdade, marcando os deprecados. É o que impede o part.Colour inventado. Não é mágica: é a API real no contexto.

Como ele testa o que escreve?

Numa escada, do barato pro caro: check_syntax compila sem executar; run_coderequire num ModuleScript e roda asserts de verdade, em edit mode, sem sujar o place; get_output lê o Output do Studio pra ver o que aconteceu. O run_playtest fica por último, só quando o comportamento em runtime é o objeto do teste.

A conversa não estoura depois de um projeto inteiro?

Cada get_tree e cada run_code volta como texto no histórico, então sim, enche rápido. No backend de API a conversa é compactada sozinha: passando do limite configurado, a API resume o começo e segue a partir do resumo — e o chat te avisa quando isso acontece. O histórico já visto ainda é lido do cache, a 0,1x do preço.

Funciona num jogo publicado?

Não. Plugins só rodam no Studio, então o Claybrick é uma ferramenta de desenvolvimento — não tem nada rodando no seu jogo em produção.

Quem tá por trás?

Um dev brasileiro (Marcus) que passa o dia fazendo integrações entre sistemas em Python e resolveu apontar o mesmo padrão pro Roblox.