curl → Code Converter
Convert curl commands to fetch, axios, Node, Python, PHP, Go. Browser-only.
curl → Code Converter
—Note: curl parsing runs server-side (tree-sitter requires native bindings). Your command is sent over HTTPS, parsed, and discarded — never logged or stored.
What next?
How it works
Por que converter curl
A documentação da maioria das APIs usa curl como linguagem universal — copy-paste funciona em qualquer terminal. Mas no seu código você precisa de fetch (browser), Python requests, PHP curl, ou Go net/http. Traduzir manualmente é tedioso e propenso a erros: esqueceu de um header, errou o encoding do body, perdeu uma flag.
Esta ferramenta usa o parser oficial do curlconverter.com (mantido pelo Nick Frichette). Ele entende o shell syntax do curl real — line continuations, quoting, env vars, multi-line.
Por que server-side
A biblioteca usa tree-sitter-bash para parsear o shell — e tree-sitter precisa de native bindings (.node) que não rodam em browser. Solução: API route Node.js. Seu curl é enviado via HTTPS, parseado, descartado. Nunca logado, nunca armazenado.
Para quem prioriza máxima privacidade: o curl no seu terminal sozinho não vaza nada, mas então você não tem o output em outro lang. Trade-off conhecido.
Targets suportados
- fetch — browser-native, ES2017+
- node-fetch — Node.js (
import fetch from 'node-fetch') - python — requests (
import requests) - php — curl extension (
curl_init,curl_setopt) - go — net/http (
http.NewRequest)
Cada target gera idioma natural daquela linguagem — não uma tradução literal.
Edge cases que ele lida
--data-rawvs--datavs--data-binary(diferenças sutis em escape)- Headers multi-valor (
-H 'X-Foo: a' -H 'X-Foo: b') - Auth básica (
-u user:passviraAuthorization: Basic ...) - Multipart (
-F field=value -F file=@path) - Cookies (
--cookie 'name=value') - Line continuation (
\no fim da linha) - Variáveis de ambiente (
-H "Auth: $TOKEN") — gera a referência
Edge cases problemáticos
--data-urlencodecomplexos com=no valor- Flags muito recentes que ainda não foram mapeadas
- Custom curl behaviors via
~/.curlrc(não temos contexto)
Quando o conversor falha, você vê a mensagem de erro do parser e pode ajustar o comando.
Caso de uso típico
API tem doc em curl. Você está construindo um cliente Python. Copia o curl da doc, escolhe target Python, copia o código gerado. Ajusta variáveis (TOKEN → sua env var), roda. Economiza 5-10 minutos por endpoint, multiplicado por dezenas de endpoints.
Privacidade reiterada
O comando curl frequentemente contém credenciais (Bearer tokens, API keys). Eles passam pelo nosso servidor durante o parse. Não logamos. Mas se isso é inaceitável para você, rode curlconverter localmente via npm — é open source.
FAQ
Meu curl com Bearer token é seguro?
O comando passa pelo nosso servidor durante o parse (HTTPS), é processado em memória, e descartado. Não logamos nem armazenamos. Mas se o secret é altamente sensível, rode curlconverter localmente via npm install -g curlconverter.
Por que não roda no browser?
Curlconverter usa tree-sitter-bash para parsear shell, e tree-sitter precisa de native bindings (.node) que browsers não executam. Alternativa seria reescrever o parser puro JS — muito trabalho para benefício marginal.
Quais flags do curl funcionam?
A maioria: -X, -H, -d, --data-raw, --data-urlencode, -u, --cookie, -F, --form, -A (user-agent), --compressed, etc. Flags muito recentes ou raras podem não ter mapeamento.
Posso adicionar curl multi-linha com \?
Sim. O parser entende line continuations. Cole o comando inteiro mesmo que ocupe várias linhas.
Por que o código gerado tem $VAR?
Se seu curl referencia $TOKEN ou $API_KEY, o conversor preserva como variável no target (os.environ['TOKEN'] em Python, process.env.TOKEN em fetch, etc.). Substitua pelo seu segredo real depois.
Funciona com Postman/Insomnia exports?
Eles exportam curl que esta ferramenta entende. Cole direto. Para colocar o reverso (Postman export → outro client), Postman tem geradores nativos.