Base para bots de WhatsApp multifuncional com diversos comandos prontos.
CRIANDO UM BOT DE WHATSAPP DO ZERO (GUIA DEFINITIVO) - BASE COMPLETA + 6 COMANDOS - JAVASCRIPT
- Idiomas Disponíveis
- Atenção
- Sobre o Projeto
- Instalação
- Diagrama de conexão
- Alguns comandos necessitam de API
- Funcionalidades
- Auto responder
- Menu do bot
- Mensagens de boas vindas
- Diagrama de como os comandos funcionam
- Diagrama de como funcionam os middlewares
- Custom Middleware - Personalize o bot sem modificar arquivos principais
- Estrutura de pastas
- Atualizar o bot
- Testes
- Erros comuns
- Inscreva-se no canal
- Contribuindo com o projeto
- Licença e Disclaimer
Nós não prestamos suporte gratuíto caso você tenha adquirido esta base com terceiros e tenha pago por isso. Este bot sempre foi e sempre será gratuíto. Caso você tenha pago para utilizar este bot, do jeito que ele está hoje, saiba que você foi enganado. Nós não temos vínculo nenhum com terceiros e não nos responsabilizamos por isso, também não prestamos suporte nessas condições. Os únicos recursos pagos deste bot são pertencentes à https://api.spiderx.com.br, nossa API oficial.
Este projeto não possui qualquer vínculo oficial com o WhatsApp. Ele foi desenvolvido de forma independente para interações automatizadas por meio da plataforma.
Não nos responsabilizamos por qualquer uso indevido deste bot. É de responsabilidade exclusiva do usuário garantir que sua utilização esteja em conformidade com os termos de uso do WhatsApp e a legislação vigente.
Instalação no Termux (novo vídeo tutorial: https://youtu.be/-yjn1Xe3ltg)
1 - Abra o Termux e execute os comandos abaixo. Não tem o Termux? Clique aqui e baixe a última versão ou clique aqui e baixe versão da Play Store caso a versão do MediaFire anterior não funcione.
pkg upgrade -y && pkg update -y && pkg install git -y && pkg install nodejs-lts -y && pkg install ffmpeg -y2 - Habilite o acesso da pasta storage, no termux.
termux-setup-storage3 - Escolha uma pasta de sua preferência pra colocar os arquivos do bot.
Pastas mais utilizadas:
- /sdcard
- ~/storage/emulated/0
- ~/storage/emulated/0/Download (muito comum quando você baixa o bot pelo .zip)
No nosso exemplo, vamos para a ~/storage
cd ~/storage4 - Clone o repositório.
git clone https://github.com/guiireal/takeshi-bot.git5 - Entre na pasta que foi clonada.
cd takeshi-bot6 - Habilite permissões de leitura e escrita (faça apenas 1x esse passo).
chmod -R 755 ./*7 - Execute o bot.
npm start8 - Insira o número de telefone e pressione enter.
9 - Informe o código que aparece no termux, no seu WhatsApp, assista aqui, caso não encontre essa opção.
10 - Aguarde 10 segundos, depois digite CTRL + C para parar o bot.
Depois, Configure o arquivo config.js que está dentro da pasta src.
// Prefixo padrão dos comandos.
export const PREFIX = "/";
// Emoji do bot (mude se preferir).
export const BOT_EMOJI = "🤖";
// Nome do bot (mude se preferir).
export const BOT_NAME = "Takeshi Bot";
// LID do bot.
// Para obter o LID do bot, use o comando <prefixo>lid respondendo em cima de uma mensagem do número do bot
// Troque o <prefixo> pelo prefixo do bot (ex: /lid).
export const BOT_LID = "12345678901234567890@lid";
// LID do dono do bot.
// Para obter o LID do dono do bot, use o comando <prefixo>meu-lid
// Troque o <prefixo> pelo prefixo do bot (ex: /meu-lid).
export const OWNER_LID = "12345678901234567890@lid";11 - Inicie o bot novamente.
npm startAs principais hosts já oferecem o Takeshi como bot padrão, não sendo necessário nenhuma instalação manual!
Hosts suportadas:
| Bronxys | NexFuture | Speed Cloud |
|---|---|---|
| Grupo oficial | Grupo oficial | Grupo oficial |
![]() |
![]() |
![]() |
| TED Host | Cebolinha Host | Lumina Cloud |
|---|---|---|
| Grupo oficial | Grupo oficial | Grupo oficial |
![]() |
![]() |
![]() |
| Raikken Host | LordeHost | Jexa for Developers |
|---|---|---|
| Grupo oficial | Grupo oficial | Grupo oficial |
![]() |
![]() |
![]() |
1 - Abra o PowerShell como administrador.
Clique com o botão direito no menu iniciar, escolha Terminal (Admin) ou Windows PowerShell (Admin).
2 - Instale o Git, Node.js 24.x.x ou superior e FFmpeg.
Se você usa Windows 10 ou Windows 11 com winget, execute:
winget install --id Git.Git -e
winget install --id OpenJS.NodeJS -e
winget install --id Gyan.FFmpeg -eSe algum comando acima não funcionar, instale manualmente:
- Git: https://git-scm.com/downloads/win
- Node.js 24.x.x ou superior: https://nodejs.org/en
- FFmpeg: https://ffmpeg.org/download.html
3 - Feche e abra o PowerShell novamente para atualizar o PATH.
4 - Verifique se o Node.js, npm, Git e FFmpeg foram instalados.
node -v
npm -v
git --version
ffmpeg -versionO comando node -v deve exibir uma versão v24.x.x.
5 - Escolha uma pasta para colocar os arquivos do bot.
No exemplo abaixo, vamos usar a Área de Trabalho:
cd $env:USERPROFILE\Desktop6 - Clone o repositório.
git clone https://github.com/guiireal/takeshi-bot.git7 - Entre na pasta clonada.
cd takeshi-bot8 - Instale as dependências.
npm install9 - Execute o bot.
npm start10 - O bot vai solicitar que você digite seu número de telefone. Digite exatamente como está no WhatsApp e apenas números.
Não adicione o 9º dígito em números que não sejam de SP ou RJ.
11 - Informe o código de pareamento no WhatsApp.
No WhatsApp, vá em dispositivos conectados, clique em conectar dispositivo e depois em Conectar com número de telefone.
12 - Aguarde a conexão e digite CTRL + C no PowerShell para parar o bot.
Depois, configure o arquivo config.js que está dentro da pasta src.
13 - Inicie o bot novamente.
npm start1 - Abra um novo terminal e execute os seguintes comandos.
sudo apt update && sudo apt upgrade && sudo apt-get update && sudo apt-get upgrade && sudo apt install ffmpeg2 - Instale o curl se não tiver.
sudo apt install curl3 - Instale o git se não tiver.
sudo apt install git4 - Instale o NVM.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash5 - Atualize o source do seu ambiente
source ~/.bashrc6 - Instale a versão 24 mais recente do node.js.
nvm install 247 - Verifique se a versão foi instalada e está ativa.
node -v # Deve exibir a versão 248 - Verifique se o npm foi instalado junto.
npm -v # Deverá exibir a versão do npm9 - Instale o PM2 (recomendado).
npm install pm2 -g10 - Clone o repositório do bot onde você desejar.
git clone https://github.com/guiireal/takeshi-bot.git11 - Entre na pasta clonada.
cd takeshi-bot12 - Digite o seguinte comando.
npm start13 - O bot vai solicitar que você digite seu número de telefone. Digite exatamente como está no WhatsApp e apenas números.
Não adicione o 9º dígito em números que não sejam de SP ou RJ.
14 - Conecte o bot no PM2
pm2 start npm --name "takeshi-bot" -- start15 - O bot exibirá um código de pareamento que deve ser colocado em dispositivos conectados no seu WhatsApp.
16 - Vá em dispositivos conectados no seu WhatsApp.
17 - Clique em conectar dispositivo
18 - No canto inferior, clique em Conectar com número de telefone
19 - Coloque o código de pareamento que você recebeu no terminal, que foi feito no passo 15.
20 - Após isso, no terminal que ficou parado, ele deve exibir que foi conectado com sucesso
21 - Digite CTRL + C para parar o bot.
22 - Agora inicie ele pelo PM2, executando o seguinte código abaixo.
pm2 start npm --name "takeshi-bot" -- start23 - Aguarde 10 segundos, depois digite CTRL + C para parar o bot.
Depois, Configure o arquivo config.js que está dentro da pasta src.
// Prefixo padrão dos comandos.
export const PREFIX = "/";
// Emoji do bot (mude se preferir).
export const BOT_EMOJI = "🤖";
// Nome do bot (mude se preferir).
export const BOT_NAME = "Takeshi Bot";
// LID do bot (no caso, o que você rodará o bot).
// Para obter o LID do bot, use o comando <prefixo>lid respondendo em cima de uma mensagem do número do bot
// Troque o <prefixo> pelo prefixo do bot (ex: /lid).
export const BOT_LID = "12345678901234567890@lid";
// LID do dono do bot (no caso, o seu!).
// Para obter o LID do dono do bot, use o comando <prefixo>meu-lid
// Troque o <prefixo> pelo prefixo do bot (ex: /meu-lid).
export const OWNER_LID = "12345678901234567890@lid";Lembre-se de trocar os números acima pelos seus números, obviamente e tbm ver se o seu prefixo é a barra /.
24 - Por fim, teste o bot!
Edite o arquivo config.js que está dentro da pasta src e cole sua api key da plataforma Spider X API, conforme o código abaixo.
Para obter seu token, acesse: https://api.spiderx.com.br e crie sua conta gratuitamente!
export const SPIDER_API_TOKEN = "seu_token_aqui";Para comandos de canvas e gerar-link, é necessário configurar a API do Linker:
export const LINKER_BASE_URL = "https://linker.devgui.dev/api";
export const LINKER_API_KEY = "seu_token_aqui";Obtenha sua API Key em: https://linker.devgui.dev
| Função | Contexto | Requer a Spider X API? |
|---|---|---|
| Alterar imagem do bot | Dono | ❌ |
| Desligar o bot no grupo | Dono | ❌ |
| Executar comandos de infra | Dono | ❌ |
| Ligar o bot no grupo | Dono | ❌ |
| Modificar o prefixo por grupo | Dono | ❌ |
| Obter o ID do grupo | Dono | ❌ |
| Abrir grupo | Admin | ❌ |
| Advertir | Admin | ❌ |
| Agendar mensagem | Admin | ❌ |
| Anti audio | Admin | ❌ |
| Anti documento | Admin | ❌ |
| Anti evento | Admin | ❌ |
| Anti ligação | Admin | ❌ |
| Anti imagem | Admin | ❌ |
| Anti link | Admin | ❌ |
| Anti lottie sticker | Admin | ❌ |
| Anti pagamento | Admin | ❌ |
| Anti produto | Admin | ❌ |
| Anti status grupo | Admin | ❌ |
| Anti sticker | Admin | ❌ |
| Anti video | Admin | ❌ |
| Banir membros | Admin | ❌ |
| Bloquear número no WhatsApp | Admin | ❌ |
| Excluir mensagens | Admin | ❌ |
| Fechar grupo | Admin | ❌ |
| Gestão de mensagens do auto-responder | Admin | ❌ |
| Ligar/desligar auto responder | Admin | ❌ |
| Ligar/desligar boas vindas | Admin | ❌ |
| Ligar/desligar saída de grupo | Admin | ❌ |
| Limpar chat | Admin | ❌ |
| Marcar ausência (AFK) | Admin | ❌ |
| Marcar todos | Admin | ❌ |
| Mudar nome do grupo | Admin | ❌ |
| Mute/unmute | Admin | ❌ |
| Obter o link do grupo | Admin | ❌ |
| Reativar advertência | Admin | ❌ |
| Remover advertência | Admin | ❌ |
| Revelar | Admin | ❌ |
| Somente admins | Admin | ❌ |
| Ver saldo da Spider X API | Admin | ❌ |
| Borrar imagem | Membro | ❌ |
| Brat (imagem com texto) | Membro | ✅ |
| Bratvid (Figurinha animada no estilo brat) | Membro | ✅ |
| Busca CEP | Membro | ❌ |
| Canvas Bolsonaro | Membro | ✅ |
| Canvas cadeia | Membro | ✅ |
| Canvas inverter | Membro | ✅ |
| Canvas RIP | Membro | ✅ |
| Comandos de diversão/brincadeiras | Membro | ❌ |
| Deepseek V4 Flash | Membro | ✅ |
| Envio de botões | Membro | ✅ |
| Envio de listas | Membro | ✅ |
| Espelhar imagem | Membro | ❌ |
| Facebook download | Membro | ✅ |
| Fake chat | Membro | ❌ |
| Figurinha animada para GIF | Membro | ✅ |
| Figurinha de texto animada | Membro | ✅ |
| Geração de imagens com IA | Membro | ✅ |
| Gerar link | Membro | ❌ |
| Google Gemini | Membro | ✅ |
| Google search | Membro | ✅ |
| GPT-5 Mini | Membro | ✅ |
| Imagem com contraste | Membro | ❌ |
| Imagem IA Flux | Membro | ✅ |
| Imagem pixelada | Membro | ❌ |
| Imagem preto/branco | Membro | ❌ |
| Informações de um comando | Membro | ❌ |
| Instagram download | Membro | ✅ |
| Ping | Membro | ❌ |
| Pinterest download (carrossel) | Membro | ✅ |
| Play áudio | Membro | ✅ |
| Play vídeo | Membro | ✅ |
| Renomear figurinha | Membro | ❌ |
| Remover fundo de imagem | Membro | ✅ |
| Sticker | Membro | ❌ |
| Sticker IA | Membro | ✅ |
| Sticker para imagem | Membro | ❌ |
| TikTok audio download | Membro | ✅ |
| TikTok video download | Membro | ✅ |
| YT MP3 | Membro | ✅ |
| YT MP4 | Membro | ✅ |
| YT search | Membro | ✅ |
O Takeshi Bot possui um auto-responder embutido, edite o arquivo em ./database/auto-responder.json:
[
{
"match": "Oi",
"answer": "Olá, tudo bem?"
},
{
"match": "Tudo bem",
"answer": "Estou bem, obrigado por perguntar"
},
{
"match": "Qual seu nome",
"answer": "Meu nome é Takeshi Bot"
}
]O menu do bot fica dentro da pasta src no arquivo chamado menu.js
As mensagens ficam dentro da pasta src no arquivo chamado messages.js
O arquivo src/middlewares/customMiddleware.js permite adicionar lógica personalizada sem mexer nos arquivos core do bot.
- ✅ Adicionar comportamentos personalizados
- ✅ Criar logs customizados
- ✅ Implementar lógica específica por grupo
- ✅ Reagir a eventos automáticos
export async function customMiddleware({ socket, webMessage, type, commonFunctions }) {
if (type === "message" && commonFunctions) {
const { userMessageText } = commonFunctions;
if (userMessageText?.toLowerCase() === "oi") {
await socket.sendMessage(webMessage.key.remoteJid, {
react: { text: "👋", key: webMessage.key }
});
}
}
}export async function customMiddleware({ webMessage, type, action }) {
if (type === "participant" && action === "add") {
console.log("Novo membro:", webMessage.messageStubParameters[0]);
}
}export async function customMiddleware({ type, action, commonFunctions }) {
const grupoVIP = "120363123456789012@g.us";
if (type === "participant" && action === "add" && commonFunctions?.remoteJid === grupoVIP) {
const { sendReply } = commonFunctions;
await sendReply("🎉 Bem-vindo ao grupo VIP!");
}
}export async function customMiddleware({ type, commonFunctions }) {
if (type === "message" && commonFunctions) {
const {
sendReply,
sendSuccessReply,
args,
userMessageText,
isImage,
downloadImage,
} = commonFunctions;
// Sua lógica personalizada aqui
}
}| Parâmetro | Tipo | Descrição |
|---|---|---|
socket |
Object | Socket do Baileys para enviar mensagens |
webMessage |
Object | Mensagem completa do WhatsApp |
type |
String | "message" ou "participant" |
commonFunctions |
Object/null | Todas as funções do bot (null para eventos de participantes) |
action |
String | "add" ou "remove" (apenas em eventos de participantes) |
data |
String | Dados do participante (apenas em eventos de participantes) |
- 📁 .github ➔ workflows de CI/CD e arquivo para o agente do copilot
- 📁 assets ➔ arquivos de mídia
- 📁 auth ➔ arquivos da conexão do bot
- 📁 images ➔ arquivos de imagem
- 📁 funny ➔ gifs de comandos de diversão
- 📁 samples ➔ arquivos de exemplo para testes
- 📁 temp ➔ arquivos temporários
- 📁 database ➔ arquivos de dados
- 📁 diagrams ➔ diagramas de fluxos de dados e execução do Bot
- 📁 node_modules ➔ módulos do Node.js
- 📁 src ➔ código fonte do bot (geralmente você mexerá mais aqui)
- 📁 @types ➔ pasta onde fica as definições de tipos
- 📁 commands ➔ pasta onde ficam os comandos
- 📁 admin ➔ pasta onde ficam os comandos administrativos
- 📁 member ➔ pasta onde ficam os comandos gerais (todos poderão utilizar)
- 📁 exemplos ➔ pasta de exemplos apenas para exploração e reaproveitamento em comandos próprios
- 📁 owner ➔ pasta onde ficam os comandos de dono (grupo e bot)
- 📝🤖-como-criar-comandos.js ➔ arquivo de exemplo de como criar um comando
- 📁 errors ➔ classes de erros usadas nos comandos
- 📁 middlewares ➔ interceptadores de requisições
- 📁 services ➔ serviços diversos
- 📁 test ➔ testes
- 📁 utils ➔ utilitários
- 📝 config.js ➔ arquivo de configurações do bot
- 📝 connection.js ➔ script de conexão do bot com a biblioteca Baileys
- 📝 index.js ➔ script ponto de entrada do bot
- 📝 loader.js ➔ script de carga de funções
- 📝 menu.js ➔ menu do bot
- 📝 messages.js ➔ arquivos de mensagens de boas vindas e saída
- 📝 test.js ➔ script de testes
- 📝 .gitignore ➔ arquivo para não subir certas pastas no GitHub
- 📝 ⚡-cases-estao-aqui.js ➔ easter egg
- 📝 AGENTS.md ➔ arquivo de instruções para IA's
- 📝 CLAUDE.md ➔ arquivo de instruções para a IA Claude
- 📝 GEMINI.md ➔ arquivo de instruções para a IA Gemini
- 📝 CONTRIBUTING.md ➔ guia de contribuição
- 📝 LICENSE ➔ arquivo de licença
- 📝 package-lock.json ➔ arquivo de cache das dependências do bot
- 📝 package.json ➔ arquivo de definição das dependências do bot
- 📝 README.md ➔ esta documentação
- 📝 reset-qr-auth.sh ➔ arquivo para excluir as credenciais do bot
- 📝 update.sh ➔ arquivo de atualização do bot
Execute bash update.sh
Execute npm run test:all
O erro abaixo acontece quando é feito o download do arquivo ZIP direto no celular em algumas versões do apk ZArchiver e também de celulares sem root.
Para resolver, siga o tutorial de instalação via git clone.
Caso dê algum erro na conexão, digite o seguinte comando:
bash reset-qr-auth.shDepois, remova o dispositivo do WhatsApp indo nas configurações do WhatsApp em "dispositivos conectados" e repita
o procedimento de iniciar o bot com npm start.
Quando o bot fica muito tempo desligado (por exemplo, horas ou um dia inteiro), ao religar ele pode tentar processar muitas mensagens acumuladas de uma vez.
Isso pode disparar erro de rate-overlimit durante a sincronização.
Para corrigir, reinicie a autenticação do Baileys:
bash reset-qr-auth.shEm seguida, conecte o número novamente no WhatsApp em "dispositivos conectados".
Abra o termux, digite termux-setup-storage e depois, aceite as permissões
Verifique se você não tem dois Takeshi's rodando no seu celular, muitas pessoas baixam o zip e seguem o tutorial, porém, o tutorial não explica pelo zip, e sim, pelo git clone.
Geralmente as pessoas que cometem esse erro, ficam com dois bots:
- O primeiro dentro da
/sdcard - O segundo na pasta
/storage/emulated/0/Download, que no zip fica comotakeshi-bot-main
Você deve apagar um dos bots e tanto configurar quanto executar apenas um
Embora o Takeshi seja open-source, as contribuições externas foram encerradas.
Com o avanço das IAs, o desafio de programar tem sido substituído pela criação de prompts. Valorizo a autoria e a identidade do projeto. Não faz sentido entrar em um ciclo de revisar códigos gerados por IA que descaracterizam a lógica que construímos ao longo do tempo, por mais que sejam bons códigos, o fator humano e a criatividade se perdem. Qualquer um pode criar código com IA, não há mais valor genuíno em contribuir com código, o que torna o processo de revisão e manutenção insustentável.
O projeto segue ativo, mas agora como um esforço individual. Sinta-se à vontade para estudar o código ou fazer um fork para uso pessoal.
Usar IA não é ruim, longe disso, mas em projetos open-source, a identidade, a autoria e o esforço genuíno para trazer soluções são mais importantes.
Este projeto está licenciado sob a Licença Pública Geral GNU (GPL-3.0). Isso significa que:
- Você pode usar este código como quiser, seja para projetos pessoais ou comerciais.
- Você pode modificar o código para adaptá-lo às suas necessidades.
- Você pode compartilhar ou vender o código, mesmo modificado, mas precisa:
- Manter os créditos ao autor original (Guilherme França - Dev Gui).
- Tornar o código modificado disponível sob a mesma licença GPL-3.0.
O que você não pode fazer:
- Não pode transformar este código em algo proprietário (fechado) e impedir outras pessoas de acessá-lo ou usá-lo.
Esta licença garante que todos tenham acesso ao código-fonte e podem colaborar livremente, promovendo o compartilhamento e o aprimoramento do projeto.
Neste projeto, precisei hospedar a node_modules, para auxiliar quem está rodando o bot pelo celular, pois muitos deles podem não rodar o npm install pelo termux corretamente.






















