Visualizador de Thread de Chat
Cole um array de messages OpenAI ou Anthropic (JSON) e veja como uma thread de chat legível. Cor por papel. Parâmetros de tool-call expansíveis. Só navegador, sem upload.
Pra que serve?
Apps de LLM logam suas conversas como arrays JSON de mensagens — é o que vai pra API e o que aparece em audit logs, traces de avaliação, datasets de fine-tuning e debug do SDK. Ler esses arrays a olho nu é doloroso: muros de strings escapadas, argumentos de tool-call envolvidos em JSON-dentro-de-JSON escapado, system prompts misturados com o resto. Esta ferramenta te dá um render rápido em balões pra você escanear a conversa real, ver quais mensagens tiveram tool-calls e achar o prompt que descarrilou.
Quais formatos entende
- OpenAI Chat Completions.
[{role, content}, ...]comtool_callsopcionais em mensagens assistant erole: "tool"pra resultados de tool. A forma mais comum. - Anthropic Messages API.
[{role, content: [...]}]ondecontenté um array de blocos (text,tool_use,tool_result,image). System prompt geralmente é top-level — cole como mensagem system se quiser ver. - Dumps de mensagens LangChain.
[{type: "human" | "ai" | "system", content: ...}]— forma antiga do LangChain, ainda comum em traces salvos. - Objetos wrapper. Se você colar
{"messages": [...]}ou{"input": [...]}, o wrapper é desempacotado automaticamente.
O que é renderizado
- Balões coloridos por papel. System = cinza centralizado, user = índigo à direita, assistant = neutro à esquerda, tool result = verde.
- Tool-calls. Expandidos por padrão com argumentos formatados. Tanto
tool_callsda OpenAI quanto blocostool_useda Anthropic são tratados. Mensagens de resultado aparecem em seu próprio balão. - Code fences e inline code. Blocos com triplo backtick viram
<pre>em monoespaçado, backticks simples viram inline. Sem destaque de sintaxe (não levamos tokenizer pra isso), indentação preservada. - Referências de imagem. Blocos de imagem da Anthropic mostram uma pílula pequena com URL ou media-type — não carregamos a imagem (a ferramenta fica offline).
- Linha de stats. Formato detectado, número de mensagens, número de tool-calls e estimativa aproximada de tokens com a mesma heurística do nosso Token Counter.
Pegadinhas comuns
- Vírgulas finais. JSON padrão não permite. Se copiou de debugger ou REPL, talvez precise limpar
{...},]→{...}]antes de colar. - Aspas simples. O
reprdo Python usa simples. Passe porjson.dumps, ou use um conversor Python-literal pra JSON. - System prompt da Anthropic. A instrução system na API da Anthropic é campo top-level, não mensagem. Se seu dump só tem o array de messages, o system prompt não tá lá — cole como
{"role": "system", "content": "..."}no começo. - Argumentos de tool-call como JSON escapado. OpenAI devolve
argumentscomo string JSON. A gente desescapa e formata. Se o JSON dentro da string tá quebrado, mostra a string crua. - Privacidade. Nada sai da página. Tudo roda em JS no JSON que você cola. Não cole nada que não colaria num app de notas.