A cute, emotional anime girl Discord bot powered by Groq AI & Jikan API
Speaks 14+ languages, remembers your name, knows everything about anime
|
Sakura is not just another chatbot โ she's an anime girl with real emotions. She gets happy, sad, angry, embarrassed, bored, excited, jealous, and playful. She remembers your name and genuinely misses you when you're gone. |
Auto-detects and responds in your language natively โ Arabic, English, Japanese, Chinese, Russian, Hindi, Thai, Korean, French, Spanish, German, Turkish, Indonesian, Portuguese. Language purity guaranteed โ no mixing. |
|
Search any anime directly from MyAnimeList with rich Discord embeds. Just mention Sakura and say the anime name. She'll also give you her personal opinion about it. |
Zero tracking. Zero ads. No external databases by default. Conversation data stays in RAM and resets on restart. Optional Cloudflare D1 for persistence. |
๐ค User: @Sakura hello!
๐ธ Sakura: Hey! Nice to see you here. What's on your mind?
๐ค User: @Sakura anime Attack on Titan
๐ธ Sakura: [Rich embed with anime info from MyAnimeList]
๐ธ Sakura: Attack on Titan is incredible! The way Isayama builds the mystery around the Titans is masterful.
๐ค User: @Sakura ุฃูู ุงูุง ุงุดุชูุช ูู
๐ธ Sakura: ูุฃูุง ุงุดุชูุช ูู ุฃูุถุง! ุฃูู ููุช ูู ูุฐุง ุงูููุชุ
๐ค User: @Sakura ใตใฏใฉใใใฏใใ๏ผ
๐ธ Sakura: ใใฏใใ๏ผไปๆฅใฏใฉใใชไธๆฅใซใชใใใ๏ผ
- Node.js v18+
- Discord Bot Token
- Groq API Key โ Free (14,400 requests/day)
# Clone the repository
git clone https://github.com/jomaabilal90-dotcom/sakura-bot.git
cd sakura-bot
# Install dependencies
npm install
# Create your .env file
cp .env.example .env
# Edit .env with your tokens
# Start the bot
node index.jsSakura is designed to run on Discloud โ free Discord bot hosting with 100MB RAM:
- Create a
discloud.configfile (already included) - Upload via Discloud CLI or dashboard
- Set environment variables in Discloud dashboard
- Bot starts automatically and stays online 24/7
| Feature | Description |
|---|---|
| ๐ค AI Chat | Powered by Groq AI (Llama 3.3 70B) โ sub-second responses |
| ๐ 14+ Languages | Auto-detects language, responds with language purity |
| ๐ Anime Search | Search any anime via Jikan API with rich embeds |
| ๐ Anime GIFs | Random cute anime GIF reactions |
| ๐ง Memory System | Remembers your name, language, and interaction count |
| ๐ก๏ธ NSFW Protection | 80+ patterns across 10+ languages |
| ๐ฌ DM Support | Chat privately in direct messages |
| ๐ญ Spontaneous Messages | Starts conversations on her own |
| โป๏ธ Smart RAM Management | Auto cleanup, stays under 100MB |
| โ๏ธ Cloudflare D1 | Optional persistent storage |
| ๐ค User Profiles | Greet returning users, miss regulars |
Just mention Sakura or say her name:
@Sakura hello! โ Chat with her
@Sakura anime One Piece โ Search anime on MyAnimeList
@Sakura recommend me isekai โ Get anime recommendations
@Sakura ู
ุฑุญุจุง โ She speaks Arabic
@Sakura ใใใซใกใฏ โ She speaks Japanese
@Sakura hola โ She speaks Spanish
Or send a DM โ she responds in your language automatically.
| Action | Example |
|---|---|
| Chat | @Sakura how are you? |
| Anime search | @Sakura anime Naruto |
| Recommendations | @Sakura recommend a good isekai |
| Multi-language | @Sakura ู
ุฑุญุจุง / @Sakura ใใใซใกใฏ |
| DM | Send a direct message |
| Name mention | Just say "Sakura" in any message |
| Variable | Required | Description |
|---|---|---|
DISCORD_TOKEN |
โ Yes | Your Discord bot token |
GROQ_API_KEY |
โ Yes | Your Groq API key (free at console.groq.com) |
CF_ACCOUNT_ID |
โ No | Cloudflare account ID (for D1 storage) |
CF_API_TOKEN |
โ No | Cloudflare API token |
CF_D1_DATABASE_ID |
โ No | Cloudflare D1 database ID |
sakura-bot/
โโโ index.js # Main bot file โ all logic in one file
โโโ package.json # Dependencies & metadata
โโโ .env.example # Environment variable template
โโโ .gitignore # Git ignore rules
โโโ discloud.config # Discloud hosting configuration
โโโ sakura-avatar.png # Bot profile picture
โโโ LICENSE # MIT License
โโโ README.md # This file
โโโ CONTRIBUTING.md # Contribution guidelines
โโโ CHANGELOG.md # Version history
โโโ CODE_OF_CONDUCT.md # Community guidelines
โโโ SECURITY.md # Security policy
โโโ .github/
โโโ ISSUE_TEMPLATE/
โ โโโ bug_report.md
โ โโโ feature_request.md
โ โโโ question.md
โโโ PULL_REQUEST_TEMPLATE.md
โโโ workflows/
โโโ ci.yml # GitHub Actions CI
- Language Detection โ Unicode character ranges + keyword patterns for 14 languages
- System Prompt โ Dynamic personality prompt based on user profile & language
- Groq AI โ Conversation history (16 messages) sent to Llama 3.3 70B
- Memory โ User profiles stored in RAM with optional D1 persistence
- NSFW Filter โ Pattern matching across 10+ languages before processing
- RAM Cleanup โ Periodic GC, history trimming, and user profile caps
| Language | Method |
|---|---|
| Arabic | Unicode U+0600-U+08FF |
| Japanese | Hiragana/Katakana U+3040-U+30FF |
| Chinese | CJK Unified U+4E00-U+9FFF |
| Russian | Cyrillic U+0400-U+04FF |
| Hindi | Devanagari U+0900-U+097F |
| Thai | Thai U+0E00-U+0E7F |
| Korean | Hangul U+AC00-U+D7AF |
| French/Spanish/German | Latin Extended + keyword analysis |
| Turkish/Indonesian/Portuguese | Keyword pattern matching |
| English | Default fallback |
| Aspect | Policy |
|---|---|
| Data storage | RAM only (resets on restart) |
| D1 storage | Optional โ only name, language, interaction count |
| Tracking | None โ no analytics, no scripts |
| Ads | None โ completely ad-free |
| Data selling | Never โ no user data shared |
| Conversation logs | RAM, max 16 messages, auto-cleaned |
- Slash commands support
- Manga search
- User-set nicknames for Sakura
- Per-server language preference
- Anime recommendation quiz
- Top.gg vote rewards
- Web dashboard for admins
- Music playback
- Anime news feed
Contributions are what make the open source community amazing! Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/amazing-feature) - Commit your Changes (
git commit -m 'Add: amazing feature') - Push to the Branch (
git push origin feature/amazing-feature) - Open a Pull Request
See CONTRIBUTING.md for detailed guidelines.
Is Sakura free to use?
Yes! Sakura uses free-tier APIs: Groq AI (14,400 requests/day) and Jikan API (unlimited). Hosting on Discloud is also free (100MB RAM). No credit card required for any service.
Does Sakura support my language?
Sakura auto-detects and responds in 14+ languages: Arabic, English, Japanese, Chinese, Russian, Hindi, Thai, Korean, French, Spanish, German, Turkish, Indonesian, and Portuguese. More languages can be added by extending the `detectLang()` function.
Can I self-host Sakura?
Absolutely! Clone the repo, add your tokens to `.env`, run `npm install`, and start with `node index.js`. You can also deploy to Discloud for free, or any Node.js hosting service.
How does Sakura remember me?
Sakura stores user profiles (name, language, interaction count) in RAM. Regular users get special greetings and warmer responses. With Cloudflare D1 configured, this data persists across restarts.
Is the NSFW filter effective?
Sakura uses 80+ patterns across 10+ languages including Arabic, English, Japanese, French, Spanish, Portuguese, German, Russian, Turkish, and general internet terms. It also refuses inappropriate topics at the AI level via system prompts.
Can I modify Sakura's personality?
Yes! The entire personality is defined in the `buildSystemPrompt()` function in `index.js`. You can change her traits, add new rules, or completely redesign her character.
Why no slash commands?
Sakura is designed to feel like a real person chatting in the server, not a command-based tool. Just mention her name and talk naturally. Slash commands are on the roadmap for specific features.
| Technology | Purpose |
|---|---|
| Node.js v18+ | Runtime |
| discord.js v14 | Discord API |
| Groq SDK | AI (Llama 3.3 70B) |
| Jikan API v4 | Anime data (MyAnimeList) |
| GIPHY API | Anime GIFs |
| Cloudflare D1 | Optional persistence |
| Discloud | Free hosting |
Distributed under the MIT License. See LICENSE for more information.
Made with love by @bilal36i