Skip to content

JayyDoesDev/airo

Repository files navigation

aira

Aira

πŸ’¬βœ¨ Your unhinged AI sidekick β€” powered by DiscordGo + DeepSeek


  • 🧠 AI Chat β€” Unhinged, sassy replies inspired by Aira from Dandadan. No full sentences required.
  • πŸ”Ž Web Search β€” Searches the web via Exa and cites sources in a references embed
  • πŸ“Š Chart Generation β€” Renders bar, line, pie, radar, and horizontal bar charts as PNG images
  • 🌐 Server Vibe Check β€” Reads recent channel messages and gives a brutally honest vibe report
  • πŸ”Š Voice Chat β€” Joins voice channels and speaks responses aloud via Piper TTS
  • πŸ›‘οΈ Moderation β€” Kick, ban, assign/remove roles, send DMs, list roles
  • 🎭 Status Control β€” Sets her own Discord status and activity on command
  • 🧡 Reply Awareness β€” Responds to replies on her own messages with full context
  • πŸ“ Persistent Memory β€” Short and long-term memory stored in encrypted msgpack
  • πŸ”€ Async Task Queue β€” All Discord actions run asynchronously and in order
  • πŸ›‘οΈ Prompt Injection Defense β€” Go-layer regex sanitizer + hardened system prompt
  • πŸ€– Mention to Activate β€” Just mention her or reply to her messages

πŸ“ Project Structure

airo/
β”œβ”€β”€ discord/
β”‚   β”œβ”€β”€ events/        # Message handler, search, vibe check, permissions, cooldown
β”‚   └── voice/         # Voice connection manager + Piper TTS pipeline
β”œβ”€β”€ lib/               # AI client abstraction, prompts, injection sanitizer
β”œβ”€β”€ skills/
β”‚   β”œβ”€β”€ actions/       # Action parser, handler, memory store
β”‚   β”œβ”€β”€ chart.go       # go-charts PNG renderer
β”‚   └── exa.go         # Exa web search client
β”œβ”€β”€ tasks/             # Async task queue
β”œβ”€β”€ main.go
└── .env

πŸš€ Getting Started

1. Clone the repo

git clone https://github.com/jayydoesdev/airo.git
cd airo

2. Set up your environment

Create a .env file in the root:

DISCORD_BOT_TOKEN=your_bot_token
DEEPSEEK_API_KEY=your_deepseek_api_key
EXA_API_KEY=your_exa_api_key
EXA_RESULT_LIMIT=5

# Optional β€” only needed for voice chat
PIPER_MODEL=/path/to/en_US-lessac-medium.onnx
PIPER_SAMPLE_RATE=22050

Enable Message Content Intent, Guild Members Intent, and Guild Voice States Intent in the Discord Developer Portal.

3. Install system dependencies

# Required for chart rendering (already pure-Go, no extra deps)

# Required for voice chat only
apt install libopus-dev ffmpeg       # Ubuntu/Debian
brew install opus ffmpeg             # macOS

4. (Optional) Set up voice chat

Download a Piper binary and a voice model:

# Download model (~60MB)
curl -LO https://huggingface.co/rhasspy/piper-voices/resolve/main/en/en_US/lessac/medium/en_US-lessac-medium.onnx
curl -LO https://huggingface.co/rhasspy/piper-voices/resolve/main/en/en_US/lessac/medium/en_US-lessac-medium.onnx.json

Set PIPER_MODEL and PIPER_SAMPLE_RATE in your .env.

5. Run the bot

go run main.go

βš™οΈ Actions

Action Description
kick_user Kicks a member
ban_user Bans a member
assign_role Gives a user a role
remove_role Removes a role from a user
dm_user Sends a private message to a user
list_user_roles Lists roles for a specific member
generate_chart Renders a chart as a PNG embed
set_status Sets the bot's Discord status and activity
join_voice Joins the user's current voice channel
leave_voice Leaves the current voice channel
speak_in_voice Speaks text aloud in the user's voice channel

πŸ“Š Chart Types

Aira can generate charts inline in her response embed. Supported types:

Type Best for
bar Comparisons and rankings
horizontal_bar Long category names
line Trends over time
pie Proportions and percentages
radar Multi-attribute comparisons

Supports custom colors per dataset (hex), dark/light/grafana/ant themes, and custom width/height.


🧡 Built With


🀝 Contributing

Contributions, PRs, and sarcastic comments welcome.


πŸ“„ License

MIT License β€” see LICENSE for details.


🧠 Credits

Airo is inspired by Aira from Dandadan β€” chaotic, funny, and a little too smart for her own good.

About

πŸ€– Aira, a Dandadan character themed advanced ai powered Discord bot using DeepSeek (i messed up the spelling of the repo)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors