# AI Discord Bot

## 👤 What It Is
A self-hosted, always-online Discord friend that feels like a fun, social member of the group — not a bot. Its job is to stimulate conversations, keep things lighthearted, and make the server feel alive, even during quiet hours.

🧠 Primary Goals
* Boost server engagement organically
* Act like a real person with jokes, roasts, and casual banter
* Share daily messages and eventually auto-post memes
* Be customizable, self-hostable, and monetizable via hosting

## ✨ Core Vibes
* Feels like a homie, not a bot
* Casual, sometimes spicy, often funny
* Always online and paying attention
* Posts stuff like:
* “@everyone y’all still alive or is this a ghost town? 👻”
* “New meme dropped: [image] 🔥”

## 🔥 Updated Feature Focus
* !chat → Casual convos with LLM
* !roast → Roast your friends
* Scheduled daily messages (sassy, motivational, or chaotic)
* Future: Meme hunting & posting (from Reddit, X, Discord meme pages, etc.)

## 💡 Naming Ideas (More Intuitive & Fun)

| **Name**          | **Vibe**                         |
|-------------------|----------------------------------|
| **ServerMate**     | Feels social + simple            |
| **PartyBot**       | For fun-focused servers          |
| **MemeBoi / MemeGal** | If meme-focused              |
| **BanterBot**      | Pure vibes and chaos             |
| **ChatCrew**       | Feels like a squad member        |
| **VibeCheck**      | Funny, catchy, modern            |
| **HomieBot**       | Friendly + clear purpose         |
| **PingPal**        | Low-key but memorable            |
| **Instigator**     | Edgy, fun, accurate              |


## 🛠️ AlphaBot MVP Build Schedule

A structured build plan for developing and deploying the AlphaBot Discord companion.

---

### ✅ ~~Day 1 – Core Bot Setup~~
- [x] Create Discord bot in Developer Portal
- [x] Enable Message Content Intent
- [x] Set up `.env` with token
- [x] Write `bot.py` with basic `!ping` command
- [x] Invite bot to server and confirm it replies

---

### 🔄 ~~Day 2 – AI Integration~~
- [x] Write `ai.py` to connect to Ollama/OpenAI
- [x] Set up API call + prompt formatting
- [x] Add `!chat` command to relay messages
- [x] Create `.env` key for `OLLAMA_API_URL`

---

### 🎭 Day 3 – Persona System (Updated)

> Goal: Create a dynamic personality engine using a JSON file for flexible identity control.

![Delta Fail Screenshot](docs/images/personality-test-fail.png)

- [x] Replace hardcoded `PERSONALITY` with a JSON-based persona profile
- [x] Create `persona.json` to store:
  - Bot name
  - Emoji
  - Style prefix
  - Prompt injection
- [x] Update `personality.py` to read from `persona.json`
- [x] Style all AI replies using the loaded persona
- [x] Add `!setpersona "<description>"` command
  - Updates `persona.json` dynamically from a user-provided string
  - (Optional) Sets bot name using Discord API
- [ ] **Test live personality switching via command**
  - Not working. Personality is being loaded but it doesnt actually work

📁 *This unlocks full customization without editing code or restarting the bot.*


---

### 🔥 Day 4 – Roast Command
- [ ] Build `!roast @user` with AI-generated replies
- [ ] Style roast output with selected personality
- [ ] Add cooldown to prevent spam (optional)

---

### 🕒 Day 5 – Daily Message Scheduler
- [ ] Add `scheduler.py` for once-a-day posting
- [ ] Pick default channel (e.g. `#general`)
- [ ] Make messages dynamic/funny with flair

---

### 🐳 Day 6 – Dockerization
- [ ] Write `Dockerfile` and `docker-compose.yml`
- [ ] Test local build and `.env` passthrough
- [ ] Optional: containerize Ollama model if running locally

---

### 💰 Day 7+ – Monetization Prep (Optional)
- [ ] Add donation/promo message in daily post
- [ ] Plan hosting model for non-technical users
- [ ] Write self-host instructions in `README.md`

---

*Progress last updated: May 7, 2025*
