go build -o seilago main.go./seilago -fillQuando aparecer:
Cole a request do Chrome DevTools (formato fetch(...)) e tecle Ctrl-D:
# Copie e cole todo o conteúdo do arquivo example_request.txt
cat example_request.txt- No Chrome, abra DevTools (F12)
- Vá na aba Network
- Faça uma request qualquer
- Clique direito na request > Copy > Copy as fetch
- Cole no editor e adicione
[[variavel]]onde quiser valores dinâmicos - Exemplo:
fetch("https://api.exemplo.com/users", {
"headers": {
"content-type": "application/json"
},
"body": "{\"username\":\"[[usuario]]\",\"password\":\"[[senha]]\"}",
"method": "POST"
});- Cole no terminal quando o seilago pedir
Após colar a request, pressione Ctrl-D (Linux/Mac) ou Ctrl-Z + Enter (Windows)
Para cada [[variavel]] encontrada, você verá:
Placeholder: [[nome]]
Digite uma regex para gerar (ex: \d{8}, [a-z]{6}) ou valor literal:
>
Opções de resposta:
\d{8}→ 8 números (ex: 12345678)[a-z]{10}→ 10 letras minúsculas (ex: abcdefghij)[A-Z][a-z]{5,10}→ 1 maiúscula + 5 a 10 minúsculas (ex: Abcdef)\w{12}→ 12 alfanuméricos (ex: aB3dE5gH9jK1)[a-z]{8}@teste.com→ email (ex: abcdefgh@teste.com)
joao123→ sempre "joao123"senha@123→ sempre "senha@123"
Exemplo:
Placeholder: [[nome]]
Digite uma regex para gerar (ex: \d{8}, [a-z]{6}) ou valor literal:
> [A-Z][a-z]{5,10}
✓ Exemplo: Mfeokp
Placeholder: [[email]]
Digite uma regex para gerar (ex: \d{8}, [a-z]{6}) ou valor literal:
> [a-z]{8}@example.com
✓ Exemplo: hdjekwpq@example.com
Quantas vezes executar a request? 10
Digite quantas vezes quer executar (ex: 1, 10, 100, 1000)
Delay entre requests em ms (0 = máximo de velocidade): 100
0= sem delay (máxima velocidade)100= 100ms entre cada request (10 req/s)1000= 1 segundo entre cada request
=== Executando 10 requests ===
[1/10] ✓ 201 - 125ms (89 bytes)
Response: {"id":1,"name":"Agjeklo","email":"pkdjwmqp@example.com"}
[2/10] ✓ 201 - 98ms (91 bytes)
Response: {"id":2,"name":"Bmpqrst","email":"zxcvbnma@example.com"}
[3/10] ✗ 400 - 45ms (23 bytes)
Response: {"error":"invalid email"}
...
=== Resumo ===
Total: 10 | Sucesso: 9 | Falha: 1
Legenda:
- ✓ = sucesso (status 2xx ou 3xx)
- ✗ = erro (status 4xx ou 5xx)
- Tempo em ms
- Tamanho do body
- Response só aparece se for < 500 bytes
# 1. Executar
./seilago -fill
# 2. Colar (copie o exemplo abaixo):
fetch("https://brunji.com.br/api/users", {
"headers": {
"content-type": "application/json"
},
"body": "{\"name\":\"[[nome]]\",\"email\":\"[[email]]\"}",
"method": "POST"
});
# 3. Ctrl-D
# 4. Responder:
# [[nome]]: [A-Z][a-z]{6,10}
# [[email]]: [a-z]{8}@teste.com
# Quantidade: 5
# Delay: 500
# 5. Ver os resultados executando!"body": "{\"username\":\"[[user]]\",\"email\":\"[[email]]\",\"age\":[[age]]}"
// Respostas:
// [[user]]: [a-z]{6,12}
// [[email]]: [a-z]{8}@gmail.com
// [[age]]: [1-9][0-9]fetch("https://api.com/products/[[id]]", {"method": "GET"})
// Respostas:
// [[id]]: \d{1,5}"headers": {
"authorization": "Bearer [[token]]"
}
// Respostas:
// [[token]]: [A-Za-z0-9]{32}Quantidade: 1000
Delay: 0
P: O que acontece se eu não usar [[variavel]]?
R: A request será executada normalmente, sem substituição.
P: Posso usar a mesma variável em vários lugares?
R: Sim! [[email]] pode aparecer no body, header, URL, etc. Será substituído em todos os lugares.
P: Cada request gera valores diferentes? R: Sim! Se usar regex, cada request gera novos valores aleatórios.
P: Como fazer um valor numérico?
R: Use \d{n} onde n é a quantidade de dígitos. Ex: \d{8} = 8 dígitos
P: Como testar o mais rápido possível? R: Use delay = 0
- Teste primeiro com 1 request para ver se está funcionando
- Use delay > 0 se não quiser sobrecarregar o servidor
- Valores fixos são úteis para headers como API keys
- Valores regex são úteis para testar validações
- Response só aparece se < 500 bytes, para não poluir o terminal